lib/kernel-args: Store kernel args as key/value entries
Define an `OstreeKernelArgsEntry` structure, which holds both the key and the value. The kargs order array stores entries for each key/value pair, instead of just the keys. The hash table is used to locate entries, by storing entries in a pointer array for each key. The same public interface is preserved, while maintaining ordering information of each key/value pair when appending/replacing/deleting kargs. Fixes: #1859
This commit is contained in:
1 parent
49513ccc1b
commit
aadc4db012
4 files changed
+244
-92
No files matched your search
@@ -27,11 +27,40 @@
|
||||
G_BEGIN_DECLS
|
||||
|
||||
typedef struct _OstreeKernelArgs OstreeKernelArgs;
|
||||
typedef struct _OstreeKernelArgsEntry OstreeKernelArgsEntry;
|
||||
|
||||
GHashTable *_ostree_kernel_arg_get_kargs_table (OstreeKernelArgs *kargs);
|
||||
|
||||
GPtrArray *_ostree_kernel_arg_get_key_array (OstreeKernelArgs *kargs);
|
||||
|
||||
char *
|
||||
_ostree_kernel_args_entry_get_key (const OstreeKernelArgsEntry *e);
|
||||
|
||||
char *
|
||||
_ostree_kernel_args_entry_get_value (const OstreeKernelArgsEntry *e);
|
||||
|
||||
void
|
||||
_ostree_kernel_args_entry_set_key (OstreeKernelArgsEntry *e,
|
||||
char *key);
|
||||
|
||||
void
|
||||
_ostree_kernel_args_entry_set_value (OstreeKernelArgsEntry *e,
|
||||
char *value);
|
||||
|
||||
char *
|
||||
_ostree_kernel_args_get_key_index (const OstreeKernelArgs *kargs,
|
||||
int i);
|
||||
|
||||
char *
|
||||
_ostree_kernel_args_get_value_index (const OstreeKernelArgs *kargs,
|
||||
int i);
|
||||
|
||||
OstreeKernelArgsEntry *
|
||||
_ostree_kernel_args_entry_new (void);
|
||||
|
||||
void
|
||||
_ostree_kernel_args_entry_value_free (OstreeKernelArgsEntry *e);
|
||||
|
||||
_OSTREE_PUBLIC
|
||||
void ostree_kernel_args_free (OstreeKernelArgs *kargs);
|
||||
|
||||
|
||||
Reference in new issue
Block a user