Loading...
Searching...
No Matches
ringbuf.h
1/*
2 * SPDX-FileCopyrightText: 2022 Gunar Schorcht
3 * SPDX-License-Identifier: LGPL-2.1-only
4 */
5
6/*
7 * FreeRTOS to RIOT-OS adaption module for source code compatibility
8 */
9
10#pragma once
11
12#ifndef DOXYGEN
13
14#ifdef __cplusplus
15extern "C" {
16#endif
17
18#define RINGBUF_TYPE_NOSPLIT 0
19#define RINGBUF_TYPE_BYTEBUF 2
20
21typedef unsigned RingbufferType_t;
22typedef void * RingbufHandle_t;
23
24RingbufHandle_t xRingbufferCreate(size_t xBufferSize, RingbufferType_t xBufferType);
25
26void vRingbufferDelete(RingbufHandle_t xRingbuffer);
27
28void *xRingbufferReceiveUpTo(RingbufHandle_t xRingbuffer,
29 size_t *pxItemSize,
30 TickType_t xTicksToWait,
31 size_t xMaxSize);
32
33BaseType_t xRingbufferSendFromISR(RingbufHandle_t xRingbuffer,
34 const void *pvItem,
35 size_t xItemSize,
36 BaseType_t *pxHigherPriorityTaskWoken);
37
38void *xRingbufferReceiveUpToFromISR(RingbufHandle_t xRingbuffer,
39 size_t *pxItemSize, size_t xMaxSize);
40
41void *xRingbufferReceiveFromISR(RingbufHandle_t xRingbuffer, size_t *pxItemSize);
42
43void vRingbufferReturnItemFromISR(RingbufHandle_t xRingbuffer, void *pvItem,
44 BaseType_t *pxHigherPriorityTaskWoken);
45
46#ifdef __cplusplus
47}
48#endif
49
50#endif /* DOXYGEN */