X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvlib%2Fglobal_funcs.h;h=3c0fdb78364477d2d851821bfa97d5292ea3d975;hb=1cfac4e6e4b396c4c9faaa4115b6c4940204aa3f;hp=f51ec381d7e6cc8c3b66d9772db2dfb056ad062f;hpb=80f54e20270ed0628ee725e3e3c515731a0188f2;p=vpp.git diff --git a/src/vlib/global_funcs.h b/src/vlib/global_funcs.h index f51ec381d7e..3c0fdb78364 100644 --- a/src/vlib/global_funcs.h +++ b/src/vlib/global_funcs.h @@ -19,21 +19,52 @@ #ifndef included_vlib_global_funcs_h_ #define included_vlib_global_funcs_h_ +always_inline u32 +vlib_get_n_threads () +{ + return vec_len (vlib_global_main.vlib_mains); +} + always_inline vlib_main_t * -vlib_get_main (void) +vlib_get_main_by_index (u32 thread_index) { vlib_main_t *vm; - vm = vlib_mains[os_get_cpu_number ()]; + vm = vlib_global_main.vlib_mains[thread_index]; ASSERT (vm); return vm; } +always_inline vlib_main_t * +vlib_get_main (void) +{ + return vlib_get_main_by_index (vlib_get_thread_index ()); +} + +always_inline vlib_main_t * +vlib_get_first_main (void) +{ + return vlib_get_main_by_index (0); +} + +always_inline vlib_global_main_t * +vlib_get_global_main (void) +{ + return &vlib_global_main; +} + always_inline vlib_thread_main_t * vlib_get_thread_main () { return &vlib_thread_main; } +always_inline elog_main_t * +vlib_get_elog_main () +{ + vlib_global_main_t *vgm = vlib_get_global_main (); + return &vgm->elog_main; +} + #endif /* included_vlib_global_funcs_h_ */ /*