|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Ilya Evseev 2:5020/400 04 May 2001 03:52:00 To : All Subject : Re: linux kernel: some beginner questions --------------------------------------------------------------------------------
Hi!
> Объясните мне, пожалуйста, глупому, что означает (зачем используется)
>
> #define __KERNEL__
> и, что, вероятно, тоже:
> #define __KERNEL__ 1
>
> во многих файлах в ядре? Я бегло просмотрел сорцы 2.2.19, но так и не
> понял. :(
В Win32, например, нечто аналогичное выглядит так:
#ifdef __DLL__
# define DLLPROC __declspec(__dllexport)
#else
# define DLLPROC __declspec(__dllimport)
#endif
int DLLPROC format_all_drives(char *password);
Идея понятна?
> И еще. Я хочу сделать небольшой простенький патчик. При этом мне требуется
> strstr() . Поглядел я и увидел ее в ./include/linux/string.h , однако в
> конце оного я вижу:
> /*
> * Include machine specific inline routines
> */
> #include <asm/string.h>
>
> Hо каталога asm я в ядре не наблюдаю и вижу только кучу asm-* для разных
> архитектур. 8-() Где же оно подставляется system-specific? Hасколько я
понимаю
Смотри /usr/inlcude/asm - это ссылка на конкретный asm-каталог.
> для того чтобы сборка не портилась на разных архитектурах мне нужно делать
> #include <linux/string.h>
> Верно?
Hет, просто <string.h>
Учти, что по умолчанию компилятор
ищет заголовочные файлы в /usr/include,
а не в /usr/src/linux/include.
> И еще такой вопрос - функции которую я собираюсь слегка поменять в
./fs/open.c
> передается указатель на путь. Следует ли мне проверять его на длину или,
> наоборот, следует надеятся, что все проверки на момент получения пути
функцией
> ядра он уже пройдены и он заведомо не больше чем максимум заложенный
где-то в
> дебрях *.h MAXPATHLEN (или как там оно в системе обозвано)?
Лишняя проверка не повредит.
> Опять же вопрос - на момент попадания пути в open.c ядра в пути может
> содержаться символ экранирования (\) или это где-либо уже отработано и
> преобразовано в "чистый" путь? Похоже на то, что может, но на всякий
случай
> спрашиваю. =)
Символ экранирования обрабатывается интерпретатором команд.
Ядро получает имя для непосредственного употребления.
С уважением,
Илья Евсеев
--- ifmail v.2.15dev5
* Origin: UCVT (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/6577f9fb25dc.html, оценка из 5, голосов 10
|