aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/kerneldevice/mm-kernel-device-generic.c39
-rw-r--r--src/kerneldevice/mm-kernel-device-udev.c16
-rw-r--r--src/kerneldevice/mm-kernel-device.c10
-rw-r--r--src/kerneldevice/mm-kernel-device.h9
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);