GUdevDevice

GUdevDevice — Get information about a device

Synopsis

                    GUdevDevice;
struct              GUdevDeviceClass;
const gchar *       g_udev_device_get_subsystem         (GUdevDevice *device);
const gchar *       g_udev_device_get_devtype           (GUdevDevice *device);
const gchar *       g_udev_device_get_name              (GUdevDevice *device);
const gchar *       g_udev_device_get_number            (GUdevDevice *device);
const gchar *       g_udev_device_get_sysfs_path        (GUdevDevice *device);
const gchar *       g_udev_device_get_driver            (GUdevDevice *device);
const gchar *       g_udev_device_get_action            (GUdevDevice *device);
guint64             g_udev_device_get_seqnum            (GUdevDevice *device);
GUdevDeviceType     g_udev_device_get_device_type       (GUdevDevice *device);
GUdevDeviceNumber   g_udev_device_get_device_number     (GUdevDevice *device);
const gchar *       g_udev_device_get_device_file       (GUdevDevice *device);
const gchar * const * g_udev_device_get_device_file_symlinks
                                                        (GUdevDevice *device);
GUdevDevice *       g_udev_device_get_parent            (GUdevDevice *device);
GUdevDevice *       g_udev_device_get_parent_with_subsystem
                                                        (GUdevDevice *device,
                                                         const gchar *subsystem,
                                                         const gchar *devtype);
const gchar * const * g_udev_device_get_tags            (GUdevDevice *device);
gboolean            g_udev_device_get_is_initialized    (GUdevDevice *device);
guint64             g_udev_device_get_usec_since_initialized
                                                        (GUdevDevice *device);
const gchar * const * g_udev_device_get_property_keys   (GUdevDevice *device);
gboolean            g_udev_device_has_property          (GUdevDevice *device,
                                                         const gchar *key);
const gchar *       g_udev_device_get_property          (GUdevDevice *device,
                                                         const gchar *key);
gint                g_udev_device_get_property_as_int   (GUdevDevice *device,
                                                         const gchar *key);
guint64             g_udev_device_get_property_as_uint64
                                                        (GUdevDevice *device,
                                                         const gchar *key);
gdouble             g_udev_device_get_property_as_double
                                                        (GUdevDevice *device,
                                                         const gchar *key);
gboolean            g_udev_device_get_property_as_boolean
                                                        (GUdevDevice *device,
                                                         const gchar *key);
const gchar * const * g_udev_device_get_property_as_strv
                                                        (GUdevDevice *device,
                                                         const gchar *key);
const gchar * const * g_udev_device_get_sysfs_attr_keys (GUdevDevice *device);
gboolean            g_udev_device_has_sysfs_attr        (GUdevDevice *device,
                                                         const gchar *key);
const gchar *       g_udev_device_get_sysfs_attr        (GUdevDevice *device,
                                                         const gchar *name);
gint                g_udev_device_get_sysfs_attr_as_int (GUdevDevice *device,
                                                         const gchar *name);
guint64             g_udev_device_get_sysfs_attr_as_uint64
                                                        (GUdevDevice *device,
                                                         const gchar *name);
gdouble             g_udev_device_get_sysfs_attr_as_double
                                                        (GUdevDevice *device,
                                                         const gchar *name);
gboolean            g_udev_device_get_sysfs_attr_as_boolean
                                                        (GUdevDevice *device,
                                                         const gchar *name);
const gchar * const * g_udev_device_get_sysfs_attr_as_strv
                                                        (GUdevDevice *device,
                                                         const gchar *name);

Object Hierarchy

  GObject
   +----GUdevDevice

Description

The GUdevDevice class is used to get information about a specific device. Note that you cannot instantiate a GUdevDevice object yourself. Instead you must use GUdevClient to obtain GUdevDevice objects.

To get basic information about a device, use g_udev_device_get_subsystem(), g_udev_device_get_devtype(), g_udev_device_get_name(), g_udev_device_get_number(), g_udev_device_get_sysfs_path(), g_udev_device_get_driver(), g_udev_device_get_action(), g_udev_device_get_seqnum(), g_udev_device_get_device_type(), g_udev_device_get_device_number(), g_udev_device_get_device_file(), g_udev_device_get_device_file_symlinks().

To navigate the device tree, use g_udev_device_get_parent() and g_udev_device_get_parent_with_subsystem().

To access udev properties for the device, use g_udev_device_get_property_keys(), g_udev_device_has_property(), g_udev_device_get_property(), g_udev_device_get_property_as_int(), g_udev_device_get_property_as_uint64(), g_udev_device_get_property_as_double(), g_udev_device_get_property_as_boolean() and g_udev_device_get_property_as_strv().

To access sysfs attributes for the device, use g_udev_device_get_sysfs_attr_keys(), g_udev_device_has_sysfs_attr(), g_udev_device_get_sysfs_attr(), g_udev_device_get_sysfs_attr_as_int(), g_udev_device_get_sysfs_attr_as_uint64(), g_udev_device_get_sysfs_attr_as_double(), g_udev_device_get_sysfs_attr_as_boolean() and g_udev_device_get_sysfs_attr_as_strv().

Note that all getters on GUdevDevice are non-reffing – returned values are owned by the object, should not be freed and are only valid as long as the object is alive.

By design, GUdevDevice will not react to changes for a device – it only contains a snapshot of information when the GUdevDevice object was created. To work with changes, you typically connect to the "uevent" signal on a GUdevClient and get a new GUdevDevice whenever an event happens.

Details

GUdevDevice

typedef struct _GUdevDevice GUdevDevice;

The GUdevDevice struct is opaque and should not be accessed directly.


struct GUdevDeviceClass

struct GUdevDeviceClass {
  GObjectClass parent_class;
};

Class structure for GUdevDevice.

GObjectClass parent_class;

Parent class.

g_udev_device_get_subsystem ()

const gchar *       g_udev_device_get_subsystem         (GUdevDevice *device);

Gets the subsystem for device.

device :

A GUdevDevice.

Returns :

The subsystem for device.

g_udev_device_get_devtype ()

const gchar *       g_udev_device_get_devtype           (GUdevDevice *device);

Gets the device type for device.

device :

A GUdevDevice.

Returns :

The devtype for device.

g_udev_device_get_name ()

const gchar *       g_udev_device_get_name              (GUdevDevice *device);

Gets the name of device, e.g. "sda3".

device :

A GUdevDevice.

Returns :

The name of device.

g_udev_device_get_number ()

const gchar *       g_udev_device_get_number            (GUdevDevice *device);

Gets the number of device, e.g. "3" if g_udev_device_get_name() returns "sda3".

device :

A GUdevDevice.

Returns :

The number of device.

g_udev_device_get_sysfs_path ()

const gchar *       g_udev_device_get_sysfs_path        (GUdevDevice *device);

Gets the sysfs path for device.

device :

A GUdevDevice.

Returns :

The sysfs path for device.

g_udev_device_get_driver ()

const gchar *       g_udev_device_get_driver            (GUdevDevice *device);

Gets the name of the driver used for device.

device :

A GUdevDevice.

Returns :

The name of the driver for device or NULL if unknown. [nullable]

g_udev_device_get_action ()

const gchar *       g_udev_device_get_action            (GUdevDevice *device);

Gets the most recent action (e.g. "add", "remove", "change", etc.) for device.

device :

A GUdevDevice.

Returns :

An action string.

g_udev_device_get_seqnum ()

guint64             g_udev_device_get_seqnum            (GUdevDevice *device);

Gets the most recent sequence number for device.

device :

A GUdevDevice.

Returns :

A sequence number.

g_udev_device_get_device_type ()

GUdevDeviceType     g_udev_device_get_device_type       (GUdevDevice *device);

Gets the type of the device file, if any, for device.

device :

A GUdevDevice.

Returns :

The device number for device or G_UDEV_DEVICE_TYPE_NONE if the device does not have a device file.

g_udev_device_get_device_number ()

GUdevDeviceNumber   g_udev_device_get_device_number     (GUdevDevice *device);

Gets the device number, if any, for device.

device :

A GUdevDevice.

Returns :

The device number for device or 0 if unknown.

g_udev_device_get_device_file ()

const gchar *       g_udev_device_get_device_file       (GUdevDevice *device);

Gets the device file for device.

device :

A GUdevDevice.

Returns :

The device file for device or NULL if no device file exists. [nullable]

g_udev_device_get_device_file_symlinks ()

const gchar * const * g_udev_device_get_device_file_symlinks
                                                        (GUdevDevice *device);

Gets a list of symlinks (in /dev) that points to the device file for device.

device :

A GUdevDevice.

Returns :

A NULL terminated string array of symlinks. This array is owned by device and should not be freed by the caller. [transfer none][array zero-terminated=1][element-type utf8]

g_udev_device_get_parent ()

GUdevDevice *       g_udev_device_get_parent            (GUdevDevice *device);

Gets the immediate parent of device, if any.

device :

A GUdevDevice.

Returns :

A GUdevDevice or NULL if device has no parent. Free with g_object_unref(). [nullable][transfer full]

g_udev_device_get_parent_with_subsystem ()

GUdevDevice *       g_udev_device_get_parent_with_subsystem
                                                        (GUdevDevice *device,
                                                         const gchar *subsystem,
                                                         const gchar *devtype);

Walks up the chain of parents of device and returns the first device encountered where subsystem and devtype matches, if any.

device :

A GUdevDevice.

subsystem :

The subsystem of the parent to get.

devtype :

The devtype of the parent to get or NULL. [allow-none]

Returns :

A GUdevDevice or NULL if device has no parent with subsystem and devtype. Free with g_object_unref(). [nullable][transfer full]

g_udev_device_get_tags ()

const gchar * const * g_udev_device_get_tags            (GUdevDevice *device);

Gets all tags for device.

device :

A GUdevDevice.

Returns :

A NULL terminated string array of tags. This array is owned by device and should not be freed by the caller. [transfer none][array zero-terminated=1][element-type utf8]

Since 165


g_udev_device_get_is_initialized ()

gboolean            g_udev_device_get_is_initialized    (GUdevDevice *device);

Gets whether device has been initalized.

device :

A GUdevDevice.

Returns :

Whether device has been initialized.

Since 165


g_udev_device_get_usec_since_initialized ()

guint64             g_udev_device_get_usec_since_initialized
                                                        (GUdevDevice *device);

Gets number of micro-seconds since device was initialized.

This only works for devices with properties in the udev database. All other devices return 0.

device :

A GUdevDevice.

Returns :

Number of micro-seconds since device was initialized or 0 if unknown.

Since 165


g_udev_device_get_property_keys ()

const gchar * const * g_udev_device_get_property_keys   (GUdevDevice *device);

Gets all keys for properties on device.

device :

A GUdevDevice.

Returns :

A NULL terminated string array of property keys. This array is owned by device and should not be freed by the caller. [transfer none][array zero-terminated=1][element-type utf8]

g_udev_device_has_property ()

gboolean            g_udev_device_has_property          (GUdevDevice *device,
                                                         const gchar *key);

Check if a the property with the given key exists.

device :

A GUdevDevice.

key :

Name of property.

Returns :

TRUE only if the value for key exist.

g_udev_device_get_property ()

const gchar *       g_udev_device_get_property          (GUdevDevice *device,
                                                         const gchar *key);

Look up the value for key on device.

device :

A GUdevDevice.

key :

Name of property.

Returns :

The value for key or NULL if key doesn't exist on device. Do not free this string, it is owned by device. [nullable]

g_udev_device_get_property_as_int ()

gint                g_udev_device_get_property_as_int   (GUdevDevice *device,
                                                         const gchar *key);

Look up the value for key on device and convert it to an integer using strtol().

device :

A GUdevDevice.

key :

Name of property.

Returns :

The value for key or 0 if key doesn't exist or isn't an integer.

g_udev_device_get_property_as_uint64 ()

guint64             g_udev_device_get_property_as_uint64
                                                        (GUdevDevice *device,
                                                         const gchar *key);

Look up the value for key on device and convert it to an unsigned 64-bit integer using g_ascii_strtoull().

device :

A GUdevDevice.

key :

Name of property.

Returns :

The value for key or 0 if key doesn't exist or isn't a guint64.

g_udev_device_get_property_as_double ()

gdouble             g_udev_device_get_property_as_double
                                                        (GUdevDevice *device,
                                                         const gchar *key);

Look up the value for key on device and convert it to a double precision floating point number using strtod().

device :

A GUdevDevice.

key :

Name of property.

Returns :

The value for key or 0.0 if key doesn't exist or isn't a gdouble.

g_udev_device_get_property_as_boolean ()

gboolean            g_udev_device_get_property_as_boolean
                                                        (GUdevDevice *device,
                                                         const gchar *key);

Look up the value for key on device and convert it to an boolean. This is done by doing a case-insensitive string comparison on the string value against "1" and "true".

device :

A GUdevDevice.

key :

Name of property.

Returns :

The value for key or FALSE if key doesn't exist or isn't a gboolean.

g_udev_device_get_property_as_strv ()

const gchar * const * g_udev_device_get_property_as_strv
                                                        (GUdevDevice *device,
                                                         const gchar *key);

Look up the value for key on device and return the result of splitting it into non-empty tokens split at white space (only space (' '), form-feed ('\f'), newline ('\n'), carriage return ('\r'), horizontal tab ('\t'), and vertical tab ('\v') are considered; the locale is not taken into account).

device :

A GUdevDevice.

key :

Name of property.

Returns :

The value of key on device split into tokens or NULL if key doesn't exist. This array is owned by device and should not be freed by the caller. [nullable][transfer none][array zero-terminated=1][element-type utf8]

g_udev_device_get_sysfs_attr_keys ()

const gchar * const * g_udev_device_get_sysfs_attr_keys (GUdevDevice *device);

g_udev_device_has_sysfs_attr ()

gboolean            g_udev_device_has_sysfs_attr        (GUdevDevice *device,
                                                         const gchar *key);

g_udev_device_get_sysfs_attr ()

const gchar *       g_udev_device_get_sysfs_attr        (GUdevDevice *device,
                                                         const gchar *name);

Look up the sysfs attribute with name on device.

device :

A GUdevDevice.

name :

Name of the sysfs attribute.

Returns :

The value of the sysfs attribute or NULL if there is no such attribute. Do not free this string, it is owned by device. [nullable]

g_udev_device_get_sysfs_attr_as_int ()

gint                g_udev_device_get_sysfs_attr_as_int (GUdevDevice *device,
                                                         const gchar *name);

Look up the sysfs attribute with name on device and convert it to an integer using strtol().

device :

A GUdevDevice.

name :

Name of the sysfs attribute.

Returns :

The value of the sysfs attribute or 0 if there is no such attribute.

g_udev_device_get_sysfs_attr_as_uint64 ()

guint64             g_udev_device_get_sysfs_attr_as_uint64
                                                        (GUdevDevice *device,
                                                         const gchar *name);

Look up the sysfs attribute with name on device and convert it to an unsigned 64-bit integer using g_ascii_strtoull().

device :

A GUdevDevice.

name :

Name of the sysfs attribute.

Returns :

The value of the sysfs attribute or 0 if there is no such attribute.

g_udev_device_get_sysfs_attr_as_double ()

gdouble             g_udev_device_get_sysfs_attr_as_double
                                                        (GUdevDevice *device,
                                                         const gchar *name);

Look up the sysfs attribute with name on device and convert it to a double precision floating point number using strtod().

device :

A GUdevDevice.

name :

Name of the sysfs attribute.

Returns :

The value of the sysfs attribute or 0.0 if there is no such attribute.

g_udev_device_get_sysfs_attr_as_boolean ()

gboolean            g_udev_device_get_sysfs_attr_as_boolean
                                                        (GUdevDevice *device,
                                                         const gchar *name);

Look up the sysfs attribute with name on device and convert it to an boolean. This is done by doing a case-insensitive string comparison on the string value against "1" and "true".

device :

A GUdevDevice.

name :

Name of the sysfs attribute.

Returns :

The value of the sysfs attribute or FALSE if there is no such attribute.

g_udev_device_get_sysfs_attr_as_strv ()

const gchar * const * g_udev_device_get_sysfs_attr_as_strv
                                                        (GUdevDevice *device,
                                                         const gchar *name);

Look up the sysfs attribute with name on device and return the result of splitting it into non-empty tokens split at white space (only space (' '), form-feed ('\f'), newline ('\n'), carriage return ('\r'), horizontal tab ('\t'), and vertical tab ('\v') are considered; the locale is not taken into account).

device :

A GUdevDevice.

name :

Name of the sysfs attribute.

Returns :

The value of the sysfs attribute split into tokens or NULL if there is no such attribute. This array is owned by device and should not be freed by the caller. [nullable][transfer none][array zero-terminated=1][element-type utf8]