diff options
author | Aleksander Morgado <aleksander@aleksander.es> | 2020-10-30 10:05:24 +0100 |
---|---|---|
committer | Aleksander Morgado <aleksander@aleksander.es> | 2020-11-20 09:24:51 +0000 |
commit | 3d12272d183061c11cd80bfe96ae89898f4c081c (patch) | |
tree | e4007dfbe3b9334210d68135cb81d35b98adb189 /src/kerneldevice/mm-kernel-device-udev.c | |
parent | 399a042dad2e2c5cca9e0cfe0af6d41ae1fb0c35 (diff) |
kerneldevice: allow loading port attributes
In addition to loading port and device properties, we now also allow
loading sysfs properties that are assumed to be static (i.e. their
values won't change since loaded the first time).
Diffstat (limited to 'src/kerneldevice/mm-kernel-device-udev.c')
-rw-r--r-- | src/kerneldevice/mm-kernel-device-udev.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/kerneldevice/mm-kernel-device-udev.c b/src/kerneldevice/mm-kernel-device-udev.c index 44fdd074..f75104bd 100644 --- a/src/kerneldevice/mm-kernel-device-udev.c +++ b/src/kerneldevice/mm-kernel-device-udev.c @@ -527,6 +527,34 @@ kernel_device_get_global_property (MMKernelDevice *_self, /*****************************************************************************/ +static gboolean +kernel_device_has_attribute (MMKernelDevice *_self, + const gchar *attribute) +{ + MMKernelDeviceUdev *self; + + self = MM_KERNEL_DEVICE_UDEV (_self); + if (!self->priv->device) + return FALSE; + + return g_udev_device_has_sysfs_attr (self->priv->device, attribute); +} + +static const gchar * +kernel_device_get_attribute (MMKernelDevice *_self, + const gchar *attribute) +{ + MMKernelDeviceUdev *self; + + self = MM_KERNEL_DEVICE_UDEV (_self); + if (!self->priv->device) + return NULL; + + return g_udev_device_get_sysfs_attr (self->priv->device, attribute); +} + +/*****************************************************************************/ + MMKernelDevice * mm_kernel_device_udev_new (GUdevDevice *udev_device) { @@ -725,6 +753,8 @@ mm_kernel_device_udev_class_init (MMKernelDeviceUdevClass *klass) kernel_device_class->get_property = kernel_device_get_property; kernel_device_class->has_global_property = kernel_device_has_global_property; kernel_device_class->get_global_property = kernel_device_get_global_property; + kernel_device_class->has_attribute = kernel_device_has_attribute; + kernel_device_class->get_attribute = kernel_device_get_attribute; properties[PROP_UDEV_DEVICE] = g_param_spec_object ("udev-device", |