mirror of
git://sourceware.org/git/lvm2.git
synced 2025-01-03 05:18:29 +03:00
Remove struct arg * from struct cmd_context and create_toolcontext().
This allows us to remove one argument from create_toolcontext() and moves it closer to a generic library init function. In the arg_*() functions, we just use _the_args() directly. For now we leave the first parameter to these arg_*() functions (struct cmd_context *) because of the number of files involved in removing the parameter.
This commit is contained in:
parent
0fa2c4ed7f
commit
c5c13fe776
@ -724,7 +724,7 @@ void lvm_do_backup(const char *vgname)
|
||||
/* Called to initialise the LVM context of the daemon */
|
||||
int init_lvm(int using_gulm)
|
||||
{
|
||||
if (!(cmd = create_toolcontext(NULL, 0, 1))) {
|
||||
if (!(cmd = create_toolcontext(0, 1))) {
|
||||
log_error("Failed to allocate command context");
|
||||
return 0;
|
||||
}
|
||||
|
@ -998,7 +998,7 @@ static void _init_globals(struct cmd_context *cmd)
|
||||
}
|
||||
|
||||
/* Entry point */
|
||||
struct cmd_context *create_toolcontext(struct arg *the_args, unsigned is_static,
|
||||
struct cmd_context *create_toolcontext(unsigned is_static,
|
||||
unsigned is_long_lived)
|
||||
{
|
||||
struct cmd_context *cmd;
|
||||
@ -1021,7 +1021,6 @@ struct cmd_context *create_toolcontext(struct arg *the_args, unsigned is_static,
|
||||
return NULL;
|
||||
}
|
||||
memset(cmd, 0, sizeof(*cmd));
|
||||
cmd->args = the_args;
|
||||
cmd->is_static = is_static;
|
||||
cmd->is_long_lived = is_long_lived;
|
||||
cmd->handles_missing_pvs = 0;
|
||||
|
@ -65,7 +65,6 @@ struct cmd_context {
|
||||
unsigned rand_seed;
|
||||
char *cmd_line;
|
||||
struct command *command;
|
||||
struct arg *args;
|
||||
char **argv;
|
||||
unsigned is_static:1; /* Static binary? */
|
||||
unsigned is_long_lived:1; /* Optimises persistent_filter handling */
|
||||
@ -96,7 +95,7 @@ struct cmd_context {
|
||||
char sysfs_dir[PATH_MAX];
|
||||
};
|
||||
|
||||
struct cmd_context *create_toolcontext(struct arg *the_args, unsigned is_static, unsigned is_long_lived);
|
||||
struct cmd_context *create_toolcontext(unsigned is_static, unsigned is_long_lived);
|
||||
void destroy_toolcontext(struct cmd_context *cmd);
|
||||
int refresh_toolcontext(struct cmd_context *cmd);
|
||||
int config_files_changed(struct cmd_context *cmd);
|
||||
|
@ -24,7 +24,7 @@
|
||||
*/
|
||||
struct arg;
|
||||
struct cmd_context;
|
||||
struct cmd_context *create_toolcontext(struct arg *the_args, unsigned is_static, unsigned is_long_lived);
|
||||
struct cmd_context *create_toolcontext(unsigned is_static, unsigned is_long_lived);
|
||||
void destroy_toolcontext(struct cmd_context *cmd);
|
||||
|
||||
/*
|
||||
@ -37,7 +37,7 @@ lvm_handle_t lvm2_create(void);
|
||||
* NULL: Fail - unable to initialise handle.
|
||||
* non-NULL: Success - valid LVM2 handle returned
|
||||
*/
|
||||
#define lvm2_create(X) create_toolcontext(NULL,0,1)
|
||||
#define lvm2_create(X) create_toolcontext(0,1)
|
||||
|
||||
/*
|
||||
* lvm2_destroy
|
||||
|
@ -54,59 +54,68 @@ static struct arg _the_args[ARG_COUNT + 1] = {
|
||||
static struct cmdline_context _cmdline;
|
||||
|
||||
/* Command line args */
|
||||
unsigned arg_count(const struct cmd_context *cmd, int a)
|
||||
/* FIXME: struct cmd_context * is unnecessary (large # files ) */
|
||||
unsigned arg_count(const struct cmd_context *cmd __attribute((unused)), int a)
|
||||
{
|
||||
return cmd->args[a].count;
|
||||
return _the_args[a].count;
|
||||
}
|
||||
|
||||
const char *arg_value(struct cmd_context *cmd, int a)
|
||||
const char *arg_value(struct cmd_context *cmd __attribute((unused)), int a)
|
||||
{
|
||||
return cmd->args[a].value;
|
||||
return _the_args[a].value;
|
||||
}
|
||||
|
||||
const char *arg_str_value(struct cmd_context *cmd, int a, const char *def)
|
||||
const char *arg_str_value(struct cmd_context *cmd __attribute((unused)),
|
||||
int a, const char *def)
|
||||
{
|
||||
return arg_count(cmd, a) ? cmd->args[a].value : def;
|
||||
return arg_count(cmd, a) ? _the_args[a].value : def;
|
||||
}
|
||||
|
||||
int32_t arg_int_value(struct cmd_context *cmd, int a, const int32_t def)
|
||||
int32_t arg_int_value(struct cmd_context *cmd __attribute((unused)),
|
||||
int a, const int32_t def)
|
||||
{
|
||||
return arg_count(cmd, a) ? cmd->args[a].i_value : def;
|
||||
return arg_count(cmd, a) ? _the_args[a].i_value : def;
|
||||
}
|
||||
|
||||
uint32_t arg_uint_value(struct cmd_context *cmd, int a, const uint32_t def)
|
||||
uint32_t arg_uint_value(struct cmd_context *cmd __attribute((unused)),
|
||||
int a, const uint32_t def)
|
||||
{
|
||||
return arg_count(cmd, a) ? cmd->args[a].ui_value : def;
|
||||
return arg_count(cmd, a) ? _the_args[a].ui_value : def;
|
||||
}
|
||||
|
||||
int64_t arg_int64_value(struct cmd_context *cmd, int a, const int64_t def)
|
||||
int64_t arg_int64_value(struct cmd_context *cmd __attribute((unused)),
|
||||
int a, const int64_t def)
|
||||
{
|
||||
return arg_count(cmd, a) ? cmd->args[a].i64_value : def;
|
||||
return arg_count(cmd, a) ? _the_args[a].i64_value : def;
|
||||
}
|
||||
|
||||
uint64_t arg_uint64_value(struct cmd_context *cmd, int a, const uint64_t def)
|
||||
uint64_t arg_uint64_value(struct cmd_context *cmd __attribute((unused)),
|
||||
int a, const uint64_t def)
|
||||
{
|
||||
return arg_count(cmd, a) ? cmd->args[a].ui64_value : def;
|
||||
return arg_count(cmd, a) ? _the_args[a].ui64_value : def;
|
||||
}
|
||||
|
||||
const void *arg_ptr_value(struct cmd_context *cmd, int a, const void *def)
|
||||
const void *arg_ptr_value(struct cmd_context *cmd __attribute((unused)),
|
||||
int a, const void *def)
|
||||
{
|
||||
return arg_count(cmd, a) ? cmd->args[a].ptr : def;
|
||||
return arg_count(cmd, a) ? _the_args[a].ptr : def;
|
||||
}
|
||||
|
||||
sign_t arg_sign_value(struct cmd_context *cmd, int a, const sign_t def)
|
||||
sign_t arg_sign_value(struct cmd_context *cmd __attribute((unused)),
|
||||
int a, const sign_t def)
|
||||
{
|
||||
return arg_count(cmd, a) ? cmd->args[a].sign : def;
|
||||
return arg_count(cmd, a) ? _the_args[a].sign : def;
|
||||
}
|
||||
|
||||
percent_t arg_percent_value(struct cmd_context *cmd, int a, const percent_t def)
|
||||
percent_t arg_percent_value(struct cmd_context *cmd __attribute((unused)),
|
||||
int a, const percent_t def)
|
||||
{
|
||||
return arg_count(cmd, a) ? cmd->args[a].percent : def;
|
||||
return arg_count(cmd, a) ? _the_args[a].percent : def;
|
||||
}
|
||||
|
||||
int arg_count_increment(struct cmd_context *cmd, int a)
|
||||
int arg_count_increment(struct cmd_context *cmd __attribute((unused)), int a)
|
||||
{
|
||||
return cmd->args[a].count++;
|
||||
return _the_args[a].count++;
|
||||
}
|
||||
|
||||
int yes_no_arg(struct cmd_context *cmd __attribute((unused)), struct arg *a)
|
||||
@ -1144,7 +1153,7 @@ struct cmd_context *init_lvm(unsigned is_static)
|
||||
|
||||
_cmdline.the_args = &_the_args[0];
|
||||
|
||||
if (!(cmd = create_toolcontext(_cmdline.the_args, is_static, 0)))
|
||||
if (!(cmd = create_toolcontext(is_static, 0)))
|
||||
return_NULL;
|
||||
|
||||
return cmd;
|
||||
|
Loading…
Reference in New Issue
Block a user