| Top |
| int | mnt_optstr_append_option () |
| int | mnt_optstr_apply_flags () |
| int | mnt_optstr_deduplicate_option () |
| int | mnt_optstr_get_flags () |
| int | mnt_optstr_get_option () |
| int | mnt_optstr_get_options () |
| int | mnt_optstr_next_option () |
| int | mnt_optstr_prepend_option () |
| int | mnt_optstr_remove_option () |
| int | mnt_optstr_set_option () |
| int | mnt_split_optstr () |
This is a simple and low-level API to working with mount options that are stored in a string.
int mnt_optstr_append_option (char **optstr,const char *name,const char *value);
int mnt_optstr_apply_flags (char **optstr,unsigned long flags,const struct libmnt_optmap *map);
Removes/adds options to the optstr
according to flags. For example:
MS_NOATIME and "foo,bar,noexec" --returns-> "foo,bar,noatime"
int mnt_optstr_deduplicate_option (char **optstr,const char *name);
Removes all instances of name
except the last one.
int mnt_optstr_get_flags (const char *optstr,unsigned long *flags,const struct libmnt_optmap *map);
Returns in flags
IDs of options from optstr
as defined in the map
.
For example:
"bind,exec,foo,bar" --returns-> MS_BIND
"bind,noexec,foo,bar" --returns-> MS_BIND|MS_NOEXEC
Note that flags
are not zeroized by this function! This function sets/unsets
bits in the flags
only.
int mnt_optstr_get_option (const char *optstr,const char *name,char **value,size_t *valsz);
int mnt_optstr_get_options (const char *optstr,char **subset,const struct libmnt_optmap *map,int ignore);
Extracts options from optstr
that belong to the map
, for example:
mnt_optstr_get_options(optstr, &p, mnt_get_builtin_optmap(MNT_LINUX_MAP), MNT_NOMTAB);
the 'p' returns all VFS options, the options that do not belong to mtab are ignored.
int mnt_optstr_next_option (char **optstr,char **name,size_t *namesz,char **value,size_t *valuesz);
Parses the first option in optstr
.
int mnt_optstr_prepend_option (char **optstr,const char *name,const char *value);
int mnt_optstr_set_option (char **optstr,const char *name,const char *value);
Set or unset the option value
.
int mnt_split_optstr (const char *optstr,char **user,char **vfs,char **fs,int ignore_user,int ignore_vfs);
For example:
mnt_split_optstr(optstr, &u, NULL, NULL, MNT_NOMTAB, 0);
returns all userspace options, the options that do not belong to mtab are ignored.
Note that FS options are all options that are undefined in MNT_USERSPACE_MAP or MNT_LINUX_MAP.
optstr |
string with comma separated list of options |
|
user |
returns newly allocated string with userspace options |
|
vfs |
returns newly allocated string with VFS options |
|
fs |
returns newly allocated string with FS options |
|
ignore_user |
option mask for options that should be ignored |
|
ignore_vfs |
option mask for options that should be ignored |