UDisksLinuxBlockObject

UDisksLinuxBlockObject — Object representing a block device on Linux.

Functions

Properties

UDisksDaemon * daemon Read / Write / Construct Only
UDisksLinuxDevice * device Read / Write / Construct Only

Types and Values

Object Hierarchy

    GObject
    ╰── GDBusObjectSkeleton
        ╰── UDisksObjectSkeleton
            ╰── UDisksLinuxBlockObject

Implemented Interfaces

UDisksLinuxBlockObject implements GDBusObject and UDisksObject.

Description

Object corresponding to a block device on Linux.

Functions

udisks_linux_block_object_new ()

UDisksLinuxBlockObject *
udisks_linux_block_object_new (UDisksDaemon *daemon,
                               UDisksLinuxDevice *device);

Create a new block object.

Parameters

daemon

A UDisksDaemon.

 

device

The UDisksLinuxDevice for the device.

 

Returns

A UDisksLinuxBlockObject object. Free with g_object_unref().


udisks_linux_block_object_uevent ()

void
udisks_linux_block_object_uevent (UDisksLinuxBlockObject *object,
                                  const gchar *action,
                                  UDisksLinuxDevice *device);

Updates all information on interfaces on object as a result of incoming uevent processing.

Parameters

object

A UDisksLinuxBlockObject.

 

action

Uevent action or NULL

 

device

A new UDisksLinuxDevice device object or NULL if the device hasn't changed.

 

udisks_linux_block_object_get_daemon ()

UDisksDaemon *
udisks_linux_block_object_get_daemon (UDisksLinuxBlockObject *object);

Gets the daemon used by object .

Parameters

object

A UDisksLinuxBlockObject.

 

Returns

A UDisksDaemon. Do not free, the object is owned by object .


udisks_linux_block_object_get_device ()

UDisksLinuxDevice *
udisks_linux_block_object_get_device (UDisksLinuxBlockObject *object);

Gets the current UDisksLinuxDevice for object . Connect to “notify” to track changes to the “device” property.

Parameters

object

A UDisksLinuxBlockObject.

 

Returns

A UDisksLinuxDevice. Free with g_object_unref().


udisks_linux_block_object_get_device_file ()

gchar *
udisks_linux_block_object_get_device_file
                               (UDisksLinuxBlockObject *object);

Gets the device path for this object (eg. /dev/sda1).

Parameters

object

A UDisksLinuxBlockObject.

 

Returns

A device path. Free with g_free().


udisks_linux_block_object_get_device_number ()

dev_t
udisks_linux_block_object_get_device_number
                               (UDisksLinuxBlockObject *object);

Gets the device number for this object.

Parameters

object

A UDisksLinuxBlockObject.

 

Returns

A dev_t device number or zero in case of an error.


udisks_linux_block_object_trigger_uevent ()

void
udisks_linux_block_object_trigger_uevent
                               (UDisksLinuxBlockObject *object);

Triggers a 'change' uevent in the kernel.

The triggered event will bubble up from the kernel through the udev stack and will eventually be received by the udisks daemon process itself. This method does not wait for the event to be received.

Parameters

object

A UDisksLinuxBlockObject.

 

udisks_linux_block_object_trigger_uevent_sync ()

gboolean
udisks_linux_block_object_trigger_uevent_sync
                               (UDisksLinuxBlockObject *object,
                                guint timeout_seconds);

Triggers a 'change' uevent in the kernel and waits until it's received and processed by udisks.

Unlike udisks_linux_block_object_trigger_uevent() that just triggers a synthetic uevent to the kernel, this call will actually block and wait until the UDisksLinuxProvider receives the uevent, performs probing and processes the uevent further down the UDisks object stack. Upon returning from this function call the caller may assume the event has been fully processed, all D-Bus objects are updated and settled. Typically used in busy wait for a particular D-Bus interface.

Note that this uses synthetic uevent tagging and only works on linux kernel 4.13 and higher. In case an older kernel is detected this acts like the classic udisks_linux_block_object_trigger_uevent() call and FALSE is returned.

Parameters

object

A UDisksLinuxBlockObject.

 

timeout_seconds

Maximum time to wait for the uevent (in seconds).

 

Returns

TRUE if the uevent has been successfully received, FALSE otherwise or when the kernel version is too old.


udisks_linux_block_object_reread_partition_table ()

void
udisks_linux_block_object_reread_partition_table
                               (UDisksLinuxBlockObject *object);

Requests the kernel to re-read the partition table for object .

The events from any change this may cause will bubble up from the kernel through the udev stack and will eventually be received by the udisks daemon process itself. This method does not wait for the event to be received.

Parameters

object

A UDisksLinuxBlockObject.

 

udisks_linux_block_object_contains_filesystem ()

gboolean
udisks_linux_block_object_contains_filesystem
                               (UDisksObject *object);

Check whether filesystem has been detected on the block device.

Parameters

object

A UDisksLinuxBlockObject.

 

Returns

TRUE if the block device contains filesystem, FALSE otherwise.


udisks_linux_block_object_lock_for_cleanup ()

void
udisks_linux_block_object_lock_for_cleanup
                               (UDisksLinuxBlockObject *object);

Acquires the "cleanup" lock of the block device object . Typically used to signal the cleanup thread that the block device is busy.

Parameters

object

A UDisksLinuxBlockObject.

 

udisks_linux_block_object_try_lock_for_cleanup ()

gboolean
udisks_linux_block_object_try_lock_for_cleanup
                               (UDisksLinuxBlockObject *object);

Attempts to lock the block device object for cleanup. Typically used by the cleanup thread to check whether the block device is busy and cleanup can be performed.

Parameters

object

A UDisksLinuxBlockObject.

 

Returns

TRUE if lock has been acquired, FALSE when the block device is busy.


udisks_linux_block_object_release_cleanup_lock ()

void
udisks_linux_block_object_release_cleanup_lock
                               (UDisksLinuxBlockObject *object);

Releases a lock previously acquired by udisks_linux_block_object_lock_for_cleanup().

Parameters

object

A UDisksLinuxBlockObject.

 

Types and Values

UDisksLinuxBlockObject

typedef struct _UDisksLinuxBlockObject UDisksLinuxBlockObject;

The UDisksLinuxBlockObject structure contains only private data and should only be accessed using the provided API.

Property Details

The “daemon” property

  “daemon”                   UDisksDaemon *

The UDisksDaemon the object is for.

Owner: UDisksLinuxBlockObject

Flags: Read / Write / Construct Only


The “device” property

  “device”                   UDisksLinuxDevice *

The UDisksLinuxDevice for the object. Connect to the “notify” signal to get notified whenever this is updated.

Owner: UDisksLinuxBlockObject

Flags: Read / Write / Construct Only