![]() |
|
Модераторы: xvr |
![]()
|
|
| dima3351 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 3.3.2006 Репутация: нет Всего: нет |
Есть драйвер сетевого устройства, у которого зарегестрирована функция передачи пакетов (dev->hard_start_xmit = snull_tx;)
Вопрос: как из пользовательского приложения, работающего с этим драйвером, начать передачу пакетов, т.е. вызвать мою функцию snull_tx? Если кто умеет, подскажите, плз! |
|||
|
||||
| bilbobagginz |
|
|||
![]() Naughtius Maximus ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8813 Регистрация: 2.3.2004 Где: Israel Репутация: 4 Всего: 317 |
не хватает информации для полного ответа...
и какие пакеты функция должна передавать ? Ethernet ? ARP ? можешь создать "обложку" ( wrapper) этого драйвера и зарегистрировать блочное устройство, а на него писать напрямую - read/write etc. просто в линуксе это обычно не делается - сетевые устройства не имеют записи в /dev пока. -------------------- Я ещё не демон. Я только учусь. |
|||
|
||||
| dima3351 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 3.3.2006 Репутация: нет Всего: нет |
спасибо, но:
не понимаю - а какая разница, какие пакеты? вопрос в следующем - как вызвать функцию структуры net_dev из пользовательского приложения. Ваш ответ я понял - через блочное устройство, которое имеет право вызывать функции ядра. Но мне кажется немного странным, что для того, чтобы передавать пакеты через сетевое устройство, требуется еще один модуль... Получается, проще и удобнее через ioctl? еще раз спасибо |
|||
|
||||
| GrayCardinal |
|
|||
|
Фигасе ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3039 Регистрация: 9.11.2003 Репутация: 8 Всего: 58 |
dima3351,
Из юзверь-спэйса зачастую RAW-сокетами шлют. libnet.sf.net к примеру глянь. А больше никак... Не, ну можно еще контроллер сетевухи ручками из юзверь-спэйса включить. Весело, но сложно. Да и вопроса "работающего с этим драйвером" я недопонял. Добавлено @ 06:25 Да, а из юзверь спэйса функции ядра не вызываются. Может с Windows спутали ? У Линукс есть только системные вызовы |
|||
|
||||
| dima3351 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 3.3.2006 Репутация: нет Всего: нет |
Спасибо, все понятно... Все равно удобнее через ioctl...
|
|||
|
||||
| GrayCardinal |
|
|||
|
Фигасе ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3039 Регистрация: 9.11.2003 Репутация: 8 Всего: 58 |
dima3351,
Э-не, не надо так. Чай не в винде |
|||
|
||||
![]()
|
| Правила форума "С/С++: Программирование под Unix/Linux" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |