package evdev IOC_NRBITS :: 8 IOC_TYPEBITS :: 8 IOC_SIZEBITS :: 14 IOC_DIRBITS :: 2 IOC_NRSHIFT :: 0 IOC_TYPESHIFT :: IOC_NRSHIFT + IOC_NRBITS IOC_SIZESHIFT :: IOC_TYPESHIFT + IOC_TYPEBITS IOC_DIRSHIFT :: IOC_SIZESHIFT + IOC_SIZEBITS IOC_NONE: uint : 0 IOC_WRITE: uint : 1 IOC_READ: uint : 2 EVIOCGABS :: ((IOC_READ << IOC_DIRSHIFT) | ('E' << IOC_TYPESHIFT) | ((0x40 + ( /* AXIS */0)) << IOC_NRSHIFT) | (size_of(InputAbsinfo) << IOC_SIZESHIFT)) EVIOCGKEY :: ((IOC_READ << IOC_DIRSHIFT) | ('E' << IOC_TYPESHIFT) | (0x18 << IOC_NRSHIFT) | (((0x2ff + 7) / 8) << IOC_SIZESHIFT)) foreign import stdc "system:c" @(default_calling_convention = "c") foreign stdc { strerror :: proc(errnum: int) -> cstring --- } /* #define EVIOCGKEYCODE_V2 _IOR('E', 0x04, struct input_keymap_entry) #define EVIOCGKEY(len) _IOC(_IOC_READ, 'E', 0x18, len) /* get global key state */ #define EVIOCGBIT(ev,len) _IOC(_IOC_READ, 'E', 0x20 + (ev), len) /* get event bits */ #define EVIOCGABS(abs) _IOR('E', 0x40 + (abs), struct input_absinfo) /* get abs value/limits */ #define EVIOCSABS(abs) _IOW('E', 0xc0 + (abs), struct input_absinfo) /* set abs value/limits */ */