Eu li a documentação do kernel para hidraw e hiddev e compreendo as diferenças, mas estou me perguntando como o kernel decide se um dispositivo deve ou não aparecer como /dev/hidraw*
ou/dev/usb/hiddev*
Eu li a documentação do kernel para hidraw e hiddev e compreendo as diferenças, mas estou me perguntando como o kernel decide se um dispositivo deve ou não aparecer como /dev/hidraw*
ou/dev/usb/hiddev*
Respostas:
É passado como parâmetro por driver para hid_hw_start()
/ hid_connect()
. Por exemplo:
hid-thingm.c: err = hid_hw_start(hdev, HID_CONNECT_HIDRAW);
Eu acho que a maioria dos drivers faz algo assim:
hid-logitech-dj.c: retval = hid_hw_start(hdev, HID_CONNECT_DEFAULT);
E HID_CONNECT_DEFAULT
inclui HID_CONNECT_HIDRAW
:
#define HID_CONNECT_DEFAULT (HID_CONNECT_HIDINPUT|HID_CONNECT_HIDRAW| \
HID_CONNECT_HIDDEV|HID_CONNECT_FF)
Exatamente a mesma coisa acontece para ambos hidraw
e hiddev
.