From b462418890240b2e38dbf522f9dd0196b79e0fa8 Mon Sep 17 00:00:00 2001 From: Florin Coras Date: Fri, 11 Dec 2020 13:58:12 -0800 Subject: svm: allow mq attachments at random offsets Type: feature Signed-off-by: Florin Coras Change-Id: Ic373cd2c11272da539eb4b0db27227f36f2f9688 --- src/svm/fifo_segment.h | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) (limited to 'src/svm/fifo_segment.h') diff --git a/src/svm/fifo_segment.h b/src/svm/fifo_segment.h index 006ffc40f63..195869a25dd 100644 --- a/src/svm/fifo_segment.h +++ b/src/svm/fifo_segment.h @@ -17,6 +17,7 @@ #include #include +#include #include typedef enum @@ -70,6 +71,7 @@ typedef struct uword max_byte_index; u8 n_slices; /**< number of fifo segment slices */ fifo_slice_private_t *slices; /**< private slice information */ + svm_msg_q_t *mqs; /**< private vec of attached mqs */ } fifo_segment_t; typedef struct @@ -129,6 +131,37 @@ void fifo_segment_detach_fifo (fifo_segment_t * fs, svm_fifo_t * f); void fifo_segment_attach_fifo (fifo_segment_t * fs, svm_fifo_t * f, u32 slice_index); +/** + * Allocate message queue on segment + * + * @param fs fifo segment for mq + * @param mq_index index in private mqs vector to use to attach + * @param cfg configuration for mq + * @return attached message queue + */ +svm_msg_q_t *fifo_segment_msg_q_alloc (fifo_segment_t *fs, u32 mq_index, + svm_msg_q_cfg_t *cfg); + +/** + * Attach message queue at fifo segment offset + * + * @param fs fifo segment for mq + * @param offset offset for shared mq on the segment + * @param mq_index index in private mqs vector to use to attach + * @return attached message queue + */ +svm_msg_q_t *fifo_segment_msg_q_attach (fifo_segment_t *fs, uword offset, + u32 mq_index); + +/** + * Message queue offset on segment + * + * @param fs fifo segment for mq + * @param mq_index index of mq in private mqs vector + * @return offset of the shared mq the private mq is attached to + */ +uword fifo_segment_msg_q_offset (fifo_segment_t *fs, u32 mq_index); + /** * Try to preallocate fifo headers * -- cgit 1.2.3-korg