I need to know how can I use system calls in device drivers. For example, I want use system call "mknod()" for independent creating device file in init function of my driver. Anybody knows how can I do that???
>I need to know how can I use system calls in device
>drivers. For example, I want use system call "mknod()" for independent
>creating device file in init function of my driver. Anybody knows
>how can I do that???Перво-наперво неплохо было бы указывать систему.
mknod вызывать из пространства ядра - бессмысленно. Для FreeBSD, его можно заменить make_dev(9): http://www.freebsd.org/cgi/man.cgi?query=make_dev&apropos=0&...
>Перво-наперво неплохо было бы указывать системупрошу прощения, система Linux
вообще я полный профан в написании модулей ядра, в том числе и драйверов устройств поэтому могу что то ни то сказать, не обессудьте :) просто так сложились обстоятельства - жизнь заставила начать писать эти драйвера.
идея такая, мне необходимо чтобы драйвер при загрузке автоматически создавал файл устройства т.е. не может быть и речи об использовании скриптов, создании ручками и тд. а вот как это сделать я чтото врубиться не могу, то ли тупой или это не всем дано. может кто поможет. любой совет будет ужасно полезен. заранее спасибо.
>>Перво-наперво неплохо было бы указывать систему
>
>прошу прощения, система LinuxТогда смотреть в сторону devfs (с 2.6.x считается deprecated). Его замена - udev ,- присутствует практически в любом современном дистрибутиве.
>>>Перво-наперво неплохо было бы указывать систему
>>
>>прошу прощения, система Linux
>
>Тогда смотреть в сторону devfs (с 2.6.x считается deprecated). Его замена -
>udev ,- присутствует практически в любом современном дистрибутиве.Да, да. На счет 2.6.13< -- devfs там какбы не уважают.
А какие функции режима ядра можно использовать для udev?
И где об этом можно почитать
может быть подойдёт файл в /proc ?
>прошу прощения, система Linux
>вообще я полный профан в написании модулей ядра, в том числе и
>драйверов устройств поэтому могу что то ни то сказать, не обессудьте
>:) просто так сложились обстоятельства - жизнь заставила начать писать эти
>драйвера.
>идея такая, мне необходимо чтобы драйвер при загрузке автоматически создавал файл устройства
>т.е. не может быть и речи об использовании скриптов, создании ручками
>и тд. а вот как это сделать я чтото врубиться не
>могу, то ли тупой или это не всем дано. может кто
>поможет. любой совет будет ужасно полезен. заранее спасибо.
Думаю, в вашем случае подойдёт функция vfs_mknod для создания файла (fs/namei.c). Его братья-сотоварищи (создание и удаление директорий, удаление файлов и т.п.) описаны там же.