1
0
mirror of git://sourceware.org/git/lvm2.git synced 2025-01-11 09:18:25 +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:
Dave Wysochanski 2008-12-17 16:46:45 +00:00
parent 03798fd604
commit 9f67ba6a38
5 changed files with 37 additions and 30 deletions

View File

@ -724,7 +724,7 @@ void lvm_do_backup(const char *vgname)
/* Called to initialise the LVM context of the daemon */ /* Called to initialise the LVM context of the daemon */
int init_lvm(int using_gulm) 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"); log_error("Failed to allocate command context");
return 0; return 0;
} }

View File

@ -998,7 +998,7 @@ static void _init_globals(struct cmd_context *cmd)
} }
/* Entry point */ /* 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) unsigned is_long_lived)
{ {
struct cmd_context *cmd; struct cmd_context *cmd;
@ -1021,7 +1021,6 @@ struct cmd_context *create_toolcontext(struct arg *the_args, unsigned is_static,
return NULL; return NULL;
} }
memset(cmd, 0, sizeof(*cmd)); memset(cmd, 0, sizeof(*cmd));
cmd->args = the_args;
cmd->is_static = is_static; cmd->is_static = is_static;
cmd->is_long_lived = is_long_lived; cmd->is_long_lived = is_long_lived;
cmd->handles_missing_pvs = 0; cmd->handles_missing_pvs = 0;

View File

@ -65,7 +65,6 @@ struct cmd_context {
unsigned rand_seed; unsigned rand_seed;
char *cmd_line; char *cmd_line;
struct command *command; struct command *command;
struct arg *args;
char **argv; char **argv;
unsigned is_static:1; /* Static binary? */ unsigned is_static:1; /* Static binary? */
unsigned is_long_lived:1; /* Optimises persistent_filter handling */ unsigned is_long_lived:1; /* Optimises persistent_filter handling */
@ -96,7 +95,7 @@ struct cmd_context {
char sysfs_dir[PATH_MAX]; 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); void destroy_toolcontext(struct cmd_context *cmd);
int refresh_toolcontext(struct cmd_context *cmd); int refresh_toolcontext(struct cmd_context *cmd);
int config_files_changed(struct cmd_context *cmd); int config_files_changed(struct cmd_context *cmd);

View File

@ -24,7 +24,7 @@
*/ */
struct arg; struct arg;
struct cmd_context; 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); void destroy_toolcontext(struct cmd_context *cmd);
/* /*
@ -37,7 +37,7 @@ lvm_handle_t lvm2_create(void);
* NULL: Fail - unable to initialise handle. * NULL: Fail - unable to initialise handle.
* non-NULL: Success - valid LVM2 handle returned * 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 * lvm2_destroy

View File

@ -54,59 +54,68 @@ static struct arg _the_args[ARG_COUNT + 1] = {
static struct cmdline_context _cmdline; static struct cmdline_context _cmdline;
/* Command line args */ /* 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) 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]; _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_NULL;
return cmd; return cmd;