Files | |
| 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 _PedCHSGeometry | PedCHSGeometry |
| typedef _PedDevice | PedDevice |
| typedef _PedDeviceArchOps | PedDeviceArchOps |
| typedef long long | PedSector |
| We can address 2^63 sectors. | |
Enumerations | |
| enum | PedDeviceType { PED_DEVICE_UNKNOWN = 0, PED_DEVICE_SCSI = 1, PED_DEVICE_IDE = 2, PED_DEVICE_DAC960 = 3, PED_DEVICE_CPQARRAY = 4, PED_DEVICE_FILE = 5, PED_DEVICE_ATARAID = 6, PED_DEVICE_I2O = 7, PED_DEVICE_UBD = 8, PED_DEVICE_DASD = 9, PED_DEVICE_VIODASD = 10, PED_DEVICE_SX8 = 11 } |
Functions | |
| void | _ped_device_probe (const char *path) |
| char * | canonicalize_file_name (const char *name) |
| 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 (PedDevice *dev) |
| Get a constraint that represents hardware requirements on alignment and geometry. | |
| 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(). | |
| 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) |
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().
| enum PedDeviceType |
| 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.
| int ped_device_close | ( | PedDevice * | dev | ) |
Close dev.
If this is the final close, then resources allocated by ped_device_open() are freed.
| 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 | ( | PedDevice * | dev | ) |
Get a constraint that represents hardware requirements on alignment and geometry.
This is, for example, important for media that have a physical sector size that is a multiple of the logical sector size.
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.
| 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.
1.5.2