aboutsummaryrefslogtreecommitdiffstats
path: root/src/vcl/vcl_private.c
diff options
context:
space:
mode:
authorFlorin Coras <fcoras@cisco.com>2021-04-19 17:34:54 -0700
committerDamjan Marion <dmarion@me.com>2021-04-22 11:41:38 +0000
commit4ac258497303c1cbca539e04ef5f732eed24a5c4 (patch)
tree6549763ad7e3e04bc5ce875cf5a2dc986aa95c39 /src/vcl/vcl_private.c
parent5cfe45211ac7977ab9bf07b817fe9a5d00226eb3 (diff)
vcl session: extended connect/listen configuration
Type: feature Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: Ic8d9386fef37ffd3446aaeb93a96ee6d60633831
Diffstat (limited to 'src/vcl/vcl_private.c')
-rw-r--r--src/vcl/vcl_private.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/vcl/vcl_private.c b/src/vcl/vcl_private.c
index ba54c91f5cd..721416b045a 100644
--- a/src/vcl/vcl_private.c
+++ b/src/vcl/vcl_private.c
@@ -519,6 +519,32 @@ vcl_segment_discover_mqs (uword segment_handle, int *fds, u32 n_fds)
return 0;
}
+svm_fifo_chunk_t *
+vcl_segment_alloc_chunk (uword segment_handle, u32 slice_index, u32 size,
+ uword *offset)
+{
+ svm_fifo_chunk_t *c;
+ fifo_segment_t *fs;
+ u32 fs_index;
+
+ fs_index = vcl_segment_table_lookup (segment_handle);
+ if (fs_index == VCL_INVALID_SEGMENT_INDEX)
+ {
+ VDBG (0, "ERROR: mq segment %lx for is not attached!", segment_handle);
+ return 0;
+ }
+
+ clib_rwlock_reader_lock (&vcm->segment_table_lock);
+
+ fs = fifo_segment_get_segment (&vcm->segment_main, fs_index);
+ c = fifo_segment_alloc_chunk_w_slice (fs, slice_index, size);
+ *offset = fifo_segment_chunk_offset (fs, c);
+
+ clib_rwlock_reader_unlock (&vcm->segment_table_lock);
+
+ return c;
+}
+
/*
* fd.io coding-style-patch-verification: ON
*