libosmovty 1.10.0.57-8972
Osmocom VTY library
|
CPU Scheduling related VTY API. More...
Files | |
file | tdef_vty.h |
API to configure osmo_tdef Tnnn timers from VTY configuration. | |
file | cpu_sched_vty.c |
Implementation to CPU / Threading / Scheduler properties from VTY configuration. | |
file | tdef_vty.c |
Implementation to configure osmo_tdef Tnnn timers from VTY configuration. | |
Data Structures | |
struct | cpu_affinity_it |
struct | sched_vty_opts |
Macros | |
#define | OSMO_TDEF_VTY_ARG_T "TNNNN" |
#define | OSMO_TDEF_VTY_DOC_T |
#define | OSMO_TDEF_VTY_ARG_T_OPTIONAL "[" OSMO_TDEF_VTY_ARG_T "]" |
#define | OSMO_TDEF_VTY_ARG_VAL "(<0-2147483647>|default)" |
#define | OSMO_TDEF_VTY_DOC_VAL "New timer value\n" "Set to default timer value\n" |
#define | OSMO_TDEF_VTY_ARG_VAL_OPTIONAL "[" OSMO_TDEF_VTY_ARG_VAL "]" |
#define | OSMO_TDEF_VTY_ARG_SET OSMO_TDEF_VTY_ARG_T " " OSMO_TDEF_VTY_ARG_VAL |
#define | OSMO_TDEF_VTY_DOC_SET OSMO_TDEF_VTY_DOC_T OSMO_TDEF_VTY_DOC_VAL |
#define | OSMO_TDEF_VTY_ARG_SET_OPTIONAL OSMO_TDEF_VTY_ARG_T_OPTIONAL " " OSMO_TDEF_VTY_ARG_VAL_OPTIONAL |
Enumerations | |
enum | sched_vty_thread_id { SCHED_VTY_THREAD_SELF , SCHED_VTY_THREAD_ALL , SCHED_VTY_THREAD_ID , SCHED_VTY_THREAD_NAME , SCHED_VTY_THREAD_UNKNOWN } |
Functions | |
int | osmo_tdef_vty_set_cmd (struct vty *vty, struct osmo_tdef *tdefs, const char **args) |
Apply a timer configuration from VTY argument strings. More... | |
int | osmo_tdef_vty_show_cmd (struct vty *vty, struct osmo_tdef *tdefs, const char *T_arg, const char *prefix_fmt,...) |
Output one or all timers to the VTY, as for a VTY command like 'show timer [TNNNN]'. More... | |
void | osmo_tdef_vty_write (struct vty *vty, struct osmo_tdef *tdefs, const char *prefix_fmt,...) |
Write current timer configuration arguments to the vty. More... | |
void | osmo_tdef_vty_out_one (struct vty *vty, struct osmo_tdef *t, const char *prefix_fmt,...) |
Write to VTY the current status of one timer. More... | |
void | osmo_tdef_vty_out_all (struct vty *vty, struct osmo_tdef *tdefs, const char *prefix_fmt,...) |
Write to VTY the current status of all given timers. More... | |
void | osmo_tdef_vty_out_one_va (struct vty *vty, struct osmo_tdef *t, const char *prefix_fmt, va_list va) |
Write to VTY the current status of one timer. More... | |
void | osmo_tdef_vty_out_all_va (struct vty *vty, struct osmo_tdef *tdefs, const char *prefix_fmt, va_list va) |
Write to VTY the current status of all given timers. More... | |
struct osmo_tdef * | osmo_tdef_vty_parse_T_arg (struct vty *vty, struct osmo_tdef *tdefs, const char *T_str) |
Parse an argument like "1234", "T1234", "t1234", or "X1234", "x1234", as from OSMO_TDEF_VTY_ARG_T. More... | |
unsigned long | osmo_tdef_vty_parse_val_arg (const char *val_arg, unsigned long default_val) |
Parse an argument of the form "(0-2147483647|default)", as from OSMO_TDEF_VTY_ARG_VAL. More... | |
void | osmo_tdef_vty_groups_init (unsigned int parent_cfg_node, struct osmo_tdef_group *groups) |
Convenience implementation for keeping a fixed set of timer groups in a program. More... | |
void | osmo_tdef_vty_groups_write (struct vty *vty, const char *indent) |
Write the global osmo_tdef_group configuration to VTY, as previously passed to osmo_tdef_vty_groups_init(). More... | |
static int | get_num_cpus (void) |
static int | parse_cpu_hex_mask (const char *str, cpu_set_t *cpuset, size_t cpuset_size) |
static int | generate_cpu_hex_mask (char *str, size_t str_buf_size, cpu_set_t *cpuset, size_t cpuset_size) |
static bool | proc_tid_exists (pid_t tid) |
static bool | proc_name_exists (const char *name, pid_t *res_pid) |
static enum sched_vty_thread_id | procname2pid (pid_t *res_pid, const char *str, bool applynow) |
static int | my_sched_setaffinity (enum sched_vty_thread_id tid_type, pid_t pid, cpu_set_t *cpuset, size_t cpuset_size) |
DEFUN_ATTR (cfg_sched_cpu_affinity, cfg_sched_cpu_affinity_cmd, "cpu-affinity (self|all|<0-4294967295>|THREADNAME) CPUHEXMASK [delay]", "Set CPU affinity mask on a (group of) thread(s)\n" "Set CPU affinity mask on thread running the VTY\n" "Set CPU affinity mask on all process' threads\n" "Set CPU affinity mask on a thread with specified PID\n" "Set CPU affinity mask on a thread with specified thread name\n" "CPU affinity mask\n" "If set, delay applying the affinity mask now and let the app handle it at a later point\n", CMD_ATTR_IMMEDIATE) | |
static int | set_sched_rr (unsigned int prio) |
DEFUN_ATTR (cfg_sched_policy, cfg_sched_policy_cmd, "policy rr <1-32>", "Set the scheduling policy to use for the process\n" "Use the SCHED_RR real-time scheduling algorithm\n" "Set the SCHED_RR real-time priority\n", CMD_ATTR_IMMEDIATE) | |
DEFUN (cfg_sched, cfg_sched_cmd, "cpu-sched", "Configure CPU Scheduler related settings") | |
DEFUN (show_sched_threads, show_sched_threads_cmd, "show cpu-sched threads", SHOW_STR "Show Sched section information\n" "Show information about running threads)\n") | |
static int | config_write_sched (struct vty *vty) |
int | osmo_cpu_sched_vty_init (void *tall_ctx) |
Initialize sched VTY nodes. More... | |
int | osmo_cpu_sched_vty_apply_localthread (void) |
Apply cpu-affinity on calling thread based on VTY configuration. More... | |
osmo_tdef_groups_for_each (g, global_tdef_groups) | |
if (argc< 3) return show_timer(self | |
return | osmo_tdef_vty_set_cmd (vty, tdefs, timer_args) |
static char * | add_group_args (void *talloc_ctx, char *dest) |
static char * | add_group_docs (void *talloc_ctx, char *dest) |
static char * | timer_command_string (const char *prefix, const char *suffix) |
static char * | timer_doc_string (const char *prefix, const char *suffix) |
Variables | |
static struct sched_vty_opts * | sched_vty_opts |
static struct cmd_node | sched_node |
static struct osmo_tdef_group * | global_tdef_groups |
Singleton Tnnn groups definition as set by osmo_tdef_vty_groups_init(). More... | |
const char * | T_arg = argc > 1 ? argv[1] : NULL |
struct osmo_tdef_group * | g = NULL |
return | CMD_SUCCESS |
const char ** | timer_args |
struct osmo_tdef * | tdefs = NULL |
vty | |
argc | |
argv | |
group_arg = argv[0] | |
CPU Scheduling related VTY API.
VTY API for Tnnn timer configuration.
#define OSMO_TDEF_VTY_ARG_SET OSMO_TDEF_VTY_ARG_T " " OSMO_TDEF_VTY_ARG_VAL |
#define OSMO_TDEF_VTY_ARG_SET_OPTIONAL OSMO_TDEF_VTY_ARG_T_OPTIONAL " " OSMO_TDEF_VTY_ARG_VAL_OPTIONAL |
#define OSMO_TDEF_VTY_ARG_T "TNNNN" |
#define OSMO_TDEF_VTY_ARG_T_OPTIONAL "[" OSMO_TDEF_VTY_ARG_T "]" |
#define OSMO_TDEF_VTY_ARG_VAL "(<0-2147483647>|default)" |
#define OSMO_TDEF_VTY_ARG_VAL_OPTIONAL "[" OSMO_TDEF_VTY_ARG_VAL "]" |
#define OSMO_TDEF_VTY_DOC_SET OSMO_TDEF_VTY_DOC_T OSMO_TDEF_VTY_DOC_VAL |
#define OSMO_TDEF_VTY_DOC_T |
enum sched_vty_thread_id |
|
static |
References g, global_tdef_groups, osmo_tdef_group::name, osmo_talloc_asprintf, and osmo_tdef_groups_for_each().
Referenced by timer_command_string().
|
static |
References osmo_tdef_group::desc, g, global_tdef_groups, osmo_talloc_asprintf, and osmo_tdef_groups_for_each().
Referenced by timer_doc_string().
|
static |
References cpu_affinity_it::bufname, CMD_SUCCESS, sched_vty_opts::cpu_affinity_li, cpu_affinity_it::cpuset, cpu_affinity_it::cpuset_size, cpu_affinity_it::delay, entry, generate_cpu_hex_mask(), llist_empty(), llist_for_each_entry, OSMO_STRLCPY_ARRAY, sched_vty_opts::sched_rr_prio, VTY_NEWLINE, and vty_out().
Referenced by osmo_cpu_sched_vty_init().
DEFUN | ( | cfg_sched | , |
cfg_sched_cmd | , | ||
"cpu-sched" | , | ||
"Configure CPU Scheduler related settings" | |||
) |
References CMD_SUCCESS, vty::index, L_CPU_SCHED_NODE, and vty::node.
DEFUN | ( | show_sched_threads | , |
show_sched_threads_cmd | , | ||
"show cpu-sched threads" | , | ||
SHOW_STR "Show Sched section information\n" "Show information about running | threads | ||
) |
References CMD_SUCCESS, CMD_WARNING, entry, fd, generate_cpu_hex_mask(), get_num_cpus(), name, VTY_NEWLINE, and vty_out().
DEFUN_ATTR | ( | cfg_sched_cpu_affinity | , |
cfg_sched_cpu_affinity_cmd | , | ||
"cpu-affinity (self|all|<0-4294967295>|THREADNAME) CPUHEXMASK " | [delay], | ||
"Set CPU affinity mask on a (group of) thread(s)\n" "Set CPU affinity mask on thread running the VTY\n" "Set CPU affinity mask on all process' threads\n" "Set CPU affinity mask on a thread with specified PID\n" "Set CPU affinity mask on a thread with specified thread name\n" "CPU affinity mask\n" "If | set, | ||
delay applying the affinity mask now and let the app handle it at a later point\n" | , | ||
CMD_ATTR_IMMEDIATE | |||
) |
References argc, argv, cpu_affinity_it::bufname, CMD_SUCCESS, CMD_WARNING, sched_vty_opts::cpu_affinity_li, sched_vty_opts::cpu_affinity_li_mutex, cpu_affinity_it::cpuset, cpu_affinity_it::cpuset_size, cpu_affinity_it::delay, entry, cpu_affinity_it::entry, get_num_cpus(), llist_add_tail(), llist_del(), llist_for_each_entry_safe, my_sched_setaffinity(), OSMO_STRLCPY_ARRAY, parse_cpu_hex_mask(), pid, procname2pid(), SCHED_VTY_THREAD_ALL, SCHED_VTY_THREAD_ID, SCHED_VTY_THREAD_NAME, SCHED_VTY_THREAD_SELF, SCHED_VTY_THREAD_UNKNOWN, sched_vty_opts::tall_ctx, cpu_affinity_it::tid_type, VTY_NEWLINE, and vty_out().
DEFUN_ATTR | ( | cfg_sched_policy | , |
cfg_sched_policy_cmd | , | ||
"policy rr <1-32>" | , | ||
"Set the scheduling policy to use for the process\n" "Use the SCHED_RR real-time scheduling algorithm\n" "Set the SCHED_RR real-time priority\n" | , | ||
CMD_ATTR_IMMEDIATE | |||
) |
References argv, CMD_SUCCESS, CMD_WARNING, sched_vty_opts::sched_rr_prio, set_sched_rr(), VTY_NEWLINE, and vty_out().
|
static |
Referenced by config_write_sched(), DEFUN(), my_sched_setaffinity(), and osmo_cpu_sched_vty_apply_localthread().
|
static |
References DLGLOBAL, LOGL_ERROR, and LOGP.
Referenced by DEFUN(), DEFUN_ATTR(), and osmo_cpu_sched_vty_init().
if | ( | ) |
|
static |
References DLGLOBAL, entry, generate_cpu_hex_mask(), LOGL_NOTICE, LOGP, pid, and SCHED_VTY_THREAD_ALL.
Referenced by DEFUN_ATTR(), and osmo_cpu_sched_vty_apply_localthread().
int osmo_cpu_sched_vty_apply_localthread | ( | void | ) |
Apply cpu-affinity on calling thread based on VTY configuration.
References cpu_affinity_it::bufname, sched_vty_opts::cpu_affinity_li, sched_vty_opts::cpu_affinity_li_mutex, cpu_affinity_it::cpuset, cpu_affinity_it::cpuset_size, DLGLOBAL, entry, generate_cpu_hex_mask(), llist_for_each_entry, LOGL_FATAL, LOGP, my_sched_setaffinity(), name, OSMO_ASSERT, SCHED_VTY_THREAD_ALL, SCHED_VTY_THREAD_NAME, SCHED_VTY_THREAD_SELF, and cpu_affinity_it::tid_type.
int osmo_cpu_sched_vty_init | ( | void * | tall_ctx | ) |
Initialize sched VTY nodes.
[in] | tall_ctx | Talloc context to use internally by vty_sched subsystem. |
References CONFIG_NODE, config_write_sched(), sched_vty_opts::cpu_affinity_li, sched_vty_opts::cpu_affinity_li_mutex, get_num_cpus(), INIT_LLIST_HEAD, install_lib_element(), install_lib_element_ve(), install_node(), L_CPU_SCHED_NODE, OSMO_ASSERT, sched_node, and sched_vty_opts::tall_ctx.
osmo_tdef_groups_for_each | ( | g | , |
global_tdef_groups | |||
) |
References g, group_arg, osmo_tdef_group::name, osmo_str_startswith(), osmo_tdef_vty_show_cmd(), T_arg, and osmo_tdef_group::tdefs.
Referenced by add_group_args(), add_group_docs(), osmo_tdef_vty_groups_init(), and osmo_tdef_vty_groups_write().
void osmo_tdef_vty_groups_init | ( | unsigned int | parent_cfg_node, |
struct osmo_tdef_group * | groups | ||
) |
Convenience implementation for keeping a fixed set of timer groups in a program.
Install a 'timer [(group|names|...)] [TNNN] [(<val>|default)]' command under the given parent_node, and install a 'show timer...' command on VIEW_NODE and ENABLE_NODE. For a usage example, see tdef_test_config_root::c. The given timer definitions group is stored in a global pointer, so this can be done only once per main() scope. It would also be possible to have distinct timer groups on separate VTY subnodes, with a "manual" implementation, but not with this API.
[in] | parent_cfg_node | VTY node at which to add the timer configuration commands, e.g. CONFIG_NODE. |
[in] | groups | Global timer groups definition. |
References g, global_tdef_groups, install_lib_element(), install_lib_element_ve(), OSMO_ASSERT, osmo_tdef_groups_for_each(), OSMO_TDEF_VTY_ARG_SET_OPTIONAL, OSMO_TDEF_VTY_ARG_T_OPTIONAL, OSMO_TDEF_VTY_DOC_SET, OSMO_TDEF_VTY_DOC_T, osmo_tdefs_reset(), SHOW_STR, osmo_tdef_group::tdefs, timer_command_string(), and timer_doc_string().
void osmo_tdef_vty_groups_write | ( | struct vty * | vty, |
const char * | indent | ||
) |
Write the global osmo_tdef_group configuration to VTY, as previously passed to osmo_tdef_vty_groups_init().
[in] | vty | VTY context. |
[in] | indent | String to print before each line. |
References g, global_tdef_groups, osmo_tdef_group::name, osmo_tdef_groups_for_each(), osmo_tdef_vty_write(), and osmo_tdef_group::tdefs.
void osmo_tdef_vty_out_all | ( | struct vty * | vty, |
struct osmo_tdef * | tdefs, | ||
const char * | prefix_fmt, | ||
... | |||
) |
Write to VTY the current status of all given timers.
[in] | vty | VTY context for vty_out(). |
[in] | tdefs | Array of timers to print, ended with a fully zero-initialized entry. |
[in] | prefix_fmt | Arbitrary string to start each line with, with variable printf like arguments. |
References osmo_tdef_vty_out_all_va(), and tdefs.
void osmo_tdef_vty_out_all_va | ( | struct vty * | vty, |
struct osmo_tdef * | tdefs, | ||
const char * | prefix_fmt, | ||
va_list | va | ||
) |
Write to VTY the current status of all given timers.
[in] | vty | VTY context for vty_out(). |
[in] | tdefs | Array of timers to print, ended with a fully zero-initialized entry. |
[in] | prefix_fmt | Arbitrary string to start each line with, with variable vprintf like arguments. |
[in] | va | va_list instance. As always, call va_start() before, and va_end() after this call. |
References osmo_tdef_for_each, osmo_tdef_vty_out_one_va(), tdefs, VTY_NEWLINE, and vty_out().
Referenced by osmo_tdef_vty_out_all(), and osmo_tdef_vty_show_cmd().
Write to VTY the current status of one timer.
[in] | vty | VTY context for vty_out(). |
[in] | t | The timer to print. |
[in] | prefix_fmt | Arbitrary string to start each line with, with variable printf like arguments. |
References osmo_tdef_vty_out_one_va().
void osmo_tdef_vty_out_one_va | ( | struct vty * | vty, |
struct osmo_tdef * | t, | ||
const char * | prefix_fmt, | ||
va_list | va | ||
) |
Write to VTY the current status of one timer.
[in] | vty | VTY context for vty_out(). |
[in] | t | The timer to print. |
[in] | prefix_fmt | Arbitrary string to start each line with, with variable vprintf like arguments. |
[in] | va | va_list instance. As always, call va_start() before, and va_end() after this call. |
References osmo_tdef::default_val, osmo_tdef::desc, osmo_tdef::max_val, osmo_tdef::min_val, OSMO_T_FMT, OSMO_T_FMT_ARGS, OSMO_TDEF_CUSTOM, osmo_tdef_range_str_buf(), osmo_tdef_unit_name(), osmo_tdef::T, osmo_tdef::unit, osmo_tdef::val, VTY_NEWLINE, vty_out(), and vty_out_va().
Referenced by osmo_tdef_vty_out_all_va(), osmo_tdef_vty_out_one(), and osmo_tdef_vty_show_cmd().
struct osmo_tdef * osmo_tdef_vty_parse_T_arg | ( | struct vty * | vty, |
struct osmo_tdef * | tdefs, | ||
const char * | T_str | ||
) |
Parse an argument like "1234", "T1234", "t1234", or "X1234", "x1234", as from OSMO_TDEF_VTY_ARG_T.
[in] | vty | VTY context for vty_out() of error messages. |
[in] | tdefs | Array of timer definitions to look up T timer. |
[in] | T_str | Argument string. It is not validated, expected to be checked by VTY input. |
References l, osmo_str_to_int(), OSMO_T_FMT, OSMO_T_FMT_ARGS, osmo_tdef_get_entry(), osmo_tdef::T, tdefs, VTY_NEWLINE, and vty_out().
Referenced by osmo_tdef_vty_set_cmd(), and osmo_tdef_vty_show_cmd().
unsigned long osmo_tdef_vty_parse_val_arg | ( | const char * | val_arg, |
unsigned long | default_val | ||
) |
Parse an argument of the form "(0-2147483647|default)", as from OSMO_TDEF_VTY_ARG_VAL.
[in] | val_arg | Argument string (not format checked). |
[in] | default_val | Value to return in case of val_arg being "default". |
References osmo_tdef::default_val.
Referenced by osmo_tdef_vty_set_cmd().
Apply a timer configuration from VTY argument strings.
Employ both osmo_tdef_vty_parse_T_arg() and osmo_tdef_vty_parse_val_arg() to configure a T timer in an array of tdefs. Evaluate two arguments, a "T1234" argument and a "(0-2147483647|default)" argument, as from OSMO_TDEF_VTY_ARGS. If the T timer given in the first argument is found in tdefs, set it to the value given in the second argument.
[in] | vty | VTY context for vty_out() of error messages. |
[in] | tdefs | Array of timer definitions to look up T timer. |
[in] | args | Array of string arguments like { "T1234", "23" }. |
References CMD_SUCCESS, CMD_WARNING, osmo_tdef::default_val, OSMO_T_FMT, OSMO_T_FMT_ARGS, osmo_tdef_range_str_buf(), osmo_tdef_val_in_range(), osmo_tdef_vty_parse_T_arg(), osmo_tdef_vty_parse_val_arg(), osmo_tdef::T, T_arg, tdefs, osmo_tdef::val, VTY_NEWLINE, and vty_out().
return osmo_tdef_vty_set_cmd | ( | vty | , |
tdefs | , | ||
timer_args | |||
) |
int osmo_tdef_vty_show_cmd | ( | struct vty * | vty, |
struct osmo_tdef * | tdefs, | ||
const char * | T_arg, | ||
const char * | prefix_fmt, | ||
... | |||
) |
Output one or all timers to the VTY, as for a VTY command like 'show timer [TNNNN]'.
If T_arg is NULL, print all timers in tdefs to the VTY. If T_arg is not NULL, employ osmo_tdef_vty_parse_T_arg() to select one timer from tdefs and print only that to the VTY.
[in] | vty | VTY context for vty_out() of error messages. |
[in] | tdefs | Array of timer definitions. |
[in] | T_arg | Argument string like "T1234", or NULL. |
[in] | prefix_fmt | Arbitrary string to start each line with, with variable printf like arguments. |
References CMD_SUCCESS, CMD_WARNING, osmo_tdef_vty_out_all_va(), osmo_tdef_vty_out_one_va(), osmo_tdef_vty_parse_T_arg(), T_arg, and tdefs.
Referenced by osmo_tdef_groups_for_each().
void osmo_tdef_vty_write | ( | struct vty * | vty, |
struct osmo_tdef * | tdefs, | ||
const char * | prefix_fmt, | ||
... | |||
) |
Write current timer configuration arguments to the vty.
Skip all entries that reflect their default value. The passed prefix string must contain both necessary indent and the VTY command the specific implementation is using. See tdef_vty_config_subnode_test.c and tdef_vty_dynamic_test.c for examples.
[in] | vty | VTY context. |
[in] | tdefs | Array of timers to print, ended with a fully zero-initialized entry. |
[in] | prefix_fmt | Arbitrary string to start each line with, with variable printf like arguments. |
References osmo_tdef::default_val, OSMO_T_FMT, OSMO_T_FMT_ARGS, osmo_tdef_for_each, osmo_tdef::T, tdefs, osmo_tdef::val, VTY_NEWLINE, vty_out(), and vty_out_va().
Referenced by osmo_tdef_vty_groups_write().
|
static |
Referenced by DEFUN_ATTR().
|
static |
References entry, fd, and name.
Referenced by procname2pid().
|
static |
References entry.
Referenced by procname2pid().
|
static |
References len(), osmo_str_to_int64(), proc_name_exists(), proc_tid_exists(), SCHED_VTY_THREAD_ALL, SCHED_VTY_THREAD_ID, SCHED_VTY_THREAD_NAME, SCHED_VTY_THREAD_SELF, and SCHED_VTY_THREAD_UNKNOWN.
Referenced by DEFUN_ATTR().
|
static |
References DLGLOBAL, LOGL_ERROR, LOGL_NOTICE, and LOGP.
Referenced by DEFUN_ATTR().
|
static |
References add_group_args(), osmo_talloc_asprintf, and tall_vty_cmd_ctx.
Referenced by osmo_tdef_vty_groups_init().
|
static |
References add_group_docs(), osmo_talloc_asprintf, and tall_vty_cmd_ctx.
Referenced by osmo_tdef_vty_groups_init().
argc |
Referenced by ALIAS(), argv_concat(), cmd_execute_command_real(), cmd_execute_command_strict(), DEFUN(), DEFUN_ATTR(), DEFUN_HIDDEN(), and gDEFUN().
argv |
Referenced by ALIAS(), argv_concat(), cmd_execute_command_real(), cmd_execute_command_strict(), DEFUN(), DEFUN_ATTR(), DEFUN_HIDDEN(), and gDEFUN().
return CMD_SUCCESS |
Referenced by osmo_tdef_vty_set_cmd(), and osmo_tdef_vty_show_cmd().
struct osmo_tdef_group * g = NULL |
|
static |
Singleton Tnnn groups definition as set by osmo_tdef_vty_groups_init().
Referenced by add_group_args(), add_group_docs(), osmo_tdef_vty_groups_init(), and osmo_tdef_vty_groups_write().
group_arg = argv[0] |
Referenced by osmo_tdef_groups_for_each().
|
static |
Referenced by osmo_cpu_sched_vty_init().
|
static |
Referenced by osmo_tdef_groups_for_each(), osmo_tdef_vty_set_cmd(), and osmo_tdef_vty_show_cmd().
struct osmo_tdef* tdefs = NULL |