FEMU
原版 master 7e238cc
FEMU: Accurate, Scalable and Extensible NVMe SSD Emulator (FAST'18)
|
|
浏览该文件的文档.
10 #ifndef _RTE_RING_GENERIC_H_
11 #define _RTE_RING_GENERIC_H_
15 uint32_t single, uint32_t enqueue)
58 uint32_t *old_head, uint32_t *new_head,
59 uint32_t *free_entries)
92 *new_head = *old_head + n;
94 r->
prod.
head = *new_head, success = 1;
97 *old_head, *new_head);
128 uint32_t *old_head, uint32_t *new_head,
131 unsigned int max = n;
151 *entries = (r->
prod.
tail - *old_head);
160 *new_head = *old_head + n;
162 r->
cons.
head = *new_head, success = 1;
static __rte_always_inline unsigned int __rte_ring_move_prod_head(struct rte_ring *r, unsigned int is_sp, unsigned int n, enum rte_ring_queue_behavior behavior, uint32_t *old_head, uint32_t *new_head, uint32_t *free_entries)
Definition: rte_ring_generic.h:56
Definition: rte_ring.h:111
static int rte_atomic32_cmpset(volatile uint32_t *dst, uint32_t exp, uint32_t src)
Definition: rte_atomic_x86.h:17
#define unlikely(x)
Definition: rte_branch_prediction.h:38
#define rte_smp_rmb()
Definition: rte_atomic_x86.h:36
#define __rte_always_inline
Definition: rte_ring.h:101
#define rte_smp_wmb()
Definition: rte_atomic_x86.h:34
Definition: rte_ring.h:127
volatile uint32_t head
Definition: rte_ring.h:112
struct rte_ring_headtail cons
Definition: rte_ring.h:144
rte_ring_queue_behavior
Definition: rte_ring.h:106
@ RTE_RING_QUEUE_FIXED
Definition: rte_ring.h:107
uint32_t capacity
Definition: rte_ring.h:138
static __rte_always_inline unsigned int __rte_ring_move_cons_head(struct rte_ring *r, unsigned int is_sc, unsigned int n, enum rte_ring_queue_behavior behavior, uint32_t *old_head, uint32_t *new_head, uint32_t *entries)
Definition: rte_ring_generic.h:126
volatile uint32_t tail
Definition: rte_ring.h:113
static __rte_always_inline void update_tail(struct rte_ring_headtail *ht, uint32_t old_val, uint32_t new_val, uint32_t single, uint32_t enqueue)
Definition: rte_ring_generic.h:14
struct rte_ring_headtail prod
Definition: rte_ring.h:141