C Microkernel Realtime eXecutive
Realtime Operating System for Cortex-M based microcontrollers
 
Loading...
Searching...
No Matches
Queue RPC queue_server

This is a userspace implementation of queues that can be used across processes. More...

Data Structures

struct  QueueInterface
 Queue object interface. More...
 
struct  QueueObject
 
struct  QueueServiceInterface
 Queue Service interface. More...
 
struct  QueueService
 Queue Server internals. More...
 

Macros

#define QUEUES_ALLOCATED   4
 

Typedefs

typedef uint8_t queue_id_t
 

Variables

struct QueueServicequeue_server
 Queue server instance for RPC calls.
 

Detailed Description

This is a userspace implementation of queues that can be used across processes.

CMRX does not offer queues as a standard syscall, unlike other RTOSes.

If an application wants to use queues, it needs to include the queue server in the build. This is done by calling:

target_add_applications(<firmware> queue_server)
struct QueueService * queue_server
Queue server instance for RPC calls.
Definition queue_server.c:75

into CMakeLists.txt.

This will include the queue server and enable services described in this document.

Queue server behaves as a pretty standard remote procedure call server. You need a server instance in order to be able to work with queues. Queue server always creates one publicly available instance.

Application can call queue service to create a new queue such as:

rpc_call(queue_server, create, ...)
#define rpc_call(service_instance, method_name,...)
User-visible way to perform remote procedure call.
Definition rpc.h:122

This will create new queue which can be used to call methods like send and receive.

Macro Definition Documentation

◆ QUEUES_ALLOCATED

#define QUEUES_ALLOCATED   4

Typedef Documentation

◆ queue_id_t

typedef uint8_t queue_id_t

Variable Documentation

◆ queue_server

struct QueueService* queue_server
extern

Queue server instance for RPC calls.

This is publicly available instance of queue server. You can use it to call rpc_call() using interface defined in QueueServiceInterface.