C Microkernel Realtime eXecutive
Realtime Operating System for Cortex-M based microcontrollers
 
Loading...
Searching...
No Matches
queue_server.h
1#pragma once
2
35#include "queue.h"
36
37#include <cmrx/rpc/interface.h>
38#include <stdbool.h>
39#include <stdint.h>
40
41#define QUEUES_ALLOCATED 4
42
43typedef uint8_t queue_id_t;
44
45struct Queue;
46
64 bool (*send)(INSTANCE(this), const unsigned char * data);
65
77 bool (*receive)(INSTANCE(this), unsigned char * data);
78
84 bool (*empty)(INSTANCE(this), bool * out);
85
92 void (*destroy)(INSTANCE(this));
93};
94
96 const struct QueueInterface * vtable;
98 struct Queue queue;
99};
100
116 bool (*create)(INSTANCE(this), struct QueueObject ** queue, unsigned depth, unsigned size);
117};
118
128
134extern struct QueueService * queue_server;
135
#define INSTANCE(a)
Mark function argument as reference to current service instance.
Definition implementation.h:115
struct QueueService * queue_server
Queue server instance for RPC calls.
Definition queue_server.c:75
uint8_t queue_id_t
Definition queue_server.h:43
#define QUEUES_ALLOCATED
Definition queue_server.h:41
Queue object interface.
Definition queue_server.h:52
bool(* receive)(INSTANCE(this), unsigned char *data)
Receive data from queue.
Definition queue_server.h:77
bool(* empty)(INSTANCE(this), bool *out)
Returns queue status.
Definition queue_server.h:84
bool(* send)(INSTANCE(this), const unsigned char *data)
Send data via the queue.
Definition queue_server.h:64
void(* destroy)(INSTANCE(this))
Destroy queue.
Definition queue_server.h:92
Definition queue_server.h:95
bool allocated
Definition queue_server.h:97
const struct QueueInterface * vtable
Definition queue_server.h:96
struct Queue queue
Definition queue_server.h:98
Queue Service interface.
Definition queue_server.h:105
bool(* create)(INSTANCE(this), struct QueueObject **queue, unsigned depth, unsigned size)
Create new queue.
Definition queue_server.h:116
Queue Server internals.
Definition queue_server.h:123
struct QueueObject queue[QUEUES_ALLOCATED]
Definition queue_server.h:125
const struct QueueServiceInterface * vtable
Definition queue_server.h:124
Generic queue structure.
Definition queue.h:36