ipsec: infra for selecting backends
[vpp.git] / src / vlib / threads.h
index 7de0412..0e9cba5 100644 (file)
@@ -108,7 +108,9 @@ typedef struct
   volatile u32 *node_reforks_required;
 
   long lwp;
-  int lcore_id;
+  int cpu_id;
+  int core_id;
+  int socket_id;
   pthread_t thread_id;
 } vlib_worker_thread_t;
 
@@ -270,8 +272,8 @@ typedef enum
 typedef struct
 {
   clib_error_t *(*vlib_launch_thread_cb) (void *fp, vlib_worker_thread_t * w,
-                                         unsigned lcore_id);
-  clib_error_t *(*vlib_thread_set_lcore_cb) (u32 thread, u16 lcore);
+                                         unsigned cpu_id);
+  clib_error_t *(*vlib_thread_set_lcore_cb) (u32 thread, u16 cpu);
 } vlib_thread_callbacks_t;
 
 typedef struct
@@ -412,7 +414,7 @@ vlib_worker_thread_barrier_check (void)
          ed->thread_index = thread_index;
        }
 
-      clib_smp_atomic_add (vlib_worker_threads->workers_at_barrier, 1);
+      clib_atomic_fetch_add (vlib_worker_threads->workers_at_barrier, 1);
       if (CLIB_DEBUG > 0)
        {
          vm = vlib_get_main ();
@@ -422,7 +424,7 @@ vlib_worker_thread_barrier_check (void)
        ;
       if (CLIB_DEBUG > 0)
        vm->parked_at_barrier = 0;
-      clib_smp_atomic_add (vlib_worker_threads->workers_at_barrier, -1);
+      clib_atomic_fetch_add (vlib_worker_threads->workers_at_barrier, -1);
 
       if (PREDICT_FALSE (*vlib_worker_threads->node_reforks_required))
        {
@@ -448,8 +450,8 @@ vlib_worker_thread_barrier_check (void)
            }
 
          vlib_worker_thread_node_refork ();
-         clib_smp_atomic_add (vlib_worker_threads->node_reforks_required,
-                              -1);
+         clib_atomic_fetch_add (vlib_worker_threads->node_reforks_required,
+                                -1);
          while (*vlib_worker_threads->node_reforks_required)
            ;
        }
@@ -517,7 +519,7 @@ vlib_get_frame_queue_elt (u32 frame_queue_index, u32 index)
   fq = fqm->vlib_frame_queues[index];
   ASSERT (fq);
 
-  new_tail = __sync_add_and_fetch (&fq->tail, 1);
+  new_tail = clib_atomic_add_fetch (&fq->tail, 1);
 
   /* Wait until a ring slot is available */
   while (new_tail >= fq->head_hint + fq->nelts)
@@ -595,6 +597,7 @@ vlib_process_signal_event_mt_helper (vlib_process_signal_event_mt_args_t *
                                     args);
 void vlib_rpc_call_main_thread (void *function, u8 * args, u32 size);
 
+u32 elog_global_id_for_msg_name (const char *msg_name);
 #endif /* included_vlib_threads_h */
 
 /*