From b7411e36514f2e564b3808679732ad8a5c1d9efd Mon Sep 17 00:00:00 2001 From: Yaniv Kaul Date: Fri, 4 Oct 2019 23:14:08 +0300 Subject: cli-*: make some structs static to reduce space consumed. There's a small difference when structs are defined static. Whenever possible, define them as such. Specifically, before: text data bss dec hex filename 678 216 0 894 37e ./cli/src/cli-cmd-misc.o 150024 1264 16 151304 24f08 ./cli/src/cli-rpc-ops.o 71980 64 0 72044 1196c ./cli/src/cli-cmd-parser.o 66189 4 16 66209 102a1 ./cli/src/cli-xml-output.o After: text data bss dec hex filename 670 216 0 886 376 ./cli/src/cli-cmd-misc.o 149848 1392 16 151256 24ed8 ./cli/src/cli-rpc-ops.o 70346 1320 0 71666 117f2 ./cli/src/cli-cmd-parser.o 66157 4 16 66177 10281 ./cli/src/cli-xml-output.o Change-Id: I206bd895290595d79fac7b26eee66f4279b50f92 updates: bz#1193929 Signed-off-by: Yaniv Kaul --- cli/src/cli-cmd-misc.c | 2 +- cli/src/cli-cmd-parser.c | 117 ++++++++++++++++++++++++----------------------- cli/src/cli-cmd-system.c | 2 +- cli/src/cli-rpc-ops.c | 32 ++++++------- cli/src/cli-xml-output.c | 29 ++++++------ 5 files changed, 94 insertions(+), 88 deletions(-) diff --git a/cli/src/cli-cmd-misc.c b/cli/src/cli-cmd-misc.c index 120d4ab69b5..658677bbca3 100644 --- a/cli/src/cli-cmd-misc.c +++ b/cli/src/cli-cmd-misc.c @@ -57,7 +57,7 @@ int cli_cmd_display_help(struct cli_state *state, struct cli_cmd_word *in_word, const char **words, int wordcount) { - struct cli_cmd *cmd[] = { + static struct cli_cmd *cmd[] = { cli_misc_cmds, cli_probe_cmds, volume_cmds, bitrot_cmds, quota_cmds, snapshot_cmds, global_cmds, NULL}; struct cli_cmd *cmd_ind = NULL; diff --git a/cli/src/cli-cmd-parser.c b/cli/src/cli-cmd-parser.c index a0e68ffa420..73a3cb31f1d 100644 --- a/cli/src/cli-cmd-parser.c +++ b/cli/src/cli-cmd-parser.c @@ -26,7 +26,7 @@ #define MAX_SNAP_DESCRIPTION_LEN 1024 -struct snap_config_opt_vals_ snap_confopt_vals[] = { +static struct snap_config_opt_vals_ snap_confopt_vals[] = { {.op_name = "snap-max-hard-limit", .question = "Changing snapshot-max-hard-limit " "will limit the creation of new snapshots " @@ -567,9 +567,9 @@ cli_cmd_volume_create_parse(struct cli_state *state, const char **words, char *bricks = NULL; char *ta_brick = NULL; int32_t brick_count = 0; - char *opwords[] = {"replica", "stripe", "transport", - "disperse", "redundancy", "disperse-data", - "arbiter", "thin-arbiter", NULL}; + static char *opwords[] = {"replica", "stripe", "transport", + "disperse", "redundancy", "disperse-data", + "arbiter", "thin-arbiter", NULL}; char *w = NULL; int op_count = 0; @@ -1195,19 +1195,19 @@ cli_cmd_quota_parse(const char **words, int wordcount, dict_t **options) }; int64_t value = 0; gf_quota_type type = GF_QUOTA_OPTION_TYPE_NONE; - char *opwords[] = {"enable", - "disable", - "limit-usage", - "remove", - "list", - "alert-time", - "soft-timeout", - "hard-timeout", - "default-soft-limit", - "limit-objects", - "list-objects", - "remove-objects", - NULL}; + static char *opwords[] = {"enable", + "disable", + "limit-usage", + "remove", + "list", + "alert-time", + "soft-timeout", + "hard-timeout", + "default-soft-limit", + "limit-objects", + "list-objects", + "remove-objects", + NULL}; char *w = NULL; uint32_t time = 0; double percent = 0; @@ -1853,7 +1853,7 @@ cli_cmd_volume_add_brick_parse(struct cli_state *state, const char **words, int ret = -1; int brick_count = 0, brick_index = 0; char *bricks = NULL; - char *opwords_cl[] = {"replica", "stripe", NULL}; + static char *opwords_cl[] = {"replica", "stripe", NULL}; gf1_cluster_type type = GF_CLUSTER_TYPE_NONE; int count = 1; int arbiter_count = 0; @@ -2013,8 +2013,9 @@ cli_cmd_volume_remove_brick_parse(struct cli_state *state, const char **words, int32_t j = 0; char *tmp_brick = NULL; char *tmp_brick1 = NULL; - char *type_opword[] = {"replica", NULL}; - char *opwords[] = {"start", "commit", "stop", "status", "force", NULL}; + static char *type_opword[] = {"replica", NULL}; + static char *opwords[] = {"start", "commit", "stop", + "status", "force", NULL}; char *w = NULL; int32_t command = GF_OP_CMD_NONE; long count = 0; @@ -2873,9 +2874,10 @@ cli_cmd_gsync_set_parse(const char **words, int wordcount, dict_t **options, unsigned slavei = 0; unsigned glob = 0; unsigned cmdi = 0; - char *opwords[] = {"create", "status", "start", "stop", "config", - "force", "delete", "ssh-port", "no-verify", "push-pem", - "detail", "pause", "resume", NULL}; + static char *opwords[] = {"create", "status", "start", "stop", + "config", "force", "delete", "ssh-port", + "no-verify", "push-pem", "detail", "pause", + "resume", NULL}; char *w = NULL; char *save_ptr = NULL; char *slave_temp = NULL; @@ -3092,7 +3094,7 @@ cli_cmd_volume_profile_parse(const char **words, int wordcount, gf1_cli_info_op info_op = GF_CLI_INFO_NONE; gf_boolean_t is_peek = _gf_false; - char *opwords[] = {"start", "stop", "info", NULL}; + static char *opwords[] = {"start", "stop", "info", NULL}; char *w = NULL; GF_ASSERT(words); @@ -3193,8 +3195,9 @@ cli_cmd_volume_top_parse(const char **words, int wordcount, dict_t **options) int count = 0; gf_boolean_t nfs = _gf_false; char *delimiter = NULL; - char *opwords[] = {"open", "read", "write", "opendir", "readdir", - "read-perf", "write-perf", "clear", NULL}; + static char *opwords[] = {"open", "read", "write", + "opendir", "readdir", "read-perf", + "write-perf", "clear", NULL}; char *w = NULL; GF_ASSERT(words); @@ -3373,9 +3376,9 @@ cli_cmd_get_statusop(const char *arg) int i = 0; uint32_t ret = GF_CLI_STATUS_NONE; char *w = NULL; - char *opwords[] = {"detail", "mem", "clients", "fd", "inode", - "callpool", "tasks", "client-list", NULL}; - struct { + static char *opwords[] = {"detail", "mem", "clients", "fd", "inode", + "callpool", "tasks", "client-list", NULL}; + static struct { char *opname; uint32_t opcode; } optable[] = {{"detail", GF_CLI_STATUS_DETAIL}, @@ -3573,9 +3576,9 @@ out: gf_boolean_t cli_cmd_validate_dumpoption(const char *arg, char **option) { - char *opwords[] = {"all", "nfs", "mem", "iobuf", "callpool", - "priv", "fd", "inode", "history", "inodectx", - "fdctx", "quotad", NULL}; + static char *opwords[] = {"all", "nfs", "mem", "iobuf", "callpool", + "priv", "fd", "inode", "history", "inodectx", + "fdctx", "quotad", NULL}; char *w = NULL; w = str_getunamb(arg, opwords); @@ -5226,24 +5229,25 @@ cli_cmd_snapshot_parse(const char **words, int wordcount, dict_t **options, dict_t *dict = NULL; gf1_cli_snapshot type = GF_SNAP_OPTION_TYPE_NONE; char *w = NULL; - char *opwords[] = {"create", "delete", "restore", "activate", - "deactivate", "list", "status", "config", - "info", "clone", NULL}; - char *invalid_snapnames[] = {"description", "force", "volume", "all", NULL}; - char *invalid_volnames[] = {"volume", - "type", - "subvolumes", - "option", - "end-volume", - "all", - "volume_not_in_ring", - "description", - "force", - "snap-max-hard-limit", - "snap-max-soft-limit", - "auto-delete", - "activate-on-create", - NULL}; + static char *opwords[] = {"create", "delete", "restore", "activate", + "deactivate", "list", "status", "config", + "info", "clone", NULL}; + static char *invalid_snapnames[] = {"description", "force", "volume", "all", + NULL}; + static char *invalid_volnames[] = {"volume", + "type", + "subvolumes", + "option", + "end-volume", + "all", + "volume_not_in_ring", + "description", + "force", + "snap-max-hard-limit", + "snap-max-soft-limit", + "auto-delete", + "activate-on-create", + NULL}; GF_ASSERT(words); GF_ASSERT(options); @@ -5563,13 +5567,14 @@ cli_cmd_bitrot_parse(const char **words, int wordcount, dict_t **options) int32_t ret = -1; char *w = NULL; char *volname = NULL; - char *opwords[] = { + static char *opwords[] = { "enable", "disable", "scrub-throttle", "scrub-frequency", "scrub", "signing-time", NULL}; - char *scrub_throt_values[] = {"lazy", "normal", "aggressive", NULL}; - char *scrub_freq_values[] = {"hourly", "daily", "weekly", "biweekly", - "monthly", "minute", NULL}; - char *scrub_values[] = {"pause", "resume", "status", "ondemand", NULL}; + static char *scrub_throt_values[] = {"lazy", "normal", "aggressive", NULL}; + static char *scrub_freq_values[] = { + "hourly", "daily", "weekly", "biweekly", "monthly", "minute", NULL}; + static char *scrub_values[] = {"pause", "resume", "status", "ondemand", + NULL}; dict_t *dict = NULL; gf_bitrot_type type = GF_BITROT_OPTION_TYPE_NONE; int32_t expiry_time = 0; @@ -5791,7 +5796,7 @@ cli_cmd_ganesha_parse(struct cli_state *state, const char **words, char *key = NULL; char *value = NULL; char *w = NULL; - char *opwords[] = {"enable", "disable", NULL}; + static char *opwords[] = {"enable", "disable", NULL}; const char *question = NULL; gf_answer_t answer = GF_ANSWER_NO; diff --git a/cli/src/cli-cmd-system.c b/cli/src/cli-cmd-system.c index a0e6b3e59e9..d5732630582 100644 --- a/cli/src/cli-cmd-system.c +++ b/cli/src/cli-cmd-system.c @@ -401,7 +401,7 @@ out: return ret; } -struct cli_cmd cli_system_cmds[] = { +static struct cli_cmd cli_system_cmds[] = { {"system:: getspec ", cli_cmd_getspec_cbk, "fetch the volume file for the volume "}, diff --git a/cli/src/cli-rpc-ops.c b/cli/src/cli-rpc-ops.c index f3228448cb3..5330ac340c6 100644 --- a/cli/src/cli-rpc-ops.c +++ b/cli/src/cli-rpc-ops.c @@ -5079,22 +5079,22 @@ gf_cli_gsync_status_output(dict_t *dict, gf_boolean_t is_detail) char errmsg[1024] = ""; char *master = NULL; char *slave = NULL; - char *title_values[] = {"MASTER NODE", - "MASTER VOL", - "MASTER BRICK", - "SLAVE USER", - "SLAVE", - "SLAVE NODE", - "STATUS", - "CRAWL STATUS", - "LAST_SYNCED", - "ENTRY", - "DATA", - "META", - "FAILURES", - "CHECKPOINT TIME", - "CHECKPOINT COMPLETED", - "CHECKPOINT COMPLETION TIME"}; + static char *title_values[] = {"MASTER NODE", + "MASTER VOL", + "MASTER BRICK", + "SLAVE USER", + "SLAVE", + "SLAVE NODE", + "STATUS", + "CRAWL STATUS", + "LAST_SYNCED", + "ENTRY", + "DATA", + "META", + "FAILURES", + "CHECKPOINT TIME", + "CHECKPOINT COMPLETED", + "CHECKPOINT COMPLETION TIME"}; gf_gsync_status_t **sts_vals = NULL; /* Checks if any session is active or not */ diff --git a/cli/src/cli-xml-output.c b/cli/src/cli-xml-output.c index d7b998197ea..5f33aa9e0a3 100644 --- a/cli/src/cli-xml-output.c +++ b/cli/src/cli-xml-output.c @@ -3580,20 +3580,21 @@ cli_xml_output_vol_gsync_status(dict_t *dict, xmlTextWriterPtr writer) char *volume_next = NULL; char *slave = NULL; char *slave_next = NULL; - char *title_values[] = {"master_node", "", "master_brick", "slave_user", - "slave", "slave_node", "status", "crawl_status", - /* last_synced */ - "", "entry", "data", "meta", "failures", - /* checkpoint_time */ - "", "checkpoint_completed", - /* checkpoint_completion_time */ - "", "master_node_uuid", - /* last_synced_utc */ - "last_synced", - /* checkpoint_time_utc */ - "checkpoint_time", - /* checkpoint_completion_time_utc */ - "checkpoint_completion_time"}; + static const char *title_values[] = { + "master_node", "", "master_brick", "slave_user", "slave", "slave_node", + "status", "crawl_status", + /* last_synced */ + "", "entry", "data", "meta", "failures", + /* checkpoint_time */ + "", "checkpoint_completed", + /* checkpoint_completion_time */ + "", "master_node_uuid", + /* last_synced_utc */ + "last_synced", + /* checkpoint_time_utc */ + "checkpoint_time", + /* checkpoint_completion_time_utc */ + "checkpoint_completion_time"}; GF_ASSERT(dict); -- cgit