MCPcopy Create free account
hub / github.com/Serial-Studio/Serial-Studio / create_device_info_for_hid_device

Function create_device_info_for_hid_device

lib/hidapi/linux/hid.c:771–809  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

769}
770
771static struct hid_device_info * create_device_info_for_hid_device(hid_device *dev) {
772 struct udev *udev;
773 struct udev_device *udev_dev;
774 struct stat s;
775 int ret = -1;
776 struct hid_device_info *root = NULL;
777
778 register_device_error(dev, NULL);
779
780 /* Get the dev_t (major/minor numbers) from the file handle. */
781 ret = fstat(dev->device_handle, &s);
782 if (-1 == ret) {
783 register_device_error(dev, "Failed to stat device handle");
784 return NULL;
785 }
786
787 /* Create the udev object */
788 udev = udev_new();
789 if (!udev) {
790 register_device_error(dev, "Couldn't create udev context");
791 return NULL;
792 }
793
794 /* Open a udev device from the dev_t. 'c' means character device. */
795 udev_dev = udev_device_new_from_devnum(udev, 'c', s.st_rdev);
796 if (udev_dev) {
797 root = create_device_info_for_device(udev_dev);
798 }
799
800 if (!root) {
801 /* TODO: have a better error reporting via create_device_info_for_device */
802 register_device_error(dev, "Couldn't create hid_device_info");
803 }
804
805 udev_device_unref(udev_dev);
806 udev_unref(udev);
807
808 return root;
809}
810
811HID_API_EXPORT const struct hid_api_version* HID_API_CALL hid_version(void)
812{

Callers 1

hid.cFile · 0.85

Calls 2

register_device_errorFunction · 0.70

Tested by

no test coverage detected