libparted 3.6
|
Device access. More...
Files | |
file | device.h |
file | device.h |
Data Structures | |
struct | _PedCHSGeometry |
A cylinder-head-sector "old-style" geometry. More... | |
struct | _PedDevice |
A block device - for example, /dev/hda, not /dev/hda3. More... | |
struct | _PedDeviceArchOps |
List of functions implementing architecture-specific operations. More... | |
Typedefs | |
typedef struct _PedCHSGeometry | PedCHSGeometry |
typedef struct _PedCHSGeometry | PedCHSGeometry |
typedef struct _PedDevice | PedDevice |
typedef struct _PedDevice | PedDevice |
typedef struct _PedDeviceArchOps | PedDeviceArchOps |
typedef struct _PedDeviceArchOps | PedDeviceArchOps |
typedef long long | PedSector |
We can address 2^63 sectors. | |
typedef long long | PedSector |
We can address 2^63 sectors. | |
Functions | |
void | _ped_device_probe (const char *path) |
int | ped_device_begin_external_access (PedDevice *dev) |
Begins external access mode. | |
void | ped_device_cache_remove (PedDevice *dev) |
PedSector | ped_device_check (PedDevice *dev, void *buffer, PedSector start, PedSector count) |
int | ped_device_close (PedDevice *dev) |
Close dev. | |
void | ped_device_destroy (PedDevice *dev) |
Destroys a device and removes it from the device list, and frees all resources associated with the device (all resources allocated when the device was created). | |
int | ped_device_end_external_access (PedDevice *dev) |
Complementary function to ped_device_begin_external_access. | |
void | ped_device_free_all () |
Close/free all devices. | |
PedDevice * | ped_device_get (const char *path) |
Gets the device "name", where name is usually the block device, e.g. | |
PedConstraint * | ped_device_get_constraint (const PedDevice *dev) |
Get a constraint that represents hardware requirements on geometry. | |
PedConstraint * | ped_device_get_minimal_aligned_constraint (const PedDevice *dev) |
Get a constraint that represents hardware requirements on geometry and alignment. | |
PedAlignment * | ped_device_get_minimum_alignment (const PedDevice *dev) |
Get an alignment that represents minimum hardware requirements on alignment. | |
PedDevice * | ped_device_get_next (const PedDevice *dev) |
Returns the next device that was detected by ped_device_probe_all(), or calls to ped_device_get_next(). | |
PedConstraint * | ped_device_get_optimal_aligned_constraint (const PedDevice *dev) |
Get a constraint that represents hardware requirements on geometry and alignment. | |
PedAlignment * | ped_device_get_optimum_alignment (const PedDevice *dev) |
Get an alignment that represents the hardware requirements for optimal performance. | |
int | ped_device_is_busy (PedDevice *dev) |
int | ped_device_open (PedDevice *dev) |
Attempt to open a device to allow use of read, write and sync functions. | |
void | ped_device_probe_all () |
Attempts to detect all devices. | |
int | ped_device_read (const PedDevice *dev, void *buffer, PedSector start, PedSector count) |
int | ped_device_sync (PedDevice *dev) |
int | ped_device_sync_fast (PedDevice *dev) |
int | ped_device_write (PedDevice *dev, const void *buffer, PedSector start, PedSector count) |
Device access.
When ped_device_probe_all() is called, libparted attempts to detect all devices. It constructs a list which can be accessed with ped_device_get_next().
If you want to use a device that isn't on the list, use ped_device_get(). Also, there may be OS-specific constructors, for creating devices from file descriptors, stores, etc. For example, ped_device_new_from_store().
typedef struct _PedCHSGeometry PedCHSGeometry |
typedef struct _PedCHSGeometry PedCHSGeometry |
typedef struct _PedDevice PedDevice |
typedef struct _PedDevice PedDevice |
typedef struct _PedDeviceArchOps PedDeviceArchOps |
typedef struct _PedDeviceArchOps PedDeviceArchOps |
typedef long long PedSector |
We can address 2^63 sectors.
typedef long long PedSector |
We can address 2^63 sectors.
enum PedDeviceType |
enum PedDeviceType |
void _ped_device_probe | ( | const char * | path | ) |
int ped_device_begin_external_access | ( | PedDevice * | dev | ) |
Begins external access mode.
External access mode allows you to safely do IO on the device. If a PedDevice is open, then you should not do any IO on that device, e.g. by calling an external program like e2fsck, unless you put it in external access mode. You should not use any libparted commands that do IO to a device, e.g. ped_file_system_{open|resize|copy}, ped_disk_{read|write}), while a device is in external access mode. Also, you should not ped_device_close() a device, while it is in external access mode. Note: ped_device_begin_external_access_mode() does things like tell the kernel to flush its caches.
Close a device while pretending it is still open. This is useful for temporarily suspending libparted access to the device in order for an external program to access it. (Running external programs while the device is open can cause cache coherency problems.)
In particular, this function keeps track of dev->open_count, so that reference counting isn't screwed up.
void ped_device_cache_remove | ( | PedDevice * | dev | ) |
int ped_device_close | ( | PedDevice * | dev | ) |
Close dev.
If this is the final close, then resources allocated by ped_device_open() are freed.
void ped_device_destroy | ( | PedDevice * | dev | ) |
Destroys a device and removes it from the device list, and frees all resources associated with the device (all resources allocated when the device was created).
int ped_device_end_external_access | ( | PedDevice * | dev | ) |
Complementary function to ped_device_begin_external_access.
void ped_device_free_all | ( | ) |
Close/free all devices.
Called by ped_done(), so you do not need to worry about it.
PedDevice * ped_device_get | ( | const char * | path | ) |
Gets the device "name", where name is usually the block device, e.g.
/dev/sdb. If the device wasn't detected with ped_device_probe_all(), an attempt will be made to detect it again. If it is found, it will be added to the list.
PedConstraint * ped_device_get_constraint | ( | const PedDevice * | dev | ) |
Get a constraint that represents hardware requirements on geometry.
This function will return a constraint representing the limits imposed by the size of the disk, it will not provide any alignment constraints.
Alignment constraints may be desirable when using media that have a physical sector size that is a multiple of the logical sector size, as in this case proper partition alignment can benefit disk performance signigicantly. When you want a constraint with alignment info, use ped_device_get_minimal_aligned_constraint() or ped_device_get_optimal_aligned_constraint().
PedConstraint * ped_device_get_minimal_aligned_constraint | ( | const PedDevice * | dev | ) |
Get a constraint that represents hardware requirements on geometry and alignment.
This function will return a constraint representing the limits imposed by the size of the disk and the minimal alignment requirements for proper performance of the disk.
PedAlignment * ped_device_get_minimum_alignment | ( | const PedDevice * | dev | ) |
Get an alignment that represents minimum hardware requirements on alignment.
When for example using media that has a physical sector size that is a multiple of the logical sector size, it is desirable to have disk accesses (and thus partitions) properly aligned. Having partitions not aligned to the minimum hardware requirements may lead to a performance penalty.
The returned alignment describes the alignment for the start sector of the partition, the end sector should be aligned too, to get the end sector alignment decrease the returned alignment's offset by 1.
Returns the next device that was detected by ped_device_probe_all(), or calls to ped_device_get_next().
If dev is NULL, returns the first device.
PedConstraint * ped_device_get_optimal_aligned_constraint | ( | const PedDevice * | dev | ) |
Get a constraint that represents hardware requirements on geometry and alignment.
This function will return a constraint representing the limits imposed by the size of the disk and the alignment requirements for optimal performance of the disk.
PedAlignment * ped_device_get_optimum_alignment | ( | const PedDevice * | dev | ) |
Get an alignment that represents the hardware requirements for optimal performance.
The returned alignment describes the alignment for the start sector of the partition, the end sector should be aligned too, to get the end sector alignment decrease the returned alignment's offset by 1.
int ped_device_is_busy | ( | PedDevice * | dev | ) |
int ped_device_open | ( | PedDevice * | dev | ) |
Attempt to open a device to allow use of read, write and sync functions.
The meaning of "open" is architecture-dependent. Apart from requesting access to the device from the operating system, it does things like flushing caches.
void ped_device_probe_all | ( | ) |
Attempts to detect all devices.
int ped_device_sync | ( | PedDevice * | dev | ) |
int ped_device_sync_fast | ( | PedDevice * | dev | ) |