+} svm_fifo_shared_t;
+
+typedef struct _svm_fifo
+{
+ CLIB_CACHE_LINE_ALIGN_MARK (cacheline);
+ svm_fifo_shared_t *shr; /**< shared fifo in fifo segment memory */
+ fifo_segment_header_t *fs_hdr; /**< fifo segment header for fifo */
+ rb_tree_t ooo_enq_lookup; /**< rbtree for ooo enq chunk lookup */
+ rb_tree_t ooo_deq_lookup; /**< rbtree for ooo deq chunk lookup */
+ svm_fifo_chunk_t *ooo_deq; /**< last chunk used for ooo dequeue */
+ svm_fifo_chunk_t *ooo_enq; /**< last chunk used for ooo enqueue */
+ ooo_segment_t *ooo_segments; /**< Pool of ooo segments */
+ u32 ooos_list_head; /**< Head of out-of-order linked-list */
+ u32 ooos_newest; /**< Last segment to have been updated */
+
+ u8 flags; /**< fifo flags */
+ u8 master_thread_index; /**< session layer thread index */
+ u8 client_thread_index; /**< app worker index */
+ i8 refcnt; /**< reference count */
+ u32 segment_manager; /**< session layer segment manager index */
+ u32 segment_index; /**< segment index in segment manager */
+
+ struct _svm_fifo *next; /**< prev in active chain */
+ struct _svm_fifo *prev; /**< prev in active chain */
+
+ svm_fifo_chunk_t *chunks_at_attach; /**< chunks to be accounted at detach */
+ svm_fifo_shared_t *hdr_at_attach; /**< hdr to be freed at detach */