static int on_callbacks(const char *name, const char *value, enum env_op op, int flags) { /* remove all callbacks */ hwalk_r(&env_htab, clear_callback); /* configure any static callback bindings */ env_attr_walk(ENV_CALLBACK_LIST_STATIC, set_callback, NULL); /* configure any dynamic callback bindings */ env_attr_walk(value, set_callback, NULL); return 0; }
static int on_flags(const char *name, const char *value, enum env_op op, int flags) { /* remove all flags */ hwalk_r(&env_htab, clear_flags); /* configure any static flags */ env_attr_walk(ENV_FLAGS_LIST_STATIC, set_flags, NULL); /* configure any dynamic flags */ env_attr_walk(value, set_flags, NULL); return 0; }
/* * Print the callbacks available and what they are bound to */ int do_env_callback(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) { struct env_clbk_tbl *clbkp; int i; int num_callbacks; /* Print the available callbacks */ puts("Available callbacks:\n"); puts("\tCallback Name\n"); puts("\t-------------\n"); num_callbacks = ll_entry_count(struct env_clbk_tbl, env_clbk); for (i = 0, clbkp = ll_entry_start(struct env_clbk_tbl, env_clbk); i < num_callbacks; i++, clbkp++) printf("\t%s\n", clbkp->name); puts("\n"); /* Print the static bindings that may exist */ puts("Static callback bindings:\n"); printf("\t%-20s %-20s\n", "Variable Name", "Callback Name"); printf("\t%-20s %-20s\n", "-------------", "-------------"); env_attr_walk(ENV_CALLBACK_LIST_STATIC, print_static_binding); puts("\n"); /* walk through each variable and print the callback if it has one */ puts("Active callback bindings:\n"); printf("\t%-20s %-20s\n", "Variable Name", "Callback Name"); printf("\t%-20s %-20s\n", "-------------", "-------------"); hwalk_r(&env_htab, print_active_callback); return 0; }
/* * Print the flags available and what variables have flags */ int do_env_flags(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) { /* Print the available variable types */ printf("Available variable type flags (position %d):\n", ENV_FLAGS_VARTYPE_LOC); puts("\tFlag\tVariable Type Name\n"); puts("\t----\t------------------\n"); env_flags_print_vartypes(); puts("\n"); /* Print the available variable access types */ printf("Available variable access flags (position %d):\n", ENV_FLAGS_VARACCESS_LOC); puts("\tFlag\tVariable Access Name\n"); puts("\t----\t--------------------\n"); env_flags_print_varaccess(); puts("\n"); /* Print the static flags that may exist */ puts("Static flags:\n"); printf("\t%-20s %-20s %-20s\n", "Variable Name", "Variable Type", "Variable Access"); printf("\t%-20s %-20s %-20s\n", "-------------", "-------------", "---------------"); env_attr_walk(ENV_FLAGS_LIST_STATIC, print_static_flags); puts("\n"); /* walk through each variable and print the flags if non-default */ puts("Active flags:\n"); printf("\t%-20s %-20s %-20s\n", "Variable Name", "Variable Type", "Variable Access"); printf("\t%-20s %-20s %-20s\n", "-------------", "-------------", "---------------"); hwalk_r(&env_htab, print_active_flags); return 0; }