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.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.c')
-rw-r--r-- | src/kerneldevice/mm-kernel-device.c | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/src/kerneldevice/mm-kernel-device.c b/src/kerneldevice/mm-kernel-device.c index a0717cc2..464a3800 100644 --- a/src/kerneldevice/mm-kernel-device.c +++ b/src/kerneldevice/mm-kernel-device.c @@ -277,6 +277,60 @@ mm_kernel_device_get_global_property_as_int_hex (MMKernelDevice *self, return ((value && mm_get_uint_from_hex_str (value, &aux)) ? aux : 0); } +gboolean +mm_kernel_device_has_attribute (MMKernelDevice *self, + const gchar *attribute) +{ + g_return_val_if_fail (MM_IS_KERNEL_DEVICE (self), FALSE); + + return (MM_KERNEL_DEVICE_GET_CLASS (self)->has_attribute ? + MM_KERNEL_DEVICE_GET_CLASS (self)->has_attribute (self, attribute) : + FALSE); +} + +const gchar * +mm_kernel_device_get_attribute (MMKernelDevice *self, + const gchar *attribute) +{ + g_return_val_if_fail (MM_IS_KERNEL_DEVICE (self), NULL); + + return (MM_KERNEL_DEVICE_GET_CLASS (self)->get_attribute ? + MM_KERNEL_DEVICE_GET_CLASS (self)->get_attribute (self, attribute) : + NULL); +} + +gboolean +mm_kernel_device_get_attribute_as_boolean (MMKernelDevice *self, + const gchar *attribute) +{ + const gchar *value; + + value = mm_kernel_device_get_attribute (self, attribute); + return (value && mm_common_get_boolean_from_string (value, NULL)); +} + +gint +mm_kernel_device_get_attribute_as_int (MMKernelDevice *self, + const gchar *attribute) +{ + const gchar *value; + gint aux; + + value = mm_kernel_device_get_attribute (self, attribute); + return ((value && mm_get_int_from_str (value, &aux)) ? aux : 0); +} + +guint +mm_kernel_device_get_attribute_as_int_hex (MMKernelDevice *self, + const gchar *attribute) +{ + const gchar *value; + guint aux; + + value = mm_kernel_device_get_attribute (self, attribute); + return ((value && mm_get_uint_from_hex_str (value, &aux)) ? aux : 0); +} + /*****************************************************************************/ static gchar * |