The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"ioctl в freebsd"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"ioctl в freebsd"
Сообщение от apels1n emailИскать по авторуВ закладки on 26-Мрт-04, 15:21  (MSK)
Имеется система freebsd 2.2.x
Там в мане по ioctl такое:

для вызова ioctl(int fd, unsigned long request, char *argp)

An ioctl request has encoded in it whether the argument is an in parameter or out parameter, and the size of the argument argp in bytes. Macros and defines used in specifying an ioctl request are located in the file <sys/ioctl.h>.

Но как запихивать в параметр request все это нигде не описано. Помогите разобраться...

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "ioctl в freebsd"
Сообщение от sas emailИскать по авторуВ закладки on 27-Мрт-04, 12:03  (MSK)
>Имеется система freebsd 2.2.x
>Там в мане по ioctl такое:
>
>для вызова ioctl(int fd, unsigned long request, char *argp)
>
>An ioctl request has encoded in it whether the argument is an in parameter or out parameter, and the size of the argument argp in bytes. Macros and defines used in specifying an ioctl request are located in the file <sys/ioctl.h>.
>
>Но как запихивать в параметр request все это нигде не описано. Помогите
>разобраться...

Взгляните на http://www.unet.univie.ac.at/aix/libs/basetrf1/ioctl32.htm

Удачи
--- sas

  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "ioctl в freebsd"
Сообщение от apels1n emailИскать по авторуВ закладки on 27-Мрт-04, 14:46  (MSK)
>>Имеется система freebsd 2.2.x
>>Там в мане по ioctl такое:
>>
>>для вызова ioctl(int fd, unsigned long request, char *argp)
>>
>>An ioctl request has encoded in it whether the argument is an in parameter or out parameter, and the size of the argument argp in bytes. Macros and defines used in specifying an ioctl request are located in the file <sys/ioctl.h>.
>>
>>Но как запихивать в параметр request все это нигде не описано. Помогите
>>разобраться...
>
>Взгляните на http://www.unet.univie.ac.at/aix/libs/basetrf1/ioctl32.htm
>
>Удачи
>--- sas

Спасибо большое, но по-моему это немного не то.
Поподробней опишу проблему. Пишу драйвер под сабж.
Нужно сделать интерфейс с устройством через ioctl.
В ядре/драйвере параметры такие:
static int mydev_ioctl (dev_t dev, int cmd, caddr_t data, int flag, struct proc *p);
А в пользовательской программе такие:
ioctl(int fd, unsigned long request, char *argp)

Если посылать от юзера request то он приходит на cmd в драйвере.
Но указатель char * argp не приходит на caddr_t data (char * data).
И то есть получается я не могу никакие данные передать в драйвер.
Судя по ману я решил, что в параметре request необходимо еще как-то
задавать размер и свойства argp/data.

Это так? Или я что-то неправильно делаю....
Буду очень благодарен за любую помощь.


  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "ioctl в freebsd"
Сообщение от sas emailИскать по авторуВ закладки on 28-Мрт-04, 03:05  (MSK)
>>>Имеется система freebsd 2.2.x
>>>Там в мане по ioctl такое:
>>>
>>>для вызова ioctl(int fd, unsigned long request, char *argp)
>>>
>>>An ioctl request has encoded in it whether the argument is an in parameter or out parameter, and the size of the argument argp in bytes. Macros and defines used in specifying an ioctl request are located in the file <sys/ioctl.h>.
>>>
>>>Но как запихивать в параметр request все это нигде не описано. Помогите
>>>разобраться...
>>
>>Взгляните на http://www.unet.univie.ac.at/aix/libs/basetrf1/ioctl32.htm
>>
>>Удачи
>>--- sas
>
>Спасибо большое, но по-моему это немного не то.
>Поподробней опишу проблему. Пишу драйвер под сабж.
>Нужно сделать интерфейс с устройством через ioctl.
>В ядре/драйвере параметры такие:
>static int mydev_ioctl (dev_t dev, int cmd, caddr_t data, int flag, struct
>proc *p);
>А в пользовательской программе такие:
>ioctl(int fd, unsigned long request, char *argp)
>
>Если посылать от юзера request то он приходит на cmd в драйвере.
>
>Но указатель char * argp не приходит на caddr_t data (char *
>data).
>И то есть получается я не могу никакие данные передать в драйвер.
>
>Судя по ману я решил, что в параметре request необходимо еще как-то
>
>задавать размер и свойства argp/data.
>
>Это так? Или я что-то неправильно делаю....
>Буду очень благодарен за любую помощь.

Взгляните на определение _IO; _IOR; _IOW and _IORW макросов и на пример

http://mail-index.netbsd.org/netbsd-bugs/1998/11/22/0000.html

Успехов
--- sas

  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "ioctl в freebsd"
Сообщение от sas emailИскать по авторуВ закладки on 28-Мрт-04, 03:18  (MSK)
И еще пример

http://minnie.tuhs.org/UnixTree/2.11BSD-UFS/ufs_disksubr.c.html

Успехов
--- sas

>>>Имеется система freebsd 2.2.x
>>>Там в мане по ioctl такое:
>>>
>>>для вызова ioctl(int fd, unsigned long request, char *argp)
>>>
>>>An ioctl request has encoded in it whether the argument is an in parameter or out parameter, and the size of the argument argp in bytes. Macros and defines used in specifying an ioctl request are located in the file <sys/ioctl.h>.
>>>
>>>Но как запихивать в параметр request все это нигде не описано. Помогите
>>>разобраться...
>>
>>Взгляните на http://www.unet.univie.ac.at/aix/libs/basetrf1/ioctl32.htm
>>
>>Удачи
>>--- sas
>
>Спасибо большое, но по-моему это немного не то.
>Поподробней опишу проблему. Пишу драйвер под сабж.
>Нужно сделать интерфейс с устройством через ioctl.
>В ядре/драйвере параметры такие:
>static int mydev_ioctl (dev_t dev, int cmd, caddr_t data, int flag, struct
>proc *p);
>А в пользовательской программе такие:
>ioctl(int fd, unsigned long request, char *argp)
>
>Если посылать от юзера request то он приходит на cmd в драйвере.
>
>Но указатель char * argp не приходит на caddr_t data (char *
>data).
>И то есть получается я не могу никакие данные передать в драйвер.
>
>Судя по ману я решил, что в параметре request необходимо еще как-то
>
>задавать размер и свойства argp/data.
>
>Это так? Или я что-то неправильно делаю....
>Буду очень благодарен за любую помощь.

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру