ICARUS OS (Intelligent Cooperative Architecture for Real-time Unified Systems) 0.1.0
Preemptive Real-Time Operating System for ARM Cortex-M7
Loading...
Searching...
No Matches
cdc_rx.h
Go to the documentation of this file.
1
19#ifndef ICARUS_CDC_RX_H
20#define ICARUS_CDC_RX_H
21
22#ifdef __cplusplus
23extern "C" {
24#endif
25
26#include <stdint.h>
27#include <stdbool.h>
28
29#define CDC_RX_BUF_SIZE 512
30
31/* ---- Public API (issue SVC into priv mode on target) ------------------- */
32
33void cdc_rx_init(void);
34bool cdc_rx_read_byte(uint8_t *out);
35uint32_t cdc_rx_available(void);
36
37/* ---- Producer entry point ---------------------------------------------- */
38
49void cdc_rx_push(const uint8_t *data, uint32_t len);
50
51/* ---- Privileged implementations (internal — do not call directly) ----- */
52
53void __cdc_rx_init(void);
54void __cdc_rx_push(const uint8_t *data, uint32_t len);
55bool __cdc_rx_read_byte(uint8_t *out);
56uint32_t __cdc_rx_available(void);
57
58#ifdef __cplusplus
59}
60#endif
61
62#endif /* ICARUS_CDC_RX_H */
void cdc_rx_push(const uint8_t *data, uint32_t len)
Append bytes to the ring buffer.
Definition svc.c:1275
uint32_t cdc_rx_available(void)
Definition svc.c:1296
bool cdc_rx_read_byte(uint8_t *out)
Definition svc.c:1279
void cdc_rx_init(void)
Definition svc.c:1264
bool __cdc_rx_read_byte(uint8_t *out)
Definition cdc_rx.c:57
uint32_t __cdc_rx_available(void)
Definition cdc_rx.c:66
void __cdc_rx_init(void)
Definition cdc_rx.c:38
void __cdc_rx_push(const uint8_t *data, uint32_t len)
Definition cdc_rx.c:43