DPDK: Data Plane Development Kit

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


#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)


 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

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

Return the first tailq entry casted to the right struct.

Definition at line 87 of file rte_tailq.h.

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

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

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)
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 106 of file rte_tailq.h.

Function Documentation

TAILQ_HEAD ( rte_tailq_entry_head  ,


void rte_dump_tailq ( FILE *  f)

Dump tail queues to a file.

fA pointer to a file for output
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

nameThe name of the queue.
A pointer to the tail queue head structure.
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().

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