This patch is based on some code contributed by Dirk Brandewie. This is a generic data structure for queuing data in a FIFO ring buffer. Any given data enqueued is annotated with an app-specific type identifier, and small integral value. Use of a data pointer is optional if the necessary information can be conveyed in the annotations. We want all the metadata to fit in a single DWORD. The ring buffer always contains at least one free dword in the buffer to correctly distinguish between full and empty queues. Concurrency control is almost nonexistent; depending on usage, apps may want to introduce the usage of semaphores and/or mutexes to preserve the integrity of the ring buffer or provide notifications when data is available. Change-Id: I860262d2afc96db4476d4c695a92f7da355ab732 Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
19 lines
624 B
Makefile
19 lines
624 B
Makefile
ccflags-y +=-I$(srctree)/kernel/nanokernel/include
|
|
ccflags-y +=-I$(srctree)/kernel/microkernel/include
|
|
|
|
|
|
asflags-y := ${ccflags-y}
|
|
|
|
obj-y = nano_fiber.o nano_lifo.o \
|
|
nano_fifo.o nano_stack.o nano_sys_clock.o \
|
|
nano_context.o nano_init.o nano_sema.o \
|
|
version.o ctors.o device.o
|
|
|
|
obj-$(CONFIG_STACK_CANARIES) += compiler_stack_protect.o
|
|
obj-$(CONFIG_INT_LATENCY_BENCHMARK) += int_latency_bench.o
|
|
obj-$(CONFIG_ADVANCED_POWER_MANAGEMENT) += idle.o
|
|
obj-$(CONFIG_NANO_TIMERS) += nano_timer.o
|
|
obj-$(CONFIG_EVENT_LOGGER) += event_logger.o
|
|
obj-$(CONFIG_KERNEL_PROFILER) += profiler.o
|
|
obj-$(CONFIG_RING_BUFFER) += ring_buffer.o
|