chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
release 126
[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 d36a27b3ccbb5aafb9fb839323f6f974ab01294a..5b78b975d84c9d06482ac5d38f65dfa386f70cd6 100644
(file)
--- a/
extras/usb_id/usb_id.c
+++ b/
extras/usb_id/usb_id.c
@@
-1,7
+1,5
@@
/*
/*
- * usb_id.c
- *
- * Identify an USB (block) device
+ * usb_id - identify an USB device
*
* Copyright (c) 2005 SUSE Linux Products GmbH, Germany
*
*
* Copyright (c) 2005 SUSE Linux Products GmbH, Germany
*
@@
-22,7
+20,7
@@
#include <errno.h>
#include <getopt.h>
#include <errno.h>
#include <getopt.h>
-#include "../../udev.h"
+#include "../../udev
/udev
.h"
#define MAX_PATH_LEN 512
#define MAX_SERIAL_LEN 256
#define MAX_PATH_LEN 512
#define MAX_SERIAL_LEN 256
@@
-224,8
+222,6
@@
static int usb_id(const char *devpath)
struct sysfs_device *dev;
struct sysfs_device *dev_interface;
struct sysfs_device *dev_usb;
struct sysfs_device *dev;
struct sysfs_device *dev_interface;
struct sysfs_device *dev_usb;
- const char *scsi_model, *scsi_vendor, *scsi_type, *scsi_rev;
- const char *usb_model = NULL, *usb_vendor = NULL, *usb_rev, *usb_serial;
const char *if_class, *if_subclass;
int if_class_num;
int protocol = 0;
const char *if_class, *if_subclass;
int if_class_num;
int protocol = 0;
@@
-235,20
+231,20
@@
static int usb_id(const char *devpath)
/* get all usb specific information: dev_interface, if_class, dev_usb */
dev = sysfs_device_get(devpath);
if (dev == NULL) {
/* get all usb specific information: dev_interface, if_class, dev_usb */
dev = sysfs_device_get(devpath);
if (dev == NULL) {
- err("unable to access '%s'", devpath);
+ err("unable to access '%s'
\n
", devpath);
return 1;
}
/* usb interface directory */
dev_interface = sysfs_device_get_parent_with_subsystem(dev, "usb");
if (dev_interface == NULL) {
return 1;
}
/* usb interface directory */
dev_interface = sysfs_device_get_parent_with_subsystem(dev, "usb");
if (dev_interface == NULL) {
- info("unable to access usb_interface device of '%s'", devpath);
+ info("unable to access usb_interface device of '%s'
\n
", devpath);
return 1;
}
if_class = sysfs_attr_get_value(dev_interface->devpath, "bInterfaceClass");
if (!if_class) {
return 1;
}
if_class = sysfs_attr_get_value(dev_interface->devpath, "bInterfaceClass");
if (!if_class) {
- info("%s: cannot get bInterfaceClass attribute", dev_interface->kernel);
+ info("%s: cannot get bInterfaceClass attribute
\n
", dev_interface->kernel);
return 1;
}
if_class_num = strtoul(if_class, NULL, 16);
return 1;
}
if_class_num = strtoul(if_class, NULL, 16);
@@
-264,51
+260,52
@@
static int usb_id(const char *devpath)
/* usb device directory */
dev_usb = sysfs_device_get_parent_with_subsystem(dev_interface, "usb");
if (!dev_usb) {
/* usb device directory */
dev_usb = sysfs_device_get_parent_with_subsystem(dev_interface, "usb");
if (!dev_usb) {
- info("unable to find parent 'usb' device of '%s'", devpath);
+ info("unable to find parent 'usb' device of '%s'
\n
", devpath);
return 1;
}
/* mass storage */
if (protocol == 6 && !use_usb_info) {
struct sysfs_device *dev_scsi;
return 1;
}
/* mass storage */
if (protocol == 6 && !use_usb_info) {
struct sysfs_device *dev_scsi;
+ const char *scsi_model, *scsi_vendor, *scsi_type, *scsi_rev;
int host, bus, target, lun;
/* get scsi device */
dev_scsi = sysfs_device_get_parent_with_subsystem(dev, "scsi");
if (dev_scsi == NULL) {
int host, bus, target, lun;
/* get scsi device */
dev_scsi = sysfs_device_get_parent_with_subsystem(dev, "scsi");
if (dev_scsi == NULL) {
- info("unable to find parent 'scsi' device of '%s'", devpath);
+ info("unable to find parent 'scsi' device of '%s'
\n
", devpath);
goto fallback;
}
if (sscanf(dev_scsi->kernel, "%d:%d:%d:%d", &host, &bus, &target, &lun) != 4) {
goto fallback;
}
if (sscanf(dev_scsi->kernel, "%d:%d:%d:%d", &host, &bus, &target, &lun) != 4) {
- info("invalid scsi device '%s'", dev_scsi->kernel);
+ info("invalid scsi device '%s'
\n
", dev_scsi->kernel);
goto fallback;
}
/* Generic SPC-2 device */
scsi_vendor = sysfs_attr_get_value(dev_scsi->devpath, "vendor");
if (!scsi_vendor) {
goto fallback;
}
/* Generic SPC-2 device */
scsi_vendor = sysfs_attr_get_value(dev_scsi->devpath, "vendor");
if (!scsi_vendor) {
- info("%s: cannot get SCSI vendor attribute", dev_scsi->kernel);
+ info("%s: cannot get SCSI vendor attribute
\n
", dev_scsi->kernel);
goto fallback;
}
set_str(vendor_str, scsi_vendor, sizeof(vendor_str)-1);
scsi_model = sysfs_attr_get_value(dev_scsi->devpath, "model");
if (!scsi_model) {
goto fallback;
}
set_str(vendor_str, scsi_vendor, sizeof(vendor_str)-1);
scsi_model = sysfs_attr_get_value(dev_scsi->devpath, "model");
if (!scsi_model) {
- info("%s: cannot get SCSI model attribute", dev_scsi->kernel);
+ info("%s: cannot get SCSI model attribute
\n
", dev_scsi->kernel);
goto fallback;
}
set_str(model_str, scsi_model, sizeof(model_str)-1);
scsi_type = sysfs_attr_get_value(dev_scsi->devpath, "type");
if (!scsi_type) {
goto fallback;
}
set_str(model_str, scsi_model, sizeof(model_str)-1);
scsi_type = sysfs_attr_get_value(dev_scsi->devpath, "type");
if (!scsi_type) {
- info("%s: cannot get SCSI type attribute", dev_scsi->kernel);
+ info("%s: cannot get SCSI type attribute
\n
", dev_scsi->kernel);
goto fallback;
}
set_scsi_type(type_str, scsi_type, sizeof(type_str)-1);
scsi_rev = sysfs_attr_get_value(dev_scsi->devpath, "rev");
if (!scsi_rev) {
goto fallback;
}
set_scsi_type(type_str, scsi_type, sizeof(type_str)-1);
scsi_rev = sysfs_attr_get_value(dev_scsi->devpath, "rev");
if (!scsi_rev) {
- info("%s: cannot get SCSI revision attribute", dev_scsi->kernel);
+ info("%s: cannot get SCSI revision attribute
\n
", dev_scsi->kernel);
goto fallback;
}
set_str(revision_str, scsi_rev, sizeof(revision_str)-1);
goto fallback;
}
set_str(revision_str, scsi_rev, sizeof(revision_str)-1);
@@
-321,40
+318,50
@@
static int usb_id(const char *devpath)
}
fallback:
}
fallback:
- /*
F
allback to USB vendor & device */
+ /*
f
allback to USB vendor & device */
if (vendor_str[0] == '\0') {
if (vendor_str[0] == '\0') {
+ const char *usb_vendor = NULL;
+
if (!use_num_info)
if (!use_num_info)
- if (!(usb_vendor = sysfs_attr_get_value(dev_usb->devpath, "manufacturer")))
- dbg("No USB vendor string found, using idVendor");
+ usb_vendor = sysfs_attr_get_value(dev_usb->devpath, "manufacturer");
+
+ if (!usb_vendor)
+ usb_vendor = sysfs_attr_get_value(dev_usb->devpath, "idVendor");
if (!usb_vendor) {
if (!usb_vendor) {
- if (!(usb_vendor = sysfs_attr_get_value(dev_usb->devpath, "idVendor"))) {
- dbg("No USB vendor information available\n");
- sprintf(vendor_str,"0000");
- }
+ info("No USB vendor information available\n");
+ return 1;
}
}
- set_str(vendor_str,
usb_vendor, sizeof(vendor_str) -
1);
+ set_str(vendor_str,
usb_vendor, sizeof(vendor_str)-
1);
}
}
-
+
if (model_str[0] == '\0') {
if (model_str[0] == '\0') {
+ const char *usb_model = NULL;
+
if (!use_num_info)
if (!use_num_info)
- if (!(usb_model = sysfs_attr_get_value(dev_usb->devpath, "product")))
- dbg("No USB model string found, using idProduct");
-
+ usb_model = sysfs_attr_get_value(dev_usb->devpath, "product");
+
+ if (!usb_model)
+ usb_model = sysfs_attr_get_value(dev_usb->devpath, "idProduct");
+
if (!usb_model) {
if (!usb_model) {
- if (!(usb_model = sysfs_attr_get_value(dev_usb->devpath, "idProduct")))
-
dbg("No USB model information available\n"); sprintf(model_str,"0000")
;
+ dbg("No USB model information available\n");
+
return 1
;
}
}
- set_str(model_str, usb_model, sizeof(model_str)
-
1);
+ set_str(model_str, usb_model, sizeof(model_str)
-
1);
}
if (revision_str[0] == '\0') {
}
if (revision_str[0] == '\0') {
+ const char *usb_rev;
+
usb_rev = sysfs_attr_get_value(dev_usb->devpath, "bcdDevice");
if (usb_rev)
set_str(revision_str, usb_rev, sizeof(revision_str)-1);
}
if (serial_str[0] == '\0') {
usb_rev = sysfs_attr_get_value(dev_usb->devpath, "bcdDevice");
if (usb_rev)
set_str(revision_str, usb_rev, sizeof(revision_str)-1);
}
if (serial_str[0] == '\0') {
+ const char *usb_serial;
+
usb_serial = sysfs_attr_get_value(dev_usb->devpath, "serial");
if (usb_serial)
set_str(serial_str, usb_serial, sizeof(serial_str)-1);
usb_serial = sysfs_attr_get_value(dev_usb->devpath, "serial");
if (usb_serial)
set_str(serial_str, usb_serial, sizeof(serial_str)-1);