FD.io VPP  v20.05.1-6-gf53edbc3b
Vector Packet Processing
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
init.c File Reference

Init function ordering and execution implementation Topological sort for all classes of init functions, and a relatively simple API routine to invoke them. More...

+ Include dependency graph for init.c:

Go to the source code of this file.

Functions

static int comma_split (u8 *s, u8 **a, u8 **b)
 
clib_error_tvlib_sort_init_exit_functions (_vlib_init_function_list_elt_t **head)
 Topological sorter for init function chains. More...
 
**and **static clib_error_tinit_runs_first (vlib_main_t *vm) *
 
**The first form will [most likely] call init_runs_next on the *spot The second form means that init_runs_first runs before possibly much earlier in the sequence **Please DO NOT construct sets of init functions where A before B *actually means A *right before *B It s not necessary simply combine *A and B and it leads to hugely annoying debugging exercises *static clib_error_tcall_init_exit_functions_internal (vlib_main_t *vm, _vlib_init_function_list_elt_t **headp, int call_once, int do_sort)
 
clib_error_tvlib_call_init_exit_functions (vlib_main_t *vm, _vlib_init_function_list_elt_t **headp, int call_once)
 
clib_error_tvlib_call_init_exit_functions_no_sort (vlib_main_t *vm, _vlib_init_function_list_elt_t **headp, int call_once)
 
clib_error_tvlib_call_all_init_functions (vlib_main_t *vm)
 
clib_error_tvlib_call_all_main_loop_enter_functions (vlib_main_t *vm)
 
clib_error_tvlib_call_all_main_loop_exit_functions (vlib_main_t *vm)
 
clib_error_tvlib_call_all_config_functions (vlib_main_t *vm, unformat_input_t *input, int is_early)
 
void vlib_init_dump (void)
 
static clib_error_tshow_init_function_command_fn (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
 

Variables

**The first form will [most likely] call init_runs_next on the *spot The second form means that init_runs_first runs before * init_runs_next
 
static vlib_cli_command_t show_init_function
 (constructor) VLIB_CLI_COMMAND (show_init_function) More...
 

Detailed Description

Init function ordering and execution implementation Topological sort for all classes of init functions, and a relatively simple API routine to invoke them.

Definition in file init.c.

Function Documentation

◆ call_init_exit_functions_internal()

* * The first form will [most likely] call init_runs_next on the* spot The second form means that init_runs_first runs before possibly much earlier in the sequence* * Please DO NOT construct sets of init functions where A before B* actually means A* right before* B It s not necessary simply combine* A and B and it leads to hugely annoying debugging exercises* static clib_error_t* call_init_exit_functions_internal ( vlib_main_t vm,
_vlib_init_function_list_elt_t **  headp,
int  call_once,
int  do_sort 
)
inlinestatic

Definition at line 333 of file init.c.

◆ comma_split()

static int comma_split ( u8 s,
u8 **  a,
u8 **  b 
)
static

Definition at line 53 of file init.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ init_runs_first()

* * and* * static clib_error_t* init_runs_first ( vlib_main_t vm)
static

Definition at line 314 of file init.c.

◆ show_init_function_command_fn()

static clib_error_t* show_init_function_command_fn ( vlib_main_t vm,
unformat_input_t input,
vlib_cli_command_t cmd 
)
static

Definition at line 491 of file init.c.

◆ vlib_call_all_config_functions()

clib_error_t* vlib_call_all_config_functions ( vlib_main_t vm,
unformat_input_t input,
int  is_early 
)

Definition at line 405 of file init.c.

+ Here is the caller graph for this function:

◆ vlib_call_all_init_functions()

clib_error_t* vlib_call_all_init_functions ( vlib_main_t vm)

Definition at line 378 of file init.c.

+ Here is the caller graph for this function:

◆ vlib_call_all_main_loop_enter_functions()

clib_error_t* vlib_call_all_main_loop_enter_functions ( vlib_main_t vm)

Definition at line 391 of file init.c.

◆ vlib_call_all_main_loop_exit_functions()

clib_error_t* vlib_call_all_main_loop_exit_functions ( vlib_main_t vm)

Definition at line 398 of file init.c.

◆ vlib_call_init_exit_functions()

clib_error_t* vlib_call_init_exit_functions ( vlib_main_t vm,
_vlib_init_function_list_elt_t **  headp,
int  call_once 
)

Definition at line 360 of file init.c.

+ Here is the caller graph for this function:

◆ vlib_call_init_exit_functions_no_sort()

clib_error_t* vlib_call_init_exit_functions_no_sort ( vlib_main_t vm,
_vlib_init_function_list_elt_t **  headp,
int  call_once 
)

Definition at line 369 of file init.c.

+ Here is the caller graph for this function:

◆ vlib_init_dump()

void vlib_init_dump ( void  )

Definition at line 474 of file init.c.

◆ vlib_sort_init_exit_functions()

clib_error_t* vlib_sort_init_exit_functions ( _vlib_init_function_list_elt_t **  head)

Topological sorter for init function chains.

Parameters
head[in/out] address of the listhead to be sorted
Returns
0 on success, otherwise a clib_error_t *.

Definition at line 76 of file init.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Variable Documentation

◆ init_runs_next

* * The first form will [most likely] call init_runs_next on the* spot The second form means that init_runs_first runs before* init_runs_next

Definition at line 325 of file init.c.

◆ show_init_function

vlib_cli_command_t show_init_function
static
Initial value:
= {
.path = "show init-function",
.short_help = "show init-function [init | enter | exit][verbose [nn]]",
}
static clib_error_t * show_init_function_command_fn(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
Definition: init.c:491

(constructor) VLIB_CLI_COMMAND (show_init_function)

Definition at line 663 of file init.c.