diff options
author | Aleksander Morgado <aleksander@aleksander.es> | 2018-07-18 12:53:44 +0200 |
---|---|---|
committer | Dan Williams <dcbw@redhat.com> | 2018-07-19 19:25:44 +0000 |
commit | 0a2060cc78150039bfd07d875016a52672dfe7bd (patch) | |
tree | 309b088fd95ce0c0f48f63163c7d7ffd26f555e2 | |
parent | df8ead4808095fe1d0bd079234ddfd56e591fc4b (diff) | |
download | ModemManager-0a2060cc78150039bfd07d875016a52672dfe7bd.tar.gz |
kerneldevice: allow loading physdev product string
-rw-r--r-- | src/kerneldevice/mm-kernel-device-generic.c | 9 | ||||
-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 | 2 |
4 files changed, 37 insertions, 0 deletions
diff --git a/src/kerneldevice/mm-kernel-device-generic.c b/src/kerneldevice/mm-kernel-device-generic.c index 885bef171..34987e9d4 100644 --- a/src/kerneldevice/mm-kernel-device-generic.c +++ b/src/kerneldevice/mm-kernel-device-generic.c @@ -545,6 +545,14 @@ kernel_device_get_physdev_manufacturer (MMKernelDevice *self) return MM_KERNEL_DEVICE_GENERIC (self)->priv->physdev_manufacturer; } +static const gchar * +kernel_device_get_physdev_product (MMKernelDevice *self) +{ + g_return_val_if_fail (MM_IS_KERNEL_DEVICE_GENERIC (self), 0); + + return MM_KERNEL_DEVICE_GENERIC (self)->priv->physdev_product; +} + static gboolean kernel_device_cmp (MMKernelDevice *a, MMKernelDevice *b) @@ -1081,6 +1089,7 @@ mm_kernel_device_generic_class_init (MMKernelDeviceGenericClass *klass) kernel_device_class->get_physdev_sysfs_path = kernel_device_get_physdev_sysfs_path; 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_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 2c2bc790d..730de98ef 100644 --- a/src/kerneldevice/mm-kernel-device-udev.c +++ b/src/kerneldevice/mm-kernel-device-udev.c @@ -439,6 +439,21 @@ kernel_device_get_physdev_manufacturer (MMKernelDevice *_self) return g_udev_device_get_sysfs_attr (self->priv->physdev, "manufacturer"); } +static const gchar * +kernel_device_get_physdev_product (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, "product"); +} + static gint kernel_device_get_interface_class (MMKernelDevice *_self) { @@ -882,6 +897,7 @@ mm_kernel_device_udev_class_init (MMKernelDeviceUdevClass *klass) kernel_device_class->get_physdev_sysfs_path = kernel_device_get_physdev_sysfs_path; 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_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 c4a6d8db7..c9c9139a3 100644 --- a/src/kerneldevice/mm-kernel-device.c +++ b/src/kerneldevice/mm-kernel-device.c @@ -123,6 +123,16 @@ mm_kernel_device_get_physdev_manufacturer (MMKernelDevice *self) NULL); } +const gchar * +mm_kernel_device_get_physdev_product (MMKernelDevice *self) +{ + g_return_val_if_fail (MM_IS_KERNEL_DEVICE (self), NULL); + + return (MM_KERNEL_DEVICE_GET_CLASS (self)->get_physdev_product ? + MM_KERNEL_DEVICE_GET_CLASS (self)->get_physdev_product (self) : + NULL); +} + gint mm_kernel_device_get_interface_class (MMKernelDevice *self) { diff --git a/src/kerneldevice/mm-kernel-device.h b/src/kerneldevice/mm-kernel-device.h index b50e213c4..2493b87ae 100644 --- a/src/kerneldevice/mm-kernel-device.h +++ b/src/kerneldevice/mm-kernel-device.h @@ -52,6 +52,7 @@ struct _MMKernelDeviceClass { const gchar * (* get_physdev_sysfs_path) (MMKernelDevice *self); const gchar * (* get_physdev_subsystem) (MMKernelDevice *self); const gchar * (* get_physdev_manufacturer) (MMKernelDevice *self); + const gchar * (* get_physdev_product) (MMKernelDevice *self); gboolean (* cmp) (MMKernelDevice *a, MMKernelDevice *b); @@ -86,6 +87,7 @@ guint16 mm_kernel_device_get_physdev_pid (MMKernelDevice *self); const gchar *mm_kernel_device_get_physdev_sysfs_path (MMKernelDevice *self); const gchar *mm_kernel_device_get_physdev_subsystem (MMKernelDevice *self); const gchar *mm_kernel_device_get_physdev_manufacturer (MMKernelDevice *self); +const gchar *mm_kernel_device_get_physdev_product (MMKernelDevice *self); gboolean mm_kernel_device_cmp (MMKernelDevice *a, MMKernelDevice *b); |