oveRTOS C API
Embedded RTOS framework — build system, configuration, and portable C API
Loading...
Searching...
No Matches
bsp.h
1/*
2 * Copyright (C) 2026 Kamil Lulko <kamil.lulko@gmail.com>
3 *
4 * SPDX-License-Identifier: GPL-3.0-or-later
5 *
6 * This file is part of oveRTOS.
7 */
8
9/*
10 * Backward-compatibility shim — maps old ove_bsp_*() API to the new
11 * split modules (board, gpio, led). Existing application code continues
12 * to compile unchanged.
13 */
14
15#ifndef OVE_BSP_H
16#define OVE_BSP_H
17
32#include "ove_config.h"
33#include "ove/board.h"
34#include "ove/gpio.h"
35#include "ove/led.h"
36
37#ifdef __cplusplus
38extern "C" {
39#endif
40
41/* Re-export the IRQ types so callers that only included bsp.h still see them */
42#ifndef OVE_GPIO_H
53
61typedef void (*ove_gpio_irq_cb)(unsigned int port, unsigned int pin,
62 void *user_data);
63#endif
64
65#ifdef CONFIG_OVE_BSP
66
74static inline int ove_bsp_board_init(void)
75{
76 return ove_board_init();
77}
78
87static inline void ove_bsp_led_set(unsigned int led, int on)
88{
89 ove_led_set(led, on);
90}
91
99static inline void ove_bsp_led_toggle(unsigned int led)
100{
101 ove_led_toggle(led);
102}
103
114static inline int ove_bsp_gpio_set(unsigned int port, unsigned int pin,
115 int value)
116{
117 return ove_gpio_set(port, pin, value);
118}
119
129static inline int ove_bsp_gpio_get(unsigned int port, unsigned int pin)
130{
131 return ove_gpio_get(port, pin);
132}
133
146static inline int ove_bsp_gpio_irq_register(unsigned int port,
147 unsigned int pin,
149 ove_gpio_irq_cb callback,
150 void *user_data)
151{
152 return ove_gpio_irq_register(port, pin, mode, callback, user_data);
153}
154
164static inline int ove_bsp_gpio_irq_enable(unsigned int port,
165 unsigned int pin)
166{
167 return ove_gpio_irq_enable(port, pin);
168}
169
179static inline int ove_bsp_gpio_irq_disable(unsigned int port,
180 unsigned int pin)
181{
182 return ove_gpio_irq_disable(port, pin);
183}
184
185#else /* !CONFIG_OVE_BSP */
186
187static inline int ove_bsp_board_init(void) { return OVE_OK; }
188static inline void ove_bsp_led_set(unsigned int led, int on) { (void)led; (void)on; }
189static inline void ove_bsp_led_toggle(unsigned int led) { (void)led; }
190static inline int ove_bsp_gpio_set(unsigned int port, unsigned int pin, int value) { (void)port; (void)pin; (void)value; return OVE_ERR_NOT_SUPPORTED; }
191static inline int ove_bsp_gpio_get(unsigned int port, unsigned int pin) { (void)port; (void)pin; return OVE_ERR_NOT_SUPPORTED; }
192static inline int ove_bsp_gpio_irq_register(unsigned int port, unsigned int pin, ove_gpio_irq_mode_t mode, ove_gpio_irq_cb callback, void *user_data) { (void)port; (void)pin; (void)mode; (void)callback; (void)user_data; return OVE_ERR_NOT_SUPPORTED; }
193static inline int ove_bsp_gpio_irq_enable(unsigned int port, unsigned int pin) { (void)port; (void)pin; return OVE_ERR_NOT_SUPPORTED; }
194static inline int ove_bsp_gpio_irq_disable(unsigned int port, unsigned int pin) { (void)port; (void)pin; return OVE_ERR_NOT_SUPPORTED; }
195
196#endif /* CONFIG_OVE_BSP */
197
198#ifdef __cplusplus
199}
200#endif
201
204#endif /* OVE_BSP_H */
int ove_board_init(void)
Initialise the board hardware.
static int ove_bsp_gpio_get(unsigned int port, unsigned int pin)
Read the current level of a GPIO pin (BSP compatibility wrapper).
Definition bsp.h:129
static void ove_bsp_led_toggle(unsigned int led)
Toggle the current state of a board LED (BSP compatibility wrapper).
Definition bsp.h:99
static void ove_bsp_led_set(unsigned int led, int on)
Turn a board LED on or off (BSP compatibility wrapper).
Definition bsp.h:87
static int ove_bsp_gpio_irq_disable(unsigned int port, unsigned int pin)
Disable a GPIO interrupt without unregistering it (BSP compatibility wrapper).
Definition bsp.h:179
static int ove_bsp_gpio_set(unsigned int port, unsigned int pin, int value)
Set the output level of a GPIO pin (BSP compatibility wrapper).
Definition bsp.h:114
static int ove_bsp_gpio_irq_enable(unsigned int port, unsigned int pin)
Enable a registered GPIO interrupt (BSP compatibility wrapper).
Definition bsp.h:164
static int ove_bsp_gpio_irq_register(unsigned int port, unsigned int pin, ove_gpio_irq_mode_t mode, ove_gpio_irq_cb callback, void *user_data)
Register a GPIO interrupt callback (BSP compatibility wrapper).
Definition bsp.h:146
void(* ove_gpio_irq_cb)(unsigned int port, unsigned int pin, void *user_data)
GPIO interrupt callback type (re-exported for BSP-only callers).
Definition bsp.h:61
static int ove_bsp_board_init(void)
Initialise the board hardware (BSP compatibility wrapper).
Definition bsp.h:74
ove_gpio_irq_mode_t
GPIO interrupt trigger edge selection (re-exported for BSP-only callers).
Definition bsp.h:48
@ OVE_GPIO_IRQ_RISING
Definition bsp.h:49
@ OVE_GPIO_IRQ_FALLING
Definition bsp.h:50
@ OVE_GPIO_IRQ_BOTH
Definition bsp.h:51
int ove_gpio_irq_disable(unsigned int port, unsigned int pin)
Disable a previously enabled GPIO interrupt without unregistering it.
int ove_gpio_irq_register(unsigned int port, unsigned int pin, ove_gpio_irq_mode_t mode, ove_gpio_irq_cb callback, void *user_data)
Register an interrupt callback for a GPIO pin.
int ove_gpio_irq_enable(unsigned int port, unsigned int pin)
Enable a previously registered GPIO interrupt.
int ove_gpio_set(unsigned int port, unsigned int pin, int value)
Set the output level of a GPIO pin.
int ove_gpio_get(unsigned int port, unsigned int pin)
Read the current logical level of a GPIO pin.
void ove_led_toggle(unsigned int led)
Toggle the current state of a board LED.
void ove_led_set(unsigned int led, int on)
Turn a board LED on or off.
#define OVE_ERR_NOT_SUPPORTED
The requested feature is not supported by the active backend.
Definition types.h:38
#define OVE_OK
Operation completed successfully.
Definition types.h:23