diff options
author | Florin Coras <fcoras@cisco.com> | 2018-09-17 22:09:02 -0700 |
---|---|---|
committer | Damjan Marion <dmarion@me.com> | 2018-09-20 10:05:48 +0000 |
commit | 0e88e851e058f4fb7cc690dbbdb19216ab360d1c (patch) | |
tree | 94b6117dfd76cc7a6da2ee344f676d7765d086e3 /src/svm/svm_fifo.h | |
parent | 008dbe109ce2714be69ffb6549a0c0198a07f7d0 (diff) |
session/svm: add want_tx_event flag to fifo
Have applications use explicit flag to request events from vpp when it
transmits from a full fifo.
Change-Id: I687c8f050a066bd5ce739d880eaec1f286038d95
Signed-off-by: Florin Coras <fcoras@cisco.com>
Diffstat (limited to 'src/svm/svm_fifo.h')
-rw-r--r-- | src/svm/svm_fifo.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/svm/svm_fifo.h b/src/svm/svm_fifo.h index ec32fd5f40d..1ac5b6363cd 100644 --- a/src/svm/svm_fifo.h +++ b/src/svm/svm_fifo.h @@ -62,6 +62,7 @@ typedef struct _svm_fifo u32 segment_manager; CLIB_CACHE_LINE_ALIGN_MARK (end_shared); u32 head; + volatile u32 want_tx_evt; /**< producer wants nudge */ CLIB_CACHE_LINE_ALIGN_MARK (end_consumer); /* producer */ @@ -169,6 +170,18 @@ svm_fifo_unset_event (svm_fifo_t * f) __sync_lock_release (&f->has_event); } +static inline void +svm_fifo_set_want_tx_evt (svm_fifo_t * f, u8 want_evt) +{ + f->want_tx_evt = want_evt; +} + +static inline u8 +svm_fifo_want_tx_evt (svm_fifo_t * f) +{ + return f->want_tx_evt; +} + svm_fifo_t *svm_fifo_create (u32 data_size_in_bytes); void svm_fifo_free (svm_fifo_t * f); |