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 */
*/