diff --git a/src/datamodel.c b/src/datamodel.c index 2ed57751224d4f599dc9ca98ebfb0ac8f1406681..ce6e29f98d0ee003992d9edaf7616c53efd7b491 100644 --- a/src/datamodel.c +++ b/src/datamodel.c @@ -912,7 +912,7 @@ static int get_USBUSBHostsHostDevice_DeviceNumber(char *refparam, struct dmctx * static int get_USBUSBHostsHostDevice_USBVersion(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value) { struct dm_data *p = (struct dm_data *)data; - return read_sysfs_usb_port(p->additional_data, "bcdDevice", value); + return read_sysfs_usb_port(p->additional_data, "version", value); } static int get_USBUSBHostsHostDevice_DeviceClass(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value) @@ -927,6 +927,12 @@ static int get_USBUSBHostsHostDevice_DeviceSubClass(char *refparam, struct dmctx return read_sysfs_usb_port(p->additional_data, "bDeviceSubClass", value); } +static int get_USBUSBHostsHostDevice_DeviceVersion(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value) +{ + struct dm_data *p = (struct dm_data *)data; + return read_sysfs_usb_port(p->additional_data, "bcdDevice", value); +} + static int get_USBUSBHostsHostDevice_DeviceProtocol(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value) { struct dm_data *p = (struct dm_data *)data; @@ -1069,6 +1075,21 @@ static int get_USBUSBHostsHostDevice_IsSuspended(char *refparam, struct dmctx *c return 0; } +static int get_USBUSBHostsHostDevice_IsSelfPowered(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value) +{ +#if 0 + char status[16] = {0}; + struct dm_data *p = (struct dm_data *)data; + + __read_sysfs_usb_port(p->additional_data, "power/runtime_status", status, sizeof(status)); + if(DM_LSTRNCMP(status, "suspended", 9) == 0) + *value= "1"; + else + *value = "0"; +#endif + return 0; +} + static int get_USBUSBHostsHostDevice_ConfigurationNumberOfEntries(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value) { struct dm_data *p = (struct dm_data *)data; @@ -1232,7 +1253,7 @@ DMLEAF tUSBUSBHostsHostDeviceParams[] = { {"USBVersion", &DMREAD, DMT_STRING, get_USBUSBHostsHostDevice_USBVersion, NULL, BBFDM_BOTH}, {"DeviceClass", &DMREAD, DMT_HEXBIN, get_USBUSBHostsHostDevice_DeviceClass, NULL, BBFDM_BOTH}, {"DeviceSubClass", &DMREAD, DMT_HEXBIN, get_USBUSBHostsHostDevice_DeviceSubClass, NULL, BBFDM_BOTH}, -//{"DeviceVersion", &DMREAD, DMT_UNINT, get_USBUSBHostsHostDevice_DeviceVersion, NULL, BBFDM_BOTH}, +{"DeviceVersion", &DMREAD, DMT_UNINT, get_USBUSBHostsHostDevice_DeviceVersion, NULL, BBFDM_BOTH}, {"DeviceProtocol", &DMREAD, DMT_HEXBIN, get_USBUSBHostsHostDevice_DeviceProtocol, NULL, BBFDM_BOTH}, {"ProductID", &DMREAD, DMT_UNINT, get_USBUSBHostsHostDevice_ProductID, NULL, BBFDM_BOTH}, {"VendorID", &DMREAD, DMT_UNINT, get_USBUSBHostsHostDevice_VendorID, NULL, BBFDM_BOTH}, @@ -1245,7 +1266,7 @@ DMLEAF tUSBUSBHostsHostDeviceParams[] = { {"Parent", &DMREAD, DMT_STRING, get_USBUSBHostsHostDevice_Parent, NULL, BBFDM_BOTH, DM_FLAG_REFERENCE}, {"MaxChildren", &DMREAD, DMT_UNINT, get_USBUSBHostsHostDevice_MaxChildren, NULL, BBFDM_BOTH}, {"IsSuspended", &DMREAD, DMT_BOOL, get_USBUSBHostsHostDevice_IsSuspended, NULL, BBFDM_BOTH}, -//{"IsSelfPowered", &DMREAD, DMT_BOOL, get_USBUSBHostsHostDevice_IsSelfPowered, NULL, BBFDM_BOTH}, +{"IsSelfPowered", &DMREAD, DMT_BOOL, get_USBUSBHostsHostDevice_IsSelfPowered, NULL, BBFDM_BOTH}, {"ConfigurationNumberOfEntries", &DMREAD, DMT_UNINT, get_USBUSBHostsHostDevice_ConfigurationNumberOfEntries, NULL, BBFDM_BOTH}, {0} };