|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [UNIKRAFT PATCH v3 0/5] Introduce Ring Buffer Implementation
This series introduces a port of FreeBSD's buf_ring.{h,c} implementation for use
within Unikraft. This ring buffer can be used for message passing in queues,
for example within a AF_UNIX socket implementation between two threads. The
implementation is therefore thread safe and provides a generic data field
which is initialized to the desired ring buffer length.
- uk_ring_alloc
- uk_ring_free
- uk_ring_enqueue
- uk_ring_dequeue
- uk_ring_dequeue_single
- uk_ring_advance_single
- uk_ring_putback_single
- uk_ring_peek
- uk_ring_peek_clear_single
- uk_ring_full
- uk_ring_empty
- uk_ring_count
Changes in v3:
* This patch series relies on changes made available in the following patch
series': #1474, #1475 and #1477. These series' introduce primitives for
cpu_spinwait across architecturs; pre-emptive scheduling, namely
`uk_preempt_enable` and uk_preempt_disable`; and, the global architecture
cache line size, respectively.
* Squahes some verbose commits on library registration.
Alexander Jung (5):
lib/ukring: Import ring buffer from FreeBSD
lib/ukring: Fix formatting issues {ring.c, ring.h}
lib/ukring: Adapt {ring.c, ring.h} to Unikraft
lib/ukring: Re-prefix methods and structs from buf_ to uk_
lib/ukring: Register ukring with Unikraft
lib/Makefile.uk | 1 +
lib/ukring/Config.uk | 23 +++
lib/ukring/Makefile.uk | 6 +
lib/ukring/exportsyms.uk | 12 ++
lib/ukring/include/uk/ring.h | 392 +++++++++++++++++++++++++++++++++++++++++++
lib/ukring/ring.c | 67 ++++++++
6 files changed, 501 insertions(+)
create mode 100644 lib/ukring/Config.uk
create mode 100644 lib/ukring/Makefile.uk
create mode 100644 lib/ukring/exportsyms.uk
create mode 100644 lib/ukring/include/uk/ring.h
create mode 100644 lib/ukring/ring.c
--
2.11.0
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |