Я читаю документацию по ядру для hidraw и hiddev, и я понимаю различия, но мне интересно, как ядро решает, должно ли устройство отображаться как /dev/hidraw*
или/dev/usb/hiddev*
Я читаю документацию по ядру для hidraw и hiddev, и я понимаю различия, но мне интересно, как ядро решает, должно ли устройство отображаться как /dev/hidraw*
или/dev/usb/hiddev*
Ответы:
Он передается как параметр для каждого драйвера в hid_hw_start()
/ hid_connect()
. Например:
hid-thingm.c: err = hid_hw_start(hdev, HID_CONNECT_HIDRAW);
Я думаю, что большинство драйверов делают что-то вроде этого:
hid-logitech-dj.c: retval = hid_hw_start(hdev, HID_CONNECT_DEFAULT);
И HID_CONNECT_DEFAULT
включает в себя HID_CONNECT_HIDRAW
:
#define HID_CONNECT_DEFAULT (HID_CONNECT_HIDINPUT|HID_CONNECT_HIDRAW| \
HID_CONNECT_HIDDEV|HID_CONNECT_FF)
То же самое происходит для обоих hidraw
и hiddev
.