Есть у меня проприетарный драйвер. Хочу сделать опенсорс. Причем, судя по всему такой уже есть, но хочу велосипед)
Суть в том, что он обменивается с устройством (UPS) USB HID коммандами.
Кусок strace:
open("/dev/usb/hiddev0", O_RDWR) = 4
ioctl(4, HIDIOCAPPLICATION or HIDIOCGRDESC, 0) = 8650756
ioctl(4, HIDIOCGREPORTINFO, 0xffbaa200) = 0
ioctl(4, HIDIOCGFIELDINFO, 0xffbaa1b0) = 0
ioctl(4, HIDIOCGUCODE, 0xffbaa1e8) = 0
ioctl(4, HIDIOCGFIELDINFO, 0xffbaa1b0) = 0
ioctl(4, HIDIOCGUCODE, 0xffbaa1e8) = 0
ioctl(4, HIDIOCGFIELDINFO, 0xffbaa1b0) = 0
ioctl(4, HIDIOCGUCODE, 0xffbaa1e8) = 0
ioctl(4, HIDIOCGREPORTINFO, 0xffbaa200) = 0
Как просмотреть, что там в памяти для 3-го аргумента?
gdb выдает просто
(gdb) bt
#0 ioctl () at ../sysdeps/unix/syscall-template.S:82
#1 0x08049b5e in check_device_is_ups ()
#2 0x0804a1ef in connect_device ()
#3 0x0804a2d8 in hid_ups_connect ()
#4 0x0804910c in ups_connect ()
#5 0x0804cad2 in ontimer_device_connecting ()
#6 0x0804c022 in invoke_timertasks ()
#7 0x0804c8e6 in main ()
И ещё вопрос, а этот HID-интерфейс для UPS един, или каждая компания стремится сделать свой вариант?