usb-enum: refactor enumeration

parent f9d1e06f
......@@ -12,22 +12,22 @@
#define MAX_OUA 16
static struct oua_usb_dev {
struct oua_usb_dev {
char path[PATH_MAX];
char busnum[6];
char busnum[6];
char devnum[6];
char portnum[6];
char devno[10];
char serial[256];
} usb_dev[MAX_OUA];
};
static int oua_enumerate(char *vendor_id, char *device_id);
static struct oua_usb_dev usb_dev[MAX_OUA];
static struct oua_devlist {
struct oua_usb_dev *devs;
int ndevs;
} devlist = { usb_dev, -1, };
int main(int argc, char *argv[])
{
oua_enumerate(ID_VENDOR_ID, ID_DEVICE_ID);
return 0;
}
static int oua_enumerate(char *vendor_id, char *device_id);
static int oua_enumerate(char *vendor_id, char *device_id)
{
......@@ -47,17 +47,13 @@ static int oua_enumerate(char *vendor_id, char *device_id)
goto out;
const char *path = udev_list_entry_get_name(ptr);
struct udev_device *dev = udev_device_new_from_syspath(udev, path);
struct oua_usb_dev *entry = &usb_dev[found_devs];
struct oua_usb_dev *entry = &usb_dev[found_devs];
strcpy(entry->path, path);
strcpy(entry->busnum, udev_device_get_sysattr_value(dev, "busnum"));
strcpy(entry->devnum, udev_device_get_sysattr_value(dev, "devnum"));
strcpy(entry->devno, udev_device_get_sysattr_value(dev, "dev"));
strcpy(entry->serial, udev_device_get_sysattr_value(dev, "serial"));
printf("bus:dev %03ld:%03ld, devno: %s, serial: %s, devpath=[%s]\n",
strtoul(entry->busnum, NULL, 0), strtoul(entry->devnum, NULL, 0),
entry->devno, entry->serial, entry->path);
found_devs++;
udev_device_unref(dev);
}
......@@ -65,3 +61,22 @@ out:
udev_enumerate_unref(enumerate);
return found_devs;
}
int main(int argc, char *argv[])
{
int i, devs;
devs = oua_enumerate(ID_VENDOR_ID, ID_DEVICE_ID);
for (i = 0; i < devs; i++) {
struct oua_usb_dev *entry = &usb_dev[i];
char busport[16];
strcpy(busport, rindex(entry->path, '/') + 1);
printf("bus:dev %03ld:%03ld, bus-port %s, devno: %s, serial: %s, devpath=[%s]\n",
strtoul(entry->busnum, NULL, 0),
strtoul(entry->devnum, NULL, 0),
busport, entry->devno, entry->serial, entry->path);
}
return 0;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment