[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[UNIKRAFT PATCH v3 5/5] lib/ukring: Register ukring with Unikraft



This commit registers the ring buffer implementation micro-library
with Unikraft by including it in the global library list, exports
the ring buffer's main functions and includes the relevant initial
Makefile.uk and Config.uk library files.

Signed-off-by: Alexander Jung <alexander.jung@xxxxxxxxx>
---
 lib/Makefile.uk          |  1 +
 lib/ukring/Config.uk     | 23 +++++++++++++++++++++++
 lib/ukring/Makefile.uk   |  6 ++++++
 lib/ukring/exportsyms.uk | 12 ++++++++++++
 4 files changed, 42 insertions(+)
 create mode 100644 lib/ukring/Config.uk
 create mode 100644 lib/ukring/Makefile.uk
 create mode 100644 lib/ukring/exportsyms.uk

diff --git a/lib/Makefile.uk b/lib/Makefile.uk
index 360fcd8..4fd222d 100644
--- a/lib/Makefile.uk
+++ b/lib/Makefile.uk
@@ -25,6 +25,7 @@ $(eval $(call _import_lib,$(CONFIG_UK_BASE)/lib/devfs))
 $(eval $(call _import_lib,$(CONFIG_UK_BASE)/lib/9pfs))
 $(eval $(call _import_lib,$(CONFIG_UK_BASE)/lib/uklock))
 $(eval $(call _import_lib,$(CONFIG_UK_BASE)/lib/ukmpi))
+$(eval $(call _import_lib,$(CONFIG_UK_BASE)/lib/ukring))
 $(eval $(call _import_lib,$(CONFIG_UK_BASE)/lib/ukbus))
 $(eval $(call _import_lib,$(CONFIG_UK_BASE)/lib/uksglist))
 $(eval $(call _import_lib,$(CONFIG_UK_BASE)/lib/uknetdev))
diff --git a/lib/ukring/Config.uk b/lib/ukring/Config.uk
new file mode 100644
index 0000000..2481c62
--- /dev/null
+++ b/lib/ukring/Config.uk
@@ -0,0 +1,23 @@
+menuconfig LIBUKRING
+  bool "ukring: Ring buffer interface"
+  select LIBUKALLOC
+  select LIBUKLOCK
+  default n
+  help
+    Provide ring interface for handling object references.
+
+if LIBUKRING
+
+config LIBUKRING_CACHE_LINE_SIZE
+  int "Cache line size"
+  default 32
+  help
+    Size in bytes of a CPU d-cache line.
+
+config CONFIG_LIBUKRING_DEBUG_BUFRING
+  bool "Debug the ring interface"
+  default n
+  help
+    When debugging, this library stores some per-ring statistic counters about 
the number of enqueues/dequeues.  These statistics require a mutex to avoid 
concurrent accesses or atomic operations.
+
+endif
diff --git a/lib/ukring/Makefile.uk b/lib/ukring/Makefile.uk
new file mode 100644
index 0000000..7874ca2
--- /dev/null
+++ b/lib/ukring/Makefile.uk
@@ -0,0 +1,6 @@
+$(eval $(call addlib_s,libukring,$(CONFIG_LIBUKRING)))
+
+CINCLUDES-$(CONFIG_LIBUKRING)   += -I$(LIBUKRING_BASE)/include
+CXXINCLUDES-$(CONFIG_LIBUKRING) += -I$(LIBUKRING_BASE)/include
+
+LIBUKRING_SRCS-y += $(LIBUKRING_BASE)/ring.c
diff --git a/lib/ukring/exportsyms.uk b/lib/ukring/exportsyms.uk
new file mode 100644
index 0000000..098f25a
--- /dev/null
+++ b/lib/ukring/exportsyms.uk
@@ -0,0 +1,12 @@
+uk_ring_alloc
+uk_ring_free
+uk_ring_enqueue
+uk_ring_dequeue_mc
+uk_ring_dequeue_sc
+uk_ring_advance_sc
+uk_ring_putback_sc
+uk_ring_peek
+uk_ring_peek_clear_sc
+uk_ring_full
+uk_ring_empty
+uk_ring_count
-- 
2.11.0




 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.