From 3d12272d183061c11cd80bfe96ae89898f4c081c Mon Sep 17 00:00:00 2001 From: Aleksander Morgado Date: Fri, 30 Oct 2020 10:05:24 +0100 Subject: 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). --- src/kerneldevice/mm-kernel-device-udev.c | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'src/kerneldevice/mm-kernel-device-udev.c') 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", -- cgit v1.2.3-70-g09d2