Top |
enum | BDUtilsProgStatus |
#define | BD_UTILS_EXEC_ERROR |
enum | BDUtilsExecError |
enum | BDUtilsDevUtilsError |
enum | BDUtilsDBusError |
enum | BDUtilsModuleError |
#define | BD_UTILS_DEV_UTILS_ERROR |
#define | BD_UTILS_DBUS_ERROR |
#define | BD_UTILS_MODULE_ERROR |
BDUtilsLinuxVersion | |
BDExtraArg | |
#define | EXBIBYTE |
#define | EiB |
#define | GIBIBYTE |
#define | GiB |
#define | KIBIBYTE |
#define | KiB |
#define | MEBIBYTE |
#define | MiB |
#define | PEBIBYTE |
#define | PiB |
#define | TEBIBYTE |
#define | TiB |
#define | EB |
#define | EXABYTE |
#define | GB |
#define | GIGABYTE |
#define | KB |
#define | KILOBYTE |
#define | MB |
#define | MEGABYTE |
#define | PB |
#define | PETABYTE |
#define | TB |
#define | TERABYTE |
#define | BD_UTILS_LOG_EMERG |
#define | BD_UTILS_LOG_ALERT |
#define | BD_UTILS_LOG_CRIT |
#define | BD_UTILS_LOG_ERR |
#define | BD_UTILS_LOG_WARNING |
#define | BD_UTILS_LOG_NOTICE |
#define | BD_UTILS_LOG_INFO |
#define | BD_UTILS_LOG_DEBUG |
gboolean (*BDUtilsProgExtract) (const gchar *line
,guint8 *completion
);
Callback function used to process a line captured from spawned command's standard output and standard error output. Typically used to extract completion percentage of a long-running job.
Note that both outputs are read simultaneously with no guarantees of message order this function is called with.
The value the completion
points to may contain value previously returned from
this callback or zero when called for the first time. This is useful for extractors
where only some kind of a tick mark is printed out as a progress and previous value
is needed to compute an incremented value. It's important to keep in mind that this
function is only called over lines, i.e. progress reporting printing out tick marks
(e.g. dots) without a newline character might not work properly.
The line
string usually contains trailing newline character, which may be absent
however in case the spawned command exits without printing one. It's guaranteed
this function is called over remaining buffer no matter what the trailing
character is.
void (*BDUtilsProgFunc) (guint64 task_id
,BDUtilsProgStatus status
,guint8 completion
,gchar *msg
);
void (*BDUtilsLogFunc) (gint level
,const gchar *msg
);
Function type for logging function used by the libblockdev's exec utils to log the information about program executing.
gboolean bd_utils_exec_and_report_error (const gchar **argv
,const BDExtraArg **extra
,GError **error
);
gboolean bd_utils_exec_and_report_status_error (const gchar **argv
,const BDExtraArg **extra
,gint *status
,GError **error
);
gboolean bd_utils_exec_and_capture_output (const gchar **argv
,const BDExtraArg **extra
,gchar **output
,GError **error
);
Note that any NULL bytes read from standard output and standard error output will be discarded.
gboolean bd_utils_exec_and_capture_output_no_progress (const gchar **argv
,const BDExtraArg **extra
,gchar **output
,gchar **stderr
,gint *status
,GError **error
);
argv |
the argv array for the call. |
[array zero-terminated=1] |
extra |
extra arguments. |
[nullable][array zero-terminated=1] |
output |
place to store stdout to. |
[out][optional] |
stderr |
place to store stderr to. |
[out][optional] |
status |
place to store the process return code. |
[out] |
error |
place to store error (if any). |
[out][optional] |
gboolean bd_utils_exec_and_report_error_no_progress (const gchar **argv
,const BDExtraArg **extra
,GError **error
);
gboolean bd_utils_exec_and_report_progress (const gchar **argv
,const BDExtraArg **extra
,BDUtilsProgExtract prog_extract
,gint *proc_status
,GError **error
);
Note that any NULL bytes read from standard output and standard error
output are treated as separators similar to newlines and prog_extract
will be called with the respective chunk.
argv |
the argv array for the call. |
[array zero-terminated=1] |
extra |
extra arguments. |
[nullable][array zero-terminated=1] |
prog_extract |
function for extracting progress information. |
[scope notified][nullable] |
proc_status |
place to store the process exit status. |
[out] |
error |
place to store error (if any). |
[out][optional] |
gboolean bd_utils_exec_with_input (const gchar **argv
,const gchar *input
,const BDExtraArg **extra
,GError **error
);
gboolean bd_utils_init_logging (BDUtilsLogFunc new_log_func
,GError **error
);
new_log_func |
logging function to use or
|
[nullable][scope notified] |
error |
place to store error (if any). |
[out][optional] |
gboolean bd_utils_init_prog_reporting (BDUtilsProgFunc new_prog_func
,GError **error
);
gboolean bd_utils_init_prog_reporting_thread (BDUtilsProgFunc new_prog_func
,GError **error
);
gboolean
bd_utils_mute_prog_reporting_thread (GError **error
);
void bd_utils_report_progress (guint64 task_id
,guint64 completion
,const gchar *msg
);
void bd_utils_log_stdout (gint level
,const gchar *msg
);
Convenient function for logging to stdout. Can be used as BDUtilsLogFunc.
gboolean bd_utils_echo_str_to_file (const gchar *str
,const gchar *file_path
,GError **error
);
void
bd_utils_set_log_level (gint level
);
Level of messages to log. Only messages with level <= level
will be logged.
For example using with BD_UTILS_LOG_WARNING (default value) only messages
with log levels BD_UTILS_LOG_WARNING, BD_UTILS_LOG_ERR, ..., BD_UTILS_LOG_EMERG
will be logged.
Note: BD_UTILS_LOG_DEBUG level messages are always skipped unless compiled
with --enable-debug
configure option.
gboolean bd_utils_check_util_version (const gchar *util
,const gchar *version
,const gchar *version_arg
,const gchar *version_regexp
,GError **error
);
Note: Both supplied version
and parsed result using version_regexp
must be in format
X[.Y[.Z[.Z2[.Z3...[-R]]]]]
where all components are natural numbers, see
bd_utils_version_cmp
for details.
util |
name of the utility to check |
|
version |
minimum required version of the utility or |
[nullable] |
version_arg |
argument to use with the |
[nullable] |
version_regexp |
regexp to extract version from the version
info or |
[nullable] |
error |
place to store error (if any). |
[out][optional] |
gint bd_utils_version_cmp (const gchar *ver_string1
,const gchar *ver_string2
,GError **error
);
BDExtraArg * bd_extra_arg_new (const gchar *opt
,const gchar *val
);
Example of calling bd_fs_xfs_mkfs()
with an extra argument.
This will result in calling mkfs.xfs
with -L label
.
1 2 3 4 |
BDExtraArg label_arg = {"-L", "label"}; const BDExtraArg *extra_args[2] = {&label_arg, NULL}; ret = bd_fs_xfs_mkfs ("/dev/sda", extra_args, error); |
[constructor]
void
bd_extra_arg_list_free (BDExtraArg **args
);
Frees args
and all its elements.
gchar * bd_utils_resolve_device (const gchar *dev_spec
,GError **error
);
gchar ** bd_utils_get_device_symlinks (const gchar *dev_spec
,GError **error
);
gboolean bd_utils_have_kernel_module (const gchar *module_name
,GError **error
);
gboolean bd_utils_load_kernel_module (const gchar *module_name
,const gchar *options
,GError **error
);
gboolean bd_utils_unload_kernel_module (const gchar *module_name
,GError **error
);
BDUtilsLinuxVersion *
bd_utils_get_linux_version (GError **error
);
Retrieves version of currently running Linux kernel. Acts also as an initializer for statically cached data.
gint bd_utils_check_linux_version (guint major
,guint minor
,guint micro
);
Checks whether the currently running linux kernel version is equal or higher
than the specified required major
.minor
.micro
version.
gboolean bd_utils_dbus_service_available (GDBusConnection *connection
,GBusType bus_type
,const gchar *bus_name
,const gchar *obj_prefix
,GError **error
);
connection |
existing GDBusConnection or |
[nullable] |
bus_type |
bus type (system or session), ignored if |
|
bus_name |
name of the service to check (e.g. "com.redhat.lvmdbus1") |
|
obj_prefix |
object path prefix for the service (e.g. "/com/redhat/lvmdbus1") |
|
error |
place to store error (if any). |
[out][optional] |
typedef struct { gchar *opt; gchar *val; } BDExtraArg;
See bd_extra_arg_new()
for an example on how to construct the extra args.