diff options
Diffstat (limited to 'src/kerneldevice')
-rw-r--r-- | src/kerneldevice/mm-kernel-device-generic.c | 7 | ||||
-rw-r--r-- | src/kerneldevice/mm-kernel-device-udev.c | 10 | ||||
-rw-r--r-- | src/kerneldevice/mm-kernel-device.c | 8 | ||||
-rw-r--r-- | src/kerneldevice/mm-kernel-device.h | 2 |
4 files changed, 27 insertions, 0 deletions
diff --git a/src/kerneldevice/mm-kernel-device-generic.c b/src/kerneldevice/mm-kernel-device-generic.c index b1a3bf97..d6798c6f 100644 --- a/src/kerneldevice/mm-kernel-device-generic.c +++ b/src/kerneldevice/mm-kernel-device-generic.c @@ -551,6 +551,12 @@ kernel_device_get_sysfs_path (MMKernelDevice *self) } static gint +kernel_device_get_interface_number (MMKernelDevice *self) +{ + return (gint) MM_KERNEL_DEVICE_GENERIC (self)->priv->interface_number; +} + +static gint kernel_device_get_interface_class (MMKernelDevice *self) { return (gint) MM_KERNEL_DEVICE_GENERIC (self)->priv->interface_class; @@ -1172,6 +1178,7 @@ mm_kernel_device_generic_class_init (MMKernelDeviceGenericClass *klass) kernel_device_class->get_physdev_subsystem = kernel_device_get_physdev_subsystem; kernel_device_class->get_physdev_manufacturer = kernel_device_get_physdev_manufacturer; kernel_device_class->get_physdev_product = kernel_device_get_physdev_product; + kernel_device_class->get_interface_number = kernel_device_get_interface_number; kernel_device_class->get_interface_class = kernel_device_get_interface_class; kernel_device_class->get_interface_subclass = kernel_device_get_interface_subclass; kernel_device_class->get_interface_protocol = kernel_device_get_interface_protocol; diff --git a/src/kerneldevice/mm-kernel-device-udev.c b/src/kerneldevice/mm-kernel-device-udev.c index f75104bd..237d7201 100644 --- a/src/kerneldevice/mm-kernel-device-udev.c +++ b/src/kerneldevice/mm-kernel-device-udev.c @@ -403,6 +403,15 @@ kernel_device_get_physdev_product (MMKernelDevice *_self) } static gint +kernel_device_get_interface_number (MMKernelDevice *_self) +{ + MMKernelDeviceUdev *self; + + self = MM_KERNEL_DEVICE_UDEV (_self); + return (self->priv->interface ? (gint) udev_device_get_sysfs_attr_as_hex (self->priv->interface, "bInterfaceNumber") : -1); +} + +static gint kernel_device_get_interface_class (MMKernelDevice *_self) { MMKernelDeviceUdev *self; @@ -743,6 +752,7 @@ mm_kernel_device_udev_class_init (MMKernelDeviceUdevClass *klass) kernel_device_class->get_physdev_subsystem = kernel_device_get_physdev_subsystem; kernel_device_class->get_physdev_manufacturer = kernel_device_get_physdev_manufacturer; kernel_device_class->get_physdev_product = kernel_device_get_physdev_product; + kernel_device_class->get_interface_number = kernel_device_get_interface_number; kernel_device_class->get_interface_class = kernel_device_get_interface_class; kernel_device_class->get_interface_subclass = kernel_device_get_interface_subclass; kernel_device_class->get_interface_protocol = kernel_device_get_interface_protocol; diff --git a/src/kerneldevice/mm-kernel-device.c b/src/kerneldevice/mm-kernel-device.c index 464a3800..86251bcd 100644 --- a/src/kerneldevice/mm-kernel-device.c +++ b/src/kerneldevice/mm-kernel-device.c @@ -126,6 +126,14 @@ mm_kernel_device_get_physdev_product (MMKernelDevice *self) } gint +mm_kernel_device_get_interface_number (MMKernelDevice *self) +{ + return (MM_KERNEL_DEVICE_GET_CLASS (self)->get_interface_number ? + MM_KERNEL_DEVICE_GET_CLASS (self)->get_interface_number (self) : + -1); +} + +gint mm_kernel_device_get_interface_class (MMKernelDevice *self) { return (MM_KERNEL_DEVICE_GET_CLASS (self)->get_interface_class ? diff --git a/src/kerneldevice/mm-kernel-device.h b/src/kerneldevice/mm-kernel-device.h index 45b270d5..f1d869be 100644 --- a/src/kerneldevice/mm-kernel-device.h +++ b/src/kerneldevice/mm-kernel-device.h @@ -41,6 +41,7 @@ struct _MMKernelDeviceClass { const gchar * (* get_driver) (MMKernelDevice *self); const gchar * (* get_sysfs_path) (MMKernelDevice *self); + gint (* get_interface_number) (MMKernelDevice *self); gint (* get_interface_class) (MMKernelDevice *self); gint (* get_interface_subclass) (MMKernelDevice *self); gint (* get_interface_protocol) (MMKernelDevice *self); @@ -74,6 +75,7 @@ const gchar *mm_kernel_device_get_name (MMKernelDevice *self); const gchar *mm_kernel_device_get_driver (MMKernelDevice *self); const gchar *mm_kernel_device_get_sysfs_path (MMKernelDevice *self); +gint mm_kernel_device_get_interface_number (MMKernelDevice *self); gint mm_kernel_device_get_interface_class (MMKernelDevice *self); gint mm_kernel_device_get_interface_subclass (MMKernelDevice *self); gint mm_kernel_device_get_interface_protocol (MMKernelDevice *self); |