int os_resetusb(usbdevice* kb, const char* file, int line){ TEST_RESET(usbunclaim(kb, 1, HAS_FEATURES(kb, FEAT_RGB))); TEST_RESET(ioctl(kb->handle, USBDEVFS_RESET)); TEST_RESET(usbclaim(kb, HAS_FEATURES(kb, FEAT_RGB))); // Success! return 0; }
void closehandle(usbdevice* kb){ usbunclaim(kb); close(kb->handle); udev_device_unref(kb->udev); kb->handle = 0; kb->udev = 0; }
int os_resetusb(usbdevice* kb, const char* file, int line){ TEST_RESET(usbunclaim(kb, 1)); TEST_RESET(ioctl(kb->handle - 1, USBDEVFS_RESET)); TEST_RESET(usbclaim(kb)); // Success! return 0; }
void os_closeusb(usbdevice* kb){ usbunclaim(kb, 0, HAS_FEATURES(kb, FEAT_RGB)); close(kb->handle); udev_device_unref(kb->udev); kb->handle = 0; kb->udev = 0; kbsyspath[INDEX_OF(kb, keyboard)][0] = 0; }
void os_closeusb(usbdevice* kb){ if(kb->handle){ usbunclaim(kb, 0); close(kb->handle - 1); } if(kb->udev) udev_device_unref(kb->udev); kb->handle = 0; kb->udev = 0; kbsyspath[INDEX_OF(kb, keyboard)][0] = 0; }
int resetusb(usbdevice* kb){ int res = usbunclaim(kb); if(res) return res; return usbclaim(kb); }