vlib: split vlib_main_t into global and per-thread

Type: refactor
Change-Id: I8b273bc3bf16aa360f031f1b2692f766e5fc4613
Signed-off-by: Damjan Marion <damarion@cisco.com>
This commit is contained in:
Damjan Marion
2021-03-06 12:26:28 +01:00
parent f553a2cbbb
commit fd8deb48c7
24 changed files with 469 additions and 456 deletions

View File

@ -160,27 +160,27 @@ typedef struct vlib_cli_main_t
} vlib_cli_main_t;
#ifndef CLIB_MARCH_VARIANT
#define VLIB_CLI_COMMAND(x,...) \
__VA_ARGS__ vlib_cli_command_t x; \
static void __vlib_cli_command_registration_##x (void) \
__attribute__((__constructor__)) ; \
static void __vlib_cli_command_registration_##x (void) \
{ \
vlib_main_t * vm = vlib_get_main(); \
vlib_cli_main_t *cm = &vm->cli_main; \
x.next_cli_command = cm->cli_command_registrations; \
cm->cli_command_registrations = &x; \
} \
static void __vlib_cli_command_unregistration_##x (void) \
__attribute__((__destructor__)) ; \
static void __vlib_cli_command_unregistration_##x (void) \
{ \
vlib_main_t * vm = vlib_get_main(); \
vlib_cli_main_t *cm = &vm->cli_main; \
VLIB_REMOVE_FROM_LINKED_LIST (cm->cli_command_registrations, &x, \
next_cli_command); \
} \
__VA_ARGS__ vlib_cli_command_t x
#define VLIB_CLI_COMMAND(x, ...) \
__VA_ARGS__ vlib_cli_command_t x; \
static void __vlib_cli_command_registration_##x (void) \
__attribute__ ((__constructor__)); \
static void __vlib_cli_command_registration_##x (void) \
{ \
vlib_global_main_t *vgm = vlib_get_global_main (); \
vlib_cli_main_t *cm = &vgm->cli_main; \
x.next_cli_command = cm->cli_command_registrations; \
cm->cli_command_registrations = &x; \
} \
static void __vlib_cli_command_unregistration_##x (void) \
__attribute__ ((__destructor__)); \
static void __vlib_cli_command_unregistration_##x (void) \
{ \
vlib_global_main_t *vgm = vlib_get_global_main (); \
vlib_cli_main_t *cm = &vgm->cli_main; \
VLIB_REMOVE_FROM_LINKED_LIST (cm->cli_command_registrations, &x, \
next_cli_command); \
} \
__VA_ARGS__ vlib_cli_command_t x
#else
/* create unused pointer to silence compiler warnings and get whole
function optimized out */