chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
usb_id: use devtype lookup
[elogind.git]
/
extras
/
usb_id
/
usb_id.c
diff --git
a/extras/usb_id/usb_id.c
b/extras/usb_id/usb_id.c
index 00d8a4c139e7353d37940ea092c3ec87c46fd602..f069f3a1acd12208272bc1a6da72f2f6f83f8106 100644
(file)
--- a/
extras/usb_id/usb_id.c
+++ b/
extras/usb_id/usb_id.c
@@
-54,28
+54,40
@@
static void set_usb_iftype(char *to, int if_class_num, size_t len)
case 1:
type = "audio";
break;
case 1:
type = "audio";
break;
+ case 2: /* CDC-Control */
+ break;
case 3:
type = "hid";
break;
case 3:
type = "hid";
break;
+ case 5: /* Physical */
+ break;
+ case 6:
+ type = "image";
+ break;
case 7:
type = "printer";
break;
case 8:
type = "storage";
break;
case 7:
type = "printer";
break;
case 8:
type = "storage";
break;
- case 2: /* CDC-Control */
- case 5: /* Physical */
- case 6: /* Image */
- case 9: /* HUB */
+ case 9:
+ type = "hub";
+ break;
case 0x0a: /* CDC-Data */
case 0x0a: /* CDC-Data */
+ break;
case 0x0b: /* Chip/Smart Card */
case 0x0b: /* Chip/Smart Card */
+ break;
case 0x0d: /* Content Security */
case 0x0d: /* Content Security */
+ break;
case 0x0e:
type = "video";
break;
case 0xdc: /* Diagnostic Device */
case 0x0e:
type = "video";
break;
case 0xdc: /* Diagnostic Device */
+ break;
case 0xe0: /* Wireless Controller */
case 0xe0: /* Wireless Controller */
- case 0xf2: /* Application-specific */
+ break;
+ case 0xfe: /* Application-specific */
+ break;
case 0xff: /* Vendor-specific */
break;
default:
case 0xff: /* Vendor-specific */
break;
default:
@@
-180,7
+192,7
@@
static int usb_id(struct udev_device *dev)
dbg(udev, "syspath %s\n", udev_device_get_syspath(dev));
/* usb interface directory */
dbg(udev, "syspath %s\n", udev_device_get_syspath(dev));
/* usb interface directory */
- dev_interface = udev_device_get_parent_with_subsystem
(dev, "usb
");
+ dev_interface = udev_device_get_parent_with_subsystem
_devtype(dev, "usb", "usb_interface
");
if (dev_interface == NULL) {
info(udev, "unable to access usb_interface device of '%s'\n",
udev_device_get_syspath(dev));
if (dev_interface == NULL) {
info(udev, "unable to access usb_interface device of '%s'\n",
udev_device_get_syspath(dev));
@@
-206,7
+218,7
@@
static int usb_id(struct udev_device *dev)
udev_device_get_syspath(dev_interface), if_class_num, protocol);
/* usb device directory */
udev_device_get_syspath(dev_interface), if_class_num, protocol);
/* usb device directory */
- dev_usb = udev_device_get_parent_with_subsystem
(dev_interface, "usb
");
+ dev_usb = udev_device_get_parent_with_subsystem
_devtype(dev_interface, "usb", "usb_device
");
if (!dev_usb) {
info(udev, "unable to find parent 'usb' device of '%s'\n",
udev_device_get_syspath(dev));
if (!dev_usb) {
info(udev, "unable to find parent 'usb' device of '%s'\n",
udev_device_get_syspath(dev));
@@
-220,7
+232,7
@@
static int usb_id(struct udev_device *dev)
int host, bus, target, lun;
/* get scsi device */
int host, bus, target, lun;
/* get scsi device */
- dev_scsi = udev_device_get_parent_with_subsystem
(dev, "scsi
");
+ dev_scsi = udev_device_get_parent_with_subsystem
_devtype(dev, "scsi", "scsi_device
");
if (dev_scsi == NULL) {
info(udev, "unable to find parent 'scsi' device of '%s'\n",
udev_device_get_syspath(dev));
if (dev_scsi == NULL) {
info(udev, "unable to find parent 'scsi' device of '%s'\n",
udev_device_get_syspath(dev));
@@
-239,6
+251,7
@@
static int usb_id(struct udev_device *dev)
goto fallback;
}
udev_util_replace_whitespace(scsi_vendor, vendor_str, sizeof(vendor_str)-1);
goto fallback;
}
udev_util_replace_whitespace(scsi_vendor, vendor_str, sizeof(vendor_str)-1);
+ udev_util_replace_chars(vendor_str, NULL);
scsi_model = udev_device_get_sysattr_value(dev_scsi, "model");
if (!scsi_model) {
scsi_model = udev_device_get_sysattr_value(dev_scsi, "model");
if (!scsi_model) {
@@
-247,6
+260,7
@@
static int usb_id(struct udev_device *dev)
goto fallback;
}
udev_util_replace_whitespace(scsi_model, model_str, sizeof(model_str)-1);
goto fallback;
}
udev_util_replace_whitespace(scsi_model, model_str, sizeof(model_str)-1);
+ udev_util_replace_chars(model_str, NULL);
scsi_type = udev_device_get_sysattr_value(dev_scsi, "type");
if (!scsi_type) {
scsi_type = udev_device_get_sysattr_value(dev_scsi, "type");
if (!scsi_type) {
@@
-263,6
+277,7
@@
static int usb_id(struct udev_device *dev)
goto fallback;
}
udev_util_replace_whitespace(scsi_rev, revision_str, sizeof(revision_str)-1);
goto fallback;
}
udev_util_replace_whitespace(scsi_rev, revision_str, sizeof(revision_str)-1);
+ udev_util_replace_chars(revision_str, NULL);
/*
* some broken devices have the same identifiers
/*
* some broken devices have the same identifiers
@@
-287,6
+302,7
@@
fallback:
return 1;
}
udev_util_replace_whitespace(usb_vendor, vendor_str, sizeof(vendor_str)-1);
return 1;
}
udev_util_replace_whitespace(usb_vendor, vendor_str, sizeof(vendor_str)-1);
+ udev_util_replace_chars(vendor_str, NULL);
}
if (model_str[0] == '\0') {
}
if (model_str[0] == '\0') {
@@
-303,22
+319,27
@@
fallback:
return 1;
}
udev_util_replace_whitespace(usb_model, model_str, sizeof(model_str)-1);
return 1;
}
udev_util_replace_whitespace(usb_model, model_str, sizeof(model_str)-1);
+ udev_util_replace_chars(model_str, NULL);
}
if (revision_str[0] == '\0') {
const char *usb_rev;
usb_rev = udev_device_get_sysattr_value(dev_usb, "bcdDevice");
}
if (revision_str[0] == '\0') {
const char *usb_rev;
usb_rev = udev_device_get_sysattr_value(dev_usb, "bcdDevice");
- if (usb_rev)
+ if (usb_rev)
{
udev_util_replace_whitespace(usb_rev, revision_str, sizeof(revision_str)-1);
udev_util_replace_whitespace(usb_rev, revision_str, sizeof(revision_str)-1);
+ udev_util_replace_chars(revision_str, NULL);
+ }
}
if (serial_str[0] == '\0') {
const char *usb_serial;
usb_serial = udev_device_get_sysattr_value(dev_usb, "serial");
}
if (serial_str[0] == '\0') {
const char *usb_serial;
usb_serial = udev_device_get_sysattr_value(dev_usb, "serial");
- if (usb_serial)
+ if (usb_serial)
{
udev_util_replace_whitespace(usb_serial, serial_str, sizeof(serial_str)-1);
udev_util_replace_whitespace(usb_serial, serial_str, sizeof(serial_str)-1);
+ udev_util_replace_chars(serial_str, NULL);
+ }
}
return 0;
}
}
return 0;
}