Line data Source code
1 : /* 2 : * Copyright (c) 2015 Cisco and/or its affiliates. 3 : * Licensed under the Apache License, Version 2.0 (the "License"); 4 : * you may not use this file except in compliance with the License. 5 : * You may obtain a copy of the License at: 6 : * 7 : * http://www.apache.org/licenses/LICENSE-2.0 8 : * 9 : * Unless required by applicable law or agreed to in writing, software 10 : * distributed under the License is distributed on an "AS IS" BASIS, 11 : * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 : * See the License for the specific language governing permissions and 13 : * limitations under the License. 14 : */ 15 : /* 16 : * global_funcs.h: global data structure access functions 17 : */ 18 : 19 : #ifndef included_vlib_global_funcs_h_ 20 : #define included_vlib_global_funcs_h_ 21 : 22 : always_inline u32 23 4846545 : vlib_get_n_threads () 24 : { 25 4846545 : return vec_len (vlib_global_main.vlib_mains); 26 : } 27 : 28 : always_inline vlib_main_t * 29 1615795471 : vlib_get_main_by_index (u32 thread_index) 30 : { 31 : vlib_main_t *vm; 32 1615795471 : vm = vlib_global_main.vlib_mains[thread_index]; 33 1615795471 : ASSERT (vm); 34 1615795070 : return vm; 35 : } 36 : 37 : always_inline vlib_main_t * 38 20461403 : vlib_get_main (void) 39 : { 40 20461403 : return vlib_get_main_by_index (vlib_get_thread_index ()); 41 : } 42 : 43 : always_inline vlib_main_t * 44 1594778187 : vlib_get_first_main (void) 45 : { 46 1594778187 : return vlib_get_main_by_index (0); 47 : } 48 : 49 : always_inline vlib_global_main_t * 50 1600976414 : vlib_get_global_main (void) 51 : { 52 1600976414 : return &vlib_global_main; 53 : } 54 : 55 : always_inline vlib_thread_main_t * 56 697163 : vlib_get_thread_main () 57 : { 58 697163 : return &vlib_thread_main; 59 : } 60 : 61 : always_inline elog_main_t * 62 1594431801 : vlib_get_elog_main () 63 : { 64 1594431801 : vlib_global_main_t *vgm = vlib_get_global_main (); 65 1594411801 : return &vgm->elog_main; 66 : } 67 : 68 : #endif /* included_vlib_global_funcs_h_ */ 69 : 70 : /* 71 : * fd.io coding-style-patch-verification: ON 72 : * 73 : * Local Variables: 74 : * eval: (c-set-style "gnu") 75 : * End: 76 : */