diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/kerneldevice/mm-kernel-device-generic.c | 39 | ||||
-rw-r--r-- | src/kerneldevice/mm-kernel-device-udev.c | 16 | ||||
-rw-r--r-- | src/kerneldevice/mm-kernel-device.c | 10 | ||||
-rw-r--r-- | src/kerneldevice/mm-kernel-device.h | 9 |
4 files changed, 56 insertions, 18 deletions
diff --git a/src/kerneldevice/mm-kernel-device-generic.c b/src/kerneldevice/mm-kernel-device-generic.c index 500afb83..fb4c7fac 100644 --- a/src/kerneldevice/mm-kernel-device-generic.c +++ b/src/kerneldevice/mm-kernel-device-generic.c @@ -475,6 +475,14 @@ kernel_device_get_physdev_pid (MMKernelDevice *self) return MM_KERNEL_DEVICE_GENERIC (self)->priv->physdev_pid; } +static const gchar * +kernel_device_get_physdev_manufacturer (MMKernelDevice *self) +{ + g_return_val_if_fail (MM_IS_KERNEL_DEVICE_GENERIC (self), 0); + + return MM_KERNEL_DEVICE_GENERIC (self)->priv->physdev_manufacturer; +} + static gboolean kernel_device_is_candidate (MMKernelDevice *_self, gboolean manual_scan) @@ -1054,21 +1062,22 @@ mm_kernel_device_generic_class_init (MMKernelDeviceGenericClass *klass) object_class->get_property = get_property; object_class->set_property = set_property; - kernel_device_class->get_subsystem = kernel_device_get_subsystem; - kernel_device_class->get_name = kernel_device_get_name; - kernel_device_class->get_driver = kernel_device_get_driver; - kernel_device_class->get_sysfs_path = kernel_device_get_sysfs_path; - kernel_device_class->get_physdev_uid = kernel_device_get_physdev_uid; - kernel_device_class->get_physdev_vid = kernel_device_get_physdev_vid; - kernel_device_class->get_physdev_pid = kernel_device_get_physdev_pid; - kernel_device_class->get_parent_sysfs_path = kernel_device_get_parent_sysfs_path; - kernel_device_class->is_candidate = kernel_device_is_candidate; - kernel_device_class->cmp = kernel_device_cmp; - kernel_device_class->has_property = kernel_device_has_property; - kernel_device_class->get_property = kernel_device_get_property; - kernel_device_class->get_property_as_boolean = kernel_device_get_property_as_boolean; - kernel_device_class->get_property_as_int = kernel_device_get_property_as_int; - kernel_device_class->get_property_as_int_hex = kernel_device_get_property_as_int_hex; + kernel_device_class->get_subsystem = kernel_device_get_subsystem; + kernel_device_class->get_name = kernel_device_get_name; + kernel_device_class->get_driver = kernel_device_get_driver; + kernel_device_class->get_sysfs_path = kernel_device_get_sysfs_path; + kernel_device_class->get_physdev_uid = kernel_device_get_physdev_uid; + kernel_device_class->get_physdev_vid = kernel_device_get_physdev_vid; + kernel_device_class->get_physdev_pid = kernel_device_get_physdev_pid; + kernel_device_class->get_physdev_manufacturer = kernel_device_get_physdev_manufacturer; + kernel_device_class->get_parent_sysfs_path = kernel_device_get_parent_sysfs_path; + kernel_device_class->is_candidate = kernel_device_is_candidate; + kernel_device_class->cmp = kernel_device_cmp; + kernel_device_class->has_property = kernel_device_has_property; + kernel_device_class->get_property = kernel_device_get_property; + kernel_device_class->get_property_as_boolean = kernel_device_get_property_as_boolean; + kernel_device_class->get_property_as_int = kernel_device_get_property_as_int; + kernel_device_class->get_property_as_int_hex = kernel_device_get_property_as_int_hex; /* Device-wide properties are stored per-port in the generic backend */ kernel_device_class->has_global_property = kernel_device_has_property; diff --git a/src/kerneldevice/mm-kernel-device-udev.c b/src/kerneldevice/mm-kernel-device-udev.c index a5e5c80b..c07d7b44 100644 --- a/src/kerneldevice/mm-kernel-device-udev.c +++ b/src/kerneldevice/mm-kernel-device-udev.c @@ -384,6 +384,21 @@ kernel_device_get_physdev_pid (MMKernelDevice *_self) } static const gchar * +kernel_device_get_physdev_manufacturer (MMKernelDevice *_self) +{ + MMKernelDeviceUdev *self; + + g_return_val_if_fail (MM_IS_KERNEL_DEVICE_UDEV (_self), NULL); + + self = MM_KERNEL_DEVICE_UDEV (_self); + ensure_physdev (self); + if (!self->priv->physdev) + return NULL; + + return g_udev_device_get_sysfs_attr (self->priv->physdev, "manufacturer"); +} + +static const gchar * kernel_device_get_parent_sysfs_path (MMKernelDevice *_self) { MMKernelDeviceUdev *self; @@ -864,6 +879,7 @@ mm_kernel_device_udev_class_init (MMKernelDeviceUdevClass *klass) kernel_device_class->get_physdev_uid = kernel_device_get_physdev_uid; kernel_device_class->get_physdev_vid = kernel_device_get_physdev_vid; kernel_device_class->get_physdev_pid = kernel_device_get_physdev_pid; + kernel_device_class->get_physdev_manufacturer = kernel_device_get_physdev_manufacturer; kernel_device_class->get_parent_sysfs_path = kernel_device_get_parent_sysfs_path; kernel_device_class->is_candidate = kernel_device_is_candidate; kernel_device_class->cmp = kernel_device_cmp; diff --git a/src/kerneldevice/mm-kernel-device.c b/src/kerneldevice/mm-kernel-device.c index e69e9d1d..26b414e2 100644 --- a/src/kerneldevice/mm-kernel-device.c +++ b/src/kerneldevice/mm-kernel-device.c @@ -89,6 +89,16 @@ mm_kernel_device_get_physdev_pid (MMKernelDevice *self) 0); } +const gchar * +mm_kernel_device_get_physdev_manufacturer (MMKernelDevice *self) +{ + g_return_val_if_fail (MM_IS_KERNEL_DEVICE (self), NULL); + + return (MM_KERNEL_DEVICE_GET_CLASS (self)->get_physdev_manufacturer ? + MM_KERNEL_DEVICE_GET_CLASS (self)->get_physdev_manufacturer (self) : + NULL); +} + gboolean mm_kernel_device_is_candidate (MMKernelDevice *self, gboolean manual_scan) diff --git a/src/kerneldevice/mm-kernel-device.h b/src/kerneldevice/mm-kernel-device.h index efb64ae7..cfec269d 100644 --- a/src/kerneldevice/mm-kernel-device.h +++ b/src/kerneldevice/mm-kernel-device.h @@ -55,6 +55,8 @@ struct _MMKernelDeviceClass { guint16 (* get_physdev_pid) (MMKernelDevice *self); + const gchar * (* get_physdev_manufacturer) (MMKernelDevice *self); + gboolean (* cmp) (MMKernelDevice *a, MMKernelDevice *b); gboolean (* has_property) (MMKernelDevice *self, const gchar *property); @@ -82,9 +84,10 @@ gboolean mm_kernel_device_is_candidate (MMKernelDevice *self, const gchar *mm_kernel_device_get_parent_sysfs_path (MMKernelDevice *self); -const gchar *mm_kernel_device_get_physdev_uid (MMKernelDevice *self); -guint16 mm_kernel_device_get_physdev_vid (MMKernelDevice *self); -guint16 mm_kernel_device_get_physdev_pid (MMKernelDevice *self); +const gchar *mm_kernel_device_get_physdev_uid (MMKernelDevice *self); +guint16 mm_kernel_device_get_physdev_vid (MMKernelDevice *self); +guint16 mm_kernel_device_get_physdev_pid (MMKernelDevice *self); +const gchar *mm_kernel_device_get_physdev_manufacturer (MMKernelDevice *self); gboolean mm_kernel_device_cmp (MMKernelDevice *a, MMKernelDevice *b); |