Top |
gboolean | bd_part_init () |
void | bd_part_close () |
gboolean | bd_part_create_table () |
BDPartSpec * | bd_part_create_part () |
gboolean | bd_part_delete_part () |
gboolean | bd_part_resize_part () |
BDPartSpec ** | bd_part_get_disk_parts () |
BDPartSpec * | bd_part_get_part_spec () |
BDPartSpec * | bd_part_spec_copy () |
void | bd_part_spec_free () |
GType | bd_part_spec_get_type () |
const gchar * | bd_part_get_part_table_type_str () |
const gchar * | bd_part_get_type_str () |
BDPartSpec * | bd_part_get_best_free_region () |
BDPartSpec ** | bd_part_get_disk_free_regions () |
BDPartDiskSpec * | bd_part_get_disk_spec () |
BDPartSpec * | bd_part_get_part_by_pos () |
gboolean | bd_part_set_part_name () |
gboolean | bd_part_set_part_type () |
gboolean | bd_part_set_part_id () |
gboolean | bd_part_set_part_bootable () |
gboolean | bd_part_set_part_attributes () |
gboolean | bd_part_set_part_uuid () |
GQuark | bd_part_error_quark () |
gboolean | bd_part_is_tech_avail () |
BDPartDiskSpec * | bd_part_disk_spec_copy () |
void | bd_part_disk_spec_free () |
#define | BD_PART_ERROR |
#define | BD_PART_TYPE_SPEC |
enum | BDPartAlign |
BDPartSpec | |
enum | BDPartType |
enum | BDPartTypeReq |
enum | BDPartError |
enum | BDPartTableType |
BDPartDiskSpec | |
enum | BDPartTech |
enum | BDPartTechMode |
A plugin for operations with partition tables. Currently supported table (disk label) types are MBR and GPT. See the functions below to get an overview of which operations are supported. If there's anything missing, please don't hesitate to report it as this plugin (just like all the others) is subject to future development and enhancements.
This particular implementation of the part plugin uses libfdisk for manipulations of both the MBR and GPT disk label types.
gboolean
bd_part_init (void
);
Initializes the plugin. **This function is called automatically by the library's initialization functions.**
void
bd_part_close (void
);
Cleans up after the plugin. **This function is called automatically by the library's functions that unload it.**
gboolean bd_part_create_table (const gchar *disk
,BDPartTableType type
,gboolean ignore_existing
,GError **error
);
disk |
path of the disk block device to create partition table on |
|
type |
type of the partition table to create |
|
ignore_existing |
whether to ignore/overwrite the existing table or not
(reports an error if |
|
error |
place to store error (if any). |
[out][optional] |
whether the partition table was successfully created or not
Tech category: BD_PART_TECH_MODE_CREATE_TABLE
+ the tech according to type
BDPartSpec * bd_part_create_part (const gchar *disk
,BDPartTypeReq type
,guint64 start
,guint64 size
,BDPartAlign align
,GError **error
);
disk |
disk to create partition on |
|
type |
type of the partition to create (if |
|
start |
where the partition should start (i.e. offset from the disk start) |
|
size |
desired size of the partition (if 0, a max-sized partition is created) |
|
align |
alignment to use for the partition |
|
error |
place to store error (if any). |
[out][optional] |
specification of the created partition or NULL
in case of error
NOTE: The resulting partition may start at a different position than given by
start
and can have different size than size
due to alignment.
Tech category: BD_PART_TECH_MODE_MODIFY_TABLE
+ the tech according to the partition table type.
[transfer full]
gboolean bd_part_delete_part (const gchar *disk
,const gchar *part
,GError **error
);
disk |
disk to remove the partition from |
|
part |
partition to remove |
|
error |
place to store error (if any). |
[out][optional] |
whether the part
partition was successfully deleted from disk
Tech category: BD_PART_TECH_MODE_MODIFY_TABLE
+ the tech according to the partition table type
gboolean bd_part_resize_part (const gchar *disk
,const gchar *part
,guint64 size
,BDPartAlign align
,GError **error
);
disk |
disk containing the partition |
|
part |
partition to resize |
|
size |
new partition size, 0 for maximal size |
|
align |
alignment to use for the partition end |
|
error |
place to store error (if any). |
[out][optional] |
whether the part
partition was successfully resized on disk
to size
NOTE: The resulting partition may be slightly bigger than requested due to alignment.
Tech category: BD_PART_TECH_MODE_MODIFY_TABLE
+ the tech according to the partition table type
BDPartSpec ** bd_part_get_disk_parts (const gchar *disk
,GError **error
);
disk |
disk to get information about partitions for |
|
error |
place to store error (if any). |
[out][optional] |
specs of the partitions from disk
or NULL
in case of error
Tech category: BD_PART_TECH_MODE_QUERY_TABLE
+ the tech according to the partition table type.
[transfer full][array zero-terminated=1]
BDPartSpec * bd_part_get_part_spec (const gchar *disk
,const gchar *part
,GError **error
);
disk |
disk to remove the partition from |
|
part |
partition to get spec for |
|
error |
place to store error (if any). |
[out][optional] |
spec of the part
partition from disk
or NULL
in case of error
Tech category: BD_PART_TECH_MODE_QUERY_PART
+ the tech according to the partition table type.
[transfer full]
const gchar * bd_part_get_part_table_type_str (BDPartTableType type
,GError **error
);
const gchar * bd_part_get_type_str (BDPartType type
,GError **error
);
BDPartSpec * bd_part_get_best_free_region (const gchar *disk
,BDPartType type
,guint64 size
,GError **error
);
disk |
disk to get the best free region for |
|
type |
type of the partition that is planned to be added |
|
size |
size of the partition to be added |
|
error |
place to store error (if any). |
[out][optional] |
spec of the best free region on disk
for a new partition of type type
with the size of size
or NULL
if there is none such region or if
there was an error (error
gets populated)
Note: For the type
BD_PART_TYPE_NORMAL
, the smallest possible space that *is not* in an extended partition
is found. For the type
BD_PART_TYPE_LOGICAL
, the smallest possible space that *is* in an extended
partition is found. For BD_PART_TYPE_EXTENDED
, the biggest possible space is found as long as there
is no other extended partition (there can only be one).
Tech category: BD_PART_TECH_MODE_QUERY_TABLE
+ the tech according to the partition table type.
[transfer full]
BDPartSpec ** bd_part_get_disk_free_regions (const gchar *disk
,GError **error
);
specs of the free regions from disk
or NULL
in case of error
Tech category: BD_PART_TECH_MODE_QUERY_TABLE
+ the tech according to the partition table type.
[transfer full][array zero-terminated=1]
BDPartDiskSpec * bd_part_get_disk_spec (const gchar *disk
,GError **error
);
information about the given disk
or NULL
(in case of error)
Tech category: BD_PART_TECH_MODE_QUERY_TABLE
+ the tech according to the partition table type.
[transfer full]
BDPartSpec * bd_part_get_part_by_pos (const gchar *disk
,guint64 position
,GError **error
);
disk |
disk to remove the partition from |
|
position |
position (in bytes) determining the partition |
|
error |
place to store error (if any). |
[out][optional] |
spec of the partition from disk
spanning over the position
or NULL
if no such
partition exists or in case of error (error
is set)
Tech category: BD_PART_TECH_MODE_QUERY_PART
+ the tech according to the partition table type.
[transfer full]
gboolean bd_part_set_part_name (const gchar *disk
,const gchar *part
,const gchar *name
,GError **error
);
disk |
device the partition belongs to |
|
part |
partition the name should be set for |
|
name |
name to set |
|
error |
place to store error (if any). |
[out][optional] |
whether the name was successfully set or not
Tech category: BD_PART_TECH_GPT
-BD_PART_TECH_MODE_MODIFY_PART
gboolean bd_part_set_part_type (const gchar *disk
,const gchar *part
,const gchar *type_guid
,GError **error
);
disk |
device the partition belongs to |
|
part |
partition the type should be set for |
|
type_guid |
GUID of the type |
|
error |
place to store error (if any). |
[out][optional] |
whether the type_guid
type was successfully set for part
or not
Tech category: BD_PART_TECH_GPT
-BD_PART_TECH_MODE_MODIFY_PART
gboolean bd_part_set_part_id (const gchar *disk
,const gchar *part
,const gchar *part_id
,GError **error
);
disk |
device the partition belongs to |
|
part |
partition the ID should be set for |
|
part_id |
partition Id |
|
error |
place to store error (if any). |
[out][optional] |
whether the part_id
type was successfully set for part
or not
Tech category: BD_PART_TECH_MBR
-BD_PART_TECH_MODE_MODIFY_PART
gboolean bd_part_set_part_bootable (const gchar *disk
,const gchar *part
,gboolean bootable
,GError **error
);
disk |
device the partition belongs to |
|
part |
partition the bootable flag should be set for |
|
bootable |
whether to set or unset the bootable flag |
|
error |
place to store error (if any). |
[out][optional] |
whether the bootable
flag was successfully set for part
or not
Tech category: BD_PART_TECH_MBR
-BD_PART_TECH_MODE_MODIFY_PART
gboolean bd_part_set_part_attributes (const gchar *disk
,const gchar *part
,guint64 attrs
,GError **error
);
disk |
device the partition belongs to |
|
part |
partition the attributes should be set for |
|
attrs |
GPT attributes to set on |
|
error |
place to store error (if any). |
[out][optional] |
whether the attrs
GPT attributes were successfully set for part
or not
Tech category: BD_PART_TECH_GPT
-BD_PART_TECH_MODE_MODIFY_PART
gboolean bd_part_set_part_uuid (const gchar *disk
,const gchar *part
,const gchar *uuid
,GError **error
);
disk |
device the partition belongs to |
|
part |
partition the UUID should be set for |
|
uuid |
partition UUID to set |
|
error |
place to store error (if any). |
[out][optional] |
whether the uuid
type was successfully set for part
or not
Tech category: BD_PART_TECH_MODE_MODIFY_PART
+ the tech according to the partition table type
gboolean bd_part_is_tech_avail (BDPartTech tech
,guint64 mode
,GError **error
);
tech |
the queried tech |
|
mode |
a bit mask of queried modes of operation (BDPartTechMode) for |
|
error |
place to store error (details about why the |
[out][optional] |
typedef struct { gchar *path; gchar *name; gchar *uuid; gchar *id; gchar *type_guid; guint64 type; guint64 start; guint64 size; gboolean bootable; guint64 attrs; gchar *type_name; } BDPartSpec;
path of the partition (block device) |
||
name of the partition (for GPT partitions) |
||
UUID of the partition (for GPT partitions) |
||
id of the partition (for MSDOS partitions) |
||
GUID of the partition's type (GPT) |
||
bit combination of partition's types (BDPartType) |
||
start of the partition |
||
size of the partition |
||
whether the bootable flag is set or not (for MSDOS partitions) |
||
partition GPT attributes |
||
human readable representation of |
typedef struct { gchar *path; BDPartTableType table_type; guint64 size; guint64 sector_size; } BDPartDiskSpec;
path of the disk (block device) |
||
BDPartTableType |
type of the disk's partition table |
|
size of the disk |
||
disk's sector size |