From 7f275249f286a45111a16154d19b238f59a02270 Mon Sep 17 00:00:00 2001 From: Dmitry Simonenko Date: Mon, 22 May 2017 14:01:58 +0300 Subject: [PATCH] machinarium: define queue api --- src/CMakeLists.txt | 1 + src/machinarium.h | 15 +++++++++++++++ src/machinarium_private.h | 1 + src/mm_queue.c | 9 +++++++++ src/mm_queue.h | 10 ++++++++++ 5 files changed, 36 insertions(+) create mode 100644 src/mm_queue.c create mode 100644 src/mm_queue.h diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 66cf3176..ad1146a6 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -17,6 +17,7 @@ set(machine_src mm_thread.c mm_msg_pool.c mm_msg.c mm_channel.c + mm_queue.c mm_tls.c mm_tls_io.c mm_io.c diff --git a/src/machinarium.h b/src/machinarium.h index 602555d2..47599f68 100644 --- a/src/machinarium.h +++ b/src/machinarium.h @@ -27,6 +27,7 @@ typedef void (*machine_function_t)(void *arg); typedef void* machine_t; typedef void* machine_msg_t; typedef void* machine_channel_t; +typedef void* machine_queue_t; typedef void* machine_tls_t; typedef void* machine_io_t; @@ -109,6 +110,20 @@ machine_channel_write(machine_channel_t, machine_msg_t); MACHINE_API machine_msg_t machine_channel_read(machine_channel_t, int time_ms); +/* queue */ + +MACHINE_API machine_queue_t +machine_queue_create(void); + +MACHINE_API void +machine_queue_free(machine_queue_t); + +MACHINE_API void +machine_queue_write(machine_queue_t, machine_msg_t); + +MACHINE_API machine_msg_t +machine_queue_read(machine_queue_t, int time_ms); + /* tls */ MACHINE_API machine_tls_t diff --git a/src/machinarium_private.h b/src/machinarium_private.h index f94e8488..6ef70335 100644 --- a/src/machinarium_private.h +++ b/src/machinarium_private.h @@ -62,6 +62,7 @@ #include "mm.h" #include "mm_channel.h" +#include "mm_queue.h" #include "mm_tls.h" #include "mm_tls_io.h" diff --git a/src/mm_queue.c b/src/mm_queue.c new file mode 100644 index 00000000..ad3ae85a --- /dev/null +++ b/src/mm_queue.c @@ -0,0 +1,9 @@ + +/* + * machinarium. + * + * cooperative multitasking engine. +*/ + +#include +#include diff --git a/src/mm_queue.h b/src/mm_queue.h new file mode 100644 index 00000000..150b35ae --- /dev/null +++ b/src/mm_queue.h @@ -0,0 +1,10 @@ +#ifndef MM_QUEUE_H_ +#define MM_QUEUE_H_ + +/* + * machinarium. + * + * cooperative multitasking engine. +*/ + +#endif