tetl 0.1.0
Embedded Template Library
Loading...
Searching...
No Matches
stubs.hpp
Go to the documentation of this file.
1// SPDX-License-Identifier: BSL-1.0
2// SPDX-FileCopyrightText: Copyright (C) 2019 Tobias Hienzsch
3
4#ifndef TETL_FREERTOS_STUBS_HPP
5#define TETL_FREERTOS_STUBS_HPP
6
7#include <etl/version.hpp>
8
9#include <etl/cstddef.hpp>
10#include <etl/cstdint.hpp>
11#include <etl/utility.hpp>
12
13// BASE
14using BaseType_t = long;
15using UBaseType_t = unsigned long;
16using configSTACK_DEPTH_TYPE = etl::uint16_t;
17#define pdFALSE (static_cast<BaseType_t>(0))
18#define pdTRUE (static_cast<BaseType_t>(1))
19#define pdPASS (pdTRUE)
20#define pdFAIL (pdFALSE)
21#define errQUEUE_EMPTY (static_cast<BaseType_t>(0))
22#define errQUEUE_FULL (static_cast<BaseType_t>(0))
23
24// TICK
25using TickType_t = etl::uint32_t;
26
27// SCHEDULER
28inline auto vPortYield() -> void { }
29
30#define portYIELD() vPortYield()
31#define taskYIELD() portYIELD()
32
33// TASK
34struct tskTaskControlBlock;
35
36using TaskHandle_t = tskTaskControlBlock*;
37using TaskFunction_t = void (*)(void*);
38
39inline auto xTaskCreate(
40 TaskFunction_t pvTaskCode,
41 char const* const pcName,
42 configSTACK_DEPTH_TYPE usStackDepth,
43 void* const pvParameters,
44 UBaseType_t uxPriority,
45 TaskHandle_t* const pxCreatedTask
46) -> BaseType_t
47{
48 etl::ignore_unused(pvTaskCode, pcName, usStackDepth, pvParameters, uxPriority, pxCreatedTask);
49 return pdFALSE;
50}
51
52inline auto vTaskDelete(TaskHandle_t xTask) -> void
53{
55}
56
57inline auto vTaskStartScheduler() -> void { }
58
59inline auto vTaskDelay(TickType_t const xTicksToDelay) -> void
60{
61 etl::ignore_unused(xTicksToDelay);
62}
63
64inline auto vTaskDelayUntil(TickType_t* const pxPreviousWakeTime, TickType_t const xTimeIncrement) -> void
65{
66 etl::ignore_unused(pxPreviousWakeTime, xTimeIncrement);
67}
68// QUEUE
69struct QueueDefinition;
70using QueueHandle_t = QueueDefinition*;
71
72inline auto xQueueCreate(UBaseType_t uxQueueLength, UBaseType_t uxItemSize) -> QueueHandle_t
73{
74 etl::ignore_unused(uxQueueLength, uxItemSize);
75 return nullptr;
76}
77
78inline auto vQueueDelete(QueueHandle_t xQueue) -> void
79{
81}
82
83inline auto xQueueSend(QueueHandle_t xQueue, void const* pvItemToQueue, TickType_t xTicksToWait) -> BaseType_t
84{
85 etl::ignore_unused(xQueue, pvItemToQueue, xTicksToWait);
86 return pdFALSE;
87}
88
89inline auto xQueueReceive(QueueHandle_t xQueue, void* pvBuffer, TickType_t xTicksToWait) -> BaseType_t
90{
91 etl::ignore_unused(xQueue, pvBuffer, xTicksToWait);
92 return pdFALSE;
93}
94
95inline auto xQueueReset(QueueHandle_t xQueue) -> BaseType_t
96{
98 return pdPASS;
99}
100
101inline auto uxQueueMessagesWaiting(QueueHandle_t xQueue) -> UBaseType_t
102{
104 return 0;
105}
106
107// STREAM_BUFFER
108struct StreamBufferDef_t;
109using StreamBufferHandle_t = StreamBufferDef_t*;
110
111[[nodiscard]] inline auto xStreamBufferCreate(etl::size_t bufferSizeBytes, etl::size_t triggerLevelBytes)
112 -> StreamBufferHandle_t
113{
114 etl::ignore_unused(bufferSizeBytes, triggerLevelBytes);
115 return {};
116}
117
118[[nodiscard]] inline auto
119xStreamBufferSend(StreamBufferHandle_t handle, void const* data, etl::size_t size, TickType_t ticksToWait)
120 -> etl::size_t
121{
122 etl::ignore_unused(handle, data, size, ticksToWait);
123 return 0;
124}
125
126[[nodiscard]] inline auto
127xStreamBufferSendFromISR(StreamBufferHandle_t handle, void const* data, etl::size_t size, BaseType_t* prio)
128 -> etl::size_t
129{
130 etl::ignore_unused(handle, data, size, prio);
131 return 0;
132}
133
134[[nodiscard]] inline auto
135xStreamBufferReceive(StreamBufferHandle_t handle, void* data, etl::size_t size, TickType_t ticks) -> etl::size_t
136{
137 etl::ignore_unused(handle, data, size, ticks);
138 return 0;
139}
140
141[[nodiscard]] inline auto
142xStreamBufferReceiveFromISR(StreamBufferHandle_t handle, void* data, etl::size_t size, BaseType_t* prio) -> etl::size_t
143{
144 etl::ignore_unused(handle, data, size, prio);
145 return 0;
146}
147
148inline auto vStreamBufferDelete(StreamBufferHandle_t handle) -> void
149{
151}
152
153[[nodiscard]] inline auto xStreamBufferBytesAvailable(StreamBufferHandle_t handle) -> etl::size_t
154{
156 return {};
157}
158
159[[nodiscard]] inline auto xStreamBufferSpacesAvailable(StreamBufferHandle_t handle) -> etl::size_t
160{
162 return {};
163}
164
165inline auto xStreamBufferSetTriggerLevel(StreamBufferHandle_t handle, etl::size_t triggerLevel) -> BaseType_t
166{
167 etl::ignore_unused(handle, triggerLevel);
168 return {};
169}
170
171inline auto xStreamBufferReset(StreamBufferHandle_t handle) -> BaseType_t
172{
174 return {};
175}
176
177[[nodiscard]] inline auto xStreamBufferIsEmpty(StreamBufferHandle_t handle) -> BaseType_t
178{
180 return {};
181}
182
183[[nodiscard]] inline auto xStreamBufferIsFull(StreamBufferHandle_t handle) -> BaseType_t
184{
186 return {};
187}
188
189// MESSAGE_BUFFER
190using MessageBufferHandle_t = void*;
191
192[[nodiscard]] inline auto xMessageBufferCreate(etl::size_t bufferSizeBytes) -> MessageBufferHandle_t
193{
194 etl::ignore_unused(bufferSizeBytes);
195 return {};
196}
197
198#endif // TETL_FREERTOS_STUBS_HPP
Definition adjacent_find.hpp:9
constexpr auto ignore_unused(Types &&...) -> void
Explicitly ignore arguments or variables.
Definition ignore_unused.hpp:18
auto xStreamBufferSend(StreamBufferHandle_t handle, void const *data, etl::size_t size, TickType_t ticksToWait) -> etl::size_t
Definition stubs.hpp:119
auto xStreamBufferReceive(StreamBufferHandle_t handle, void *data, etl::size_t size, TickType_t ticks) -> etl::size_t
Definition stubs.hpp:135
auto vQueueDelete(QueueHandle_t xQueue) -> void
Definition stubs.hpp:78
auto xStreamBufferSpacesAvailable(StreamBufferHandle_t handle) -> etl::size_t
Definition stubs.hpp:159
auto xStreamBufferIsEmpty(StreamBufferHandle_t handle) -> BaseType_t
Definition stubs.hpp:177
auto xStreamBufferReset(StreamBufferHandle_t handle) -> BaseType_t
Definition stubs.hpp:171
auto vTaskStartScheduler() -> void
Definition stubs.hpp:57
auto xTaskCreate(TaskFunction_t pvTaskCode, char const *const pcName, configSTACK_DEPTH_TYPE usStackDepth, void *const pvParameters, UBaseType_t uxPriority, TaskHandle_t *const pxCreatedTask) -> BaseType_t
Definition stubs.hpp:39
auto vTaskDelete(TaskHandle_t xTask) -> void
Definition stubs.hpp:52
auto xQueueReset(QueueHandle_t xQueue) -> BaseType_t
Definition stubs.hpp:95
auto vPortYield() -> void
Definition stubs.hpp:28
auto xQueueCreate(UBaseType_t uxQueueLength, UBaseType_t uxItemSize) -> QueueHandle_t
Definition stubs.hpp:72
auto xQueueReceive(QueueHandle_t xQueue, void *pvBuffer, TickType_t xTicksToWait) -> BaseType_t
Definition stubs.hpp:89
auto vTaskDelayUntil(TickType_t *const pxPreviousWakeTime, TickType_t const xTimeIncrement) -> void
Definition stubs.hpp:64
auto xStreamBufferIsFull(StreamBufferHandle_t handle) -> BaseType_t
Definition stubs.hpp:183
auto uxQueueMessagesWaiting(QueueHandle_t xQueue) -> UBaseType_t
Definition stubs.hpp:101
auto xStreamBufferCreate(etl::size_t bufferSizeBytes, etl::size_t triggerLevelBytes) -> StreamBufferHandle_t
Definition stubs.hpp:111
auto vTaskDelay(TickType_t const xTicksToDelay) -> void
Definition stubs.hpp:59
auto xStreamBufferBytesAvailable(StreamBufferHandle_t handle) -> etl::size_t
Definition stubs.hpp:153
auto xStreamBufferReceiveFromISR(StreamBufferHandle_t handle, void *data, etl::size_t size, BaseType_t *prio) -> etl::size_t
Definition stubs.hpp:142
auto vStreamBufferDelete(StreamBufferHandle_t handle) -> void
Definition stubs.hpp:148
auto xQueueSend(QueueHandle_t xQueue, void const *pvItemToQueue, TickType_t xTicksToWait) -> BaseType_t
Definition stubs.hpp:83
auto xStreamBufferSendFromISR(StreamBufferHandle_t handle, void const *data, etl::size_t size, BaseType_t *prio) -> etl::size_t
Definition stubs.hpp:127
auto xStreamBufferSetTriggerLevel(StreamBufferHandle_t handle, etl::size_t triggerLevel) -> BaseType_t
Definition stubs.hpp:165
auto xMessageBufferCreate(etl::size_t bufferSizeBytes) -> MessageBufferHandle_t
Definition stubs.hpp:192