FuUdevDevice

FuUdevDevice — a udev device

Functions

Types and Values

Description

An object that represents a udev device.

See also: FuDevice

Functions

fu_udev_device_new ()

FuUdevDevice *
fu_udev_device_new (GUdevDevice *udev_device);

Creates a new FuUdevDevice.

Parameters

udev_device

A GUdevDevice

 

Returns

a FuUdevDevice.

[transfer full]

Since: 1.1.2


fu_udev_device_get_dev ()

GUdevDevice *
fu_udev_device_get_dev (FuUdevDevice *self);

Gets the GUdevDevice.

Parameters

self

A FuUdevDevice

 

Returns

a GUdevDevice, or NULL.

[transfer none]

Since: 1.1.2


fu_udev_device_get_device_file ()

const gchar *
fu_udev_device_get_device_file (FuUdevDevice *self);

Gets the device node.

Parameters

self

A FuUdevDevice

 

Returns

a device file, or NULL if unset

Since: 1.3.1


fu_udev_device_get_sysfs_path ()

const gchar *
fu_udev_device_get_sysfs_path (FuUdevDevice *self);

Gets the device sysfs path, e.g. "/sys/devices/pci0000:00/0000:00:14.0".

Parameters

self

A FuUdevDevice

 

Returns

a local path, or NULL if unset or invalid

Since: 1.1.2


fu_udev_device_get_subsystem ()

const gchar *
fu_udev_device_get_subsystem (FuUdevDevice *self);

Gets the device subsystem, e.g. "pci".

Parameters

self

A FuUdevDevice

 

Returns

a subsystem, or NULL if unset or invalid

Since: 1.1.2


fu_udev_device_get_driver ()

const gchar *
fu_udev_device_get_driver (FuUdevDevice *self);

Gets the device driver, e.g. "psmouse".

Parameters

self

A FuUdevDevice

 

Returns

a subsystem, or NULL if unset or invalid

Since: 1.5.3


fu_udev_device_get_vendor ()

guint32
fu_udev_device_get_vendor (FuUdevDevice *self);

Gets the device vendor code.

Parameters

self

A FuUdevDevice

 

Returns

a vendor code, or 0 if unset or invalid

Since: 1.1.2


fu_udev_device_get_model ()

guint32
fu_udev_device_get_model (FuUdevDevice *self);

Gets the device device code.

Parameters

self

A FuUdevDevice

 

Returns

a vendor code, or 0 if unset or invalid

Since: 1.1.2


fu_udev_device_get_subsystem_vendor ()

guint32
fu_udev_device_get_subsystem_vendor (FuUdevDevice *self);

Gets the device subsystem vendor code.

Parameters

self

A FuUdevDevice

 

Returns

a vendor code, or 0 if unset or invalid

Since: 1.5.0


fu_udev_device_get_subsystem_model ()

guint32
fu_udev_device_get_subsystem_model (FuUdevDevice *self);

Gets the device subsystem model code.

Parameters

self

A FuUdevDevice

 

Returns

a vendor code, or 0 if unset or invalid

Since: 1.5.0


fu_udev_device_get_revision ()

guint8
fu_udev_device_get_revision (FuUdevDevice *self);

Gets the device revision.

Parameters

self

A FuUdevDevice

 

Returns

a vendor code, or 0 if unset or invalid

Since: 1.1.2


fu_udev_device_get_number ()

guint64
fu_udev_device_get_number (FuUdevDevice *self);

Gets the device number, if any.

Parameters

self

A FuUdevDevice

 

Returns

integer, 0 if the data is unavailable, or G_MAXUINT64 if the feature is not available

Since: 1.5.0


fu_udev_device_get_slot_depth ()

guint
fu_udev_device_get_slot_depth (FuUdevDevice *self,
                               const gchar *subsystem);

Determine how far up a chain a given device is

Parameters

self

A FuUdevDevice

 

subsystem

a subsystem

 

Returns

unsigned integer

Since: 1.2.4


fu_udev_device_set_physical_id ()

gboolean
fu_udev_device_set_physical_id (FuUdevDevice *self,
                                const gchar *subsystems,
                                GError **error);

Sets the physical ID from the device subsystem. Plugins should choose the subsystem that is "deepest" in the udev tree, for instance choosing 'usb' over 'pci' for a mouse device.

Parameters

self

A FuUdevDevice

 

subsystems

A subsystem string, e.g. pci,usb

 

error

A GError, or NULL

 

Returns

TRUE if the physical device was set.

Since: 1.1.2


fu_udev_device_set_logical_id ()

gboolean
fu_udev_device_set_logical_id (FuUdevDevice *self,
                               const gchar *subsystem,
                               GError **error);

Sets the logical ID from the device subsystem. Plugins should choose the subsystem that most relevant in the udev tree, for instance choosing 'hid' over 'usb' for a mouse device.

Parameters

self

A FuUdevDevice

 

subsystem

A subsystem string, e.g. pci,usb

 

error

A GError, or NULL

 

Returns

TRUE if the logical device was set.

Since: 1.5.8


fu_udev_device_set_readonly ()

void
fu_udev_device_set_readonly (FuUdevDevice *self,
                             gboolean readonly);

fu_udev_device_set_readonly is deprecated and should not be used in newly-written code.

Sets the open mode to O_RDONLY use when opening the device with fu_device_open(). By default devices are opened with O_RDWR.

Parameters

self

A FuUdevDevice

 

readonly

TRUE if the device file should be opened readonly

 

Since: 1.3.3


fu_udev_device_set_flags ()

void
fu_udev_device_set_flags (FuUdevDevice *self,
                          FuUdevDeviceFlags flags);

Sets the parameters to use when opening the device.

For example FU_UDEV_DEVICE_FLAG_OPEN_READ means that fu_device_open() would use O_RDONLY rather than O_RDWR which is the default.

Parameters

Since: 1.3.6


fu_udev_device_get_fd ()

gint
fu_udev_device_get_fd (FuUdevDevice *self);

Gets the file descriptor if the device is open.

Parameters

self

A FuUdevDevice

 

Returns

positive integer, or -1 if the device is not open

Since: 1.3.3


fu_udev_device_set_fd ()

void
fu_udev_device_set_fd (FuUdevDevice *self,
                       gint fd);

Replace the file descriptor to use when the device has already been opened. This object will automatically close() fd when fu_device_close() is called.

Parameters

self

A FuUdevDevice

 

fd

A valid file descriptor

 

Since: 1.3.3


fu_udev_device_ioctl ()

gboolean
fu_udev_device_ioctl (FuUdevDevice *self,
                      gulong request,
                      guint8 *buf,
                      gint *rc,
                      GError **error);

Control a device using a low-level request.

Parameters

self

A FuUdevDevice

 

request

request number

 

buf

A buffer to use, which *must* be large enough for the request

 

rc

the raw return value from the ioctl.

[out][allow-none]

error

A GError, or NULL

 

Returns

TRUE for success

Since: 1.3.3


fu_udev_device_pwrite ()

gboolean
fu_udev_device_pwrite (FuUdevDevice *self,
                       goffset port,
                       guint8 data,
                       GError **error);

Write to a file descriptor at a given offset.

Parameters

self

A FuUdevDevice

 

port

offset address

 

data

value

 

error

A GError, or NULL

 

Returns

TRUE for success

Since: 1.3.3


fu_udev_device_pwrite_full ()

gboolean
fu_udev_device_pwrite_full (FuUdevDevice *self,
                            goffset port,
                            const guint8 *buf,
                            gsize bufsz,
                            GError **error);

Write a buffer to a file descriptor at a given offset.

Parameters

self

A FuUdevDevice

 

port

offset address

 

buf

data.

[out]

bufsz

size of data

 

error

A GError, or NULL

 

Returns

TRUE for success

Since: 1.4.5


fu_udev_device_pread ()

gboolean
fu_udev_device_pread (FuUdevDevice *self,
                      goffset port,
                      guint8 *data,
                      GError **error);

Read from a file descriptor at a given offset.

Parameters

self

A FuUdevDevice

 

port

offset address

 

data

value.

[out]

error

A GError, or NULL

 

Returns

TRUE for success

Since: 1.3.3


fu_udev_device_pread_full ()

gboolean
fu_udev_device_pread_full (FuUdevDevice *self,
                           goffset port,
                           guint8 *buf,
                           gsize bufsz,
                           GError **error);

Read a buffer from a file descriptor at a given offset.

Parameters

self

A FuUdevDevice

 

port

offset address

 

buf

data.

[in]

bufsz

size of buf

 

error

A GError, or NULL

 

Returns

TRUE for success

Since: 1.4.5


fu_udev_device_get_sysfs_attr ()

const gchar *
fu_udev_device_get_sysfs_attr (FuUdevDevice *self,
                               const gchar *attr,
                               GError **error);

Reads an arbitrary sysfs attribute 'attr' associated with UDEV device

Parameters

self

A FuUdevDevice

 

attr

name of attribute to get

 

error

A GError, or NULL

 

Returns

string or NULL

Since: 1.4.5


fu_udev_device_get_parent_name ()

gchar *
fu_udev_device_get_parent_name (FuUdevDevice *self);

Returns the name of the direct ancestor of this device

Parameters

self

A FuUdevDevice

 

Returns

string or NULL if unset or invalid

Since: 1.4.5


fu_udev_device_write_sysfs ()

gboolean
fu_udev_device_write_sysfs (FuUdevDevice *self,
                            const gchar *attribute,
                            const gchar *val,
                            GError **error);

Writes data into a sysfs attribute

Parameters

self

A FuUdevDevice

 

attribute

sysfs attribute name

 

val

data to write into the attribute

 

error

A GError, or NULL

 

Returns

TRUE for success

Since: 1.4.5


fu_udev_device_get_devtype ()

const gchar *
fu_udev_device_get_devtype (FuUdevDevice *self);

Returns the Udev device type

Parameters

self

A FuUdevDevice

 

Returns

device type specified in the uevent

Since: 1.4.5

Types and Values

G_UDEV_TYPE_DEVICE

#define G_UDEV_TYPE_DEVICE G_TYPE_OBJECT

GUdevDevice

#define GUdevDevice		GObject

FU_TYPE_UDEV_DEVICE

#define FU_TYPE_UDEV_DEVICE (fu_udev_device_get_type ())

struct FuUdevDeviceClass

struct FuUdevDeviceClass {
	FuDeviceClass parent_class;
	gboolean	 (*probe)			(FuUdevDevice *device,
							 GError		**error);
	gboolean	 (*open)			(FuUdevDevice *device,
							 GError		**error);
	gboolean	 (*close)			(FuUdevDevice *device,
							 GError		**error);
	void		 (*to_string)			(FuUdevDevice *self,
							 guint		 indent,
							 GString *str);
	gpointer __reserved[28];
};

enum FuUdevDeviceFlags

Flags used when opening the device using fu_device_open().

Members

FU_UDEV_DEVICE_FLAG_NONE

No flags set

 

FU_UDEV_DEVICE_FLAG_OPEN_READ

Open the device read-only

 

FU_UDEV_DEVICE_FLAG_OPEN_WRITE

Open the device write-only

 

FU_UDEV_DEVICE_FLAG_VENDOR_FROM_PARENT

Get the vendor ID fallback from the parent

 

FU_UDEV_DEVICE_FLAG_USE_CONFIG

Read and write from the device config

 

FU_UDEV_DEVICE_FLAG_OPEN_NONBLOCK

Open nonblocking, e.g. O_NONBLOCK

 

FuUdevDevice

typedef struct _FuUdevDevice FuUdevDevice;