![]() |
Модераторы: xvr |
![]() ![]() ![]() |
|
cupper |
|
||||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 525 Регистрация: 29.11.2006 Репутация: нет Всего: 1 |
Да да да. Точно. Было такое дело, раньше модули в модулей требовалось в ручную определять этот макрос
В "наше" время его можно опустить он вроде сам автоматом определяется внутри кода модуля. Тогда можно сделать упрошенный вариант
Правда это нужно проверять, а то мало ли как они его еще используют. Спасибо за наводку ![]() |
||||||
|
|||||||
cupper |
|
||||||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 525 Регистрация: 29.11.2006 Репутация: нет Всего: 1 |
Возникла следующая проблема. Вот например хочу я написать функцию подмену для printk
kernel/printk.c
Все прекрасно собралось. Отлаживаю вызов ядровой printk, вызывается нужная. Отлажимаю вызов модульной printk, вызывается опять ядрова. Не долго думаю понимаю что я не менял Makefile и у меня printk.o не цепляется к модулю поэтому он и незнает о существовании моей функции. Думаю, надо пихнуть реализацию в какойнить хедер чтобы не менять Makefile. Решил пихнуть в include/linux/module.h
делаю правку в printk.c
Но на этапе компиляции получаю
вроде ничего в логике особого не поменялось за исключением что я разорвал #ifdef #else #endif на два #ifdef #endif и ifndef #endif. Но получилось не то что я ожидал. Вероятно я чего совсем очевидного не улавливаю :( PS. Вероятней правильнее былобы сделать реализацию не в module.h а в include/linux/kernel.h Но что из той кучи странных определний printk является его действительным определением ? Это сообщение отредактировал(а) cupper - 10.4.2010, 20:40 |
||||||||
|
|||||||||
Friackazoid |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 148 Регистрация: 23.2.2006 Репутация: 1 Всего: 3 |
Смотри внимательнее, ты сделал обертку #ifndef MODULE #endif только в printk.c а ругается оно на файл kernel.h там есть заголовок функции printk его тоже нужно обернуть как и ядреную реализацию.
--------------------
Даже если тебя съели, то все равно есть два выхода.42Team блог |
|||
|
||||
cupper |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 525 Регистрация: 29.11.2006 Репутация: нет Всего: 1 |
методом несложной дидукции было понято что определение pirntk в файле kernel.h это то определение которой находится на 240 строчке. Кэп покинул меня ((
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "С/С++: Программирование под Unix/Linux" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |