Главная страница


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)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Re: linux kernel: some beginner questions   Ilya Evseev   04 May 2001 03:52:00 
Архивное /ru.linux/6577f9fb25dc.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional