DPDK  19.11.14
Data Structures | Macros | Functions
rte_tailq.h File Reference
#include <sys/queue.h>
#include <stdio.h>
#include <rte_debug.h>

Go to the source code of this file.

Data Structures

struct  rte_tailq_entry
 
struct  rte_tailq_head
 

Macros

#define RTE_TAILQ_CAST(tailq_entry, struct_name)   (struct struct_name *)&(tailq_entry)->tailq_head
 
#define RTE_TAILQ_LOOKUP(name, struct_name)   RTE_TAILQ_CAST(rte_eal_tailq_lookup(name), struct_name)
 

Functions

 TAILQ_HEAD (rte_tailq_entry_head, rte_tailq_entry)
 
void rte_dump_tailq (FILE *f)
 
struct rte_tailq_headrte_eal_tailq_lookup (const char *name)
 
int rte_eal_tailq_register (struct rte_tailq_elem *t)
 

Detailed Description

Here defines rte_tailq APIs for only internal use

Definition in file rte_tailq.h.

Macro Definition Documentation

◆ RTE_TAILQ_CAST

#define RTE_TAILQ_CAST (   tailq_entry,
  struct_name 
)    (struct struct_name *)&(tailq_entry)->tailq_head

Return the first tailq entry cast to the right struct.

Definition at line 58 of file rte_tailq.h.

◆ RTE_TAILQ_LOOKUP

#define RTE_TAILQ_LOOKUP (   name,
  struct_name 
)    RTE_TAILQ_CAST(rte_eal_tailq_lookup(name), struct_name)

Utility macro to make looking up a tailqueue for a particular struct easier.

Parameters
nameThe name of tailq
struct_nameThe name of the list type we are using. (Generally this is the same as the first parameter passed to TAILQ_HEAD macro)
Returns
The return value from rte_eal_tailq_lookup, typecast to the appropriate structure pointer type. NULL on error, since the tailq_head is the first element in the rte_tailq_head structure.

Definition at line 77 of file rte_tailq.h.

Function Documentation

◆ TAILQ_HEAD()

TAILQ_HEAD ( rte_tailq_entry_head  ,
rte_tailq_entry   
)

dummy

◆ rte_dump_tailq()

void rte_dump_tailq ( FILE *  f)

Dump tail queues to a file.

Parameters
fA pointer to a file for output

◆ rte_eal_tailq_lookup()

struct rte_tailq_head* rte_eal_tailq_lookup ( const char *  name)

Lookup for a tail queue.

Get a pointer to a tail queue header of a tail queue identified by the name given as an argument. Note: this function is not multi-thread safe, and should only be called from a single thread at a time

Parameters
nameThe name of the queue.
Returns
A pointer to the tail queue head structure.

◆ rte_eal_tailq_register()

int rte_eal_tailq_register ( struct rte_tailq_elem *  t)

Register a tail queue.

Register a tail queue from shared memory. This function is mainly used by EAL_REGISTER_TAILQ macro which is used to register tailq from the different dpdk libraries. Since this macro is a constructor, the function has no access to dpdk shared memory, so the registered tailq can not be used before call to rte_eal_init() which calls rte_eal_tailqs_init().

Parameters
tThe tailq element which contains the name of the tailq you want to create (/retrieve when in secondary process).
Returns
0 on success or -1 in case of an error.