RADLib
RADical C++ application framework
radekernel.h File Reference

Portable embedded kernel service ABI for RADLib. More...

#include <stddef.h>
#include <stdint.h>
#include <stdarg.h>
+ Include dependency graph for radekernel.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  rad_kernel_config
 
struct  rad_boot_arg
 
struct  rad_boot_memory_region
 
struct  rad_boot_info
 
struct  rad_memory_stats
 
struct  rad_perf_counter_info
 
struct  rad_timer_source_config
 
struct  rad_timer_source_ops
 
struct  rad_timer_source_info
 
struct  rad_task_info
 
struct  rad_task_config
 
struct  rad_core_info
 
struct  rad_scheduler_info
 
struct  rad_tree_node_info
 
struct  rad_overlay_info
 
struct  rad_vfs_stat
 
struct  rad_block_info
 
struct  rad_block_request
 
struct  rad_mac_address
 
struct  rad_ipv4_address
 
struct  rad_net_packet
 
struct  rad_net_link_info
 
struct  rad_posix_timeval
 
struct  rad_process_info
 
struct  rad_process_arch_ops
 
struct  rad_vfs_dirent
 
struct  rad_vfs_backend_ops
 
struct  rad_program_info
 
struct  rad_device_ops
 
struct  rad_input_event
 
struct  rad_framebuffer_rect
 
struct  rad_framebuffer_info
 
struct  rad_display_mode
 
struct  rad_framebuffer_ops
 
struct  rad_framebuffer_config
 
struct  rad_framebuffer_display_info
 
struct  rad_i2c_transfer
 
struct  rad_i2c_controller_ops
 
struct  rad_i2c_controller_config
 
struct  rad_i2c_driver
 
struct  rad_spi_transfer
 
struct  rad_dma_transfer
 
struct  rad_dma_backend_ops
 
struct  rad_dma_controller_config
 
struct  rad_spi_controller_ops
 
struct  rad_spi_controller_config
 
struct  rad_spi_driver
 
struct  rad_module_descriptor
 
struct  rad_module_info
 
struct  rad_driver_info
 
struct  rad_irq_domain_config
 
struct  rad_irq_resource
 
struct  rad_i2c_device_info
 
struct  rad_spi_device_info
 
struct  rad_dma_channel_info
 
struct  rad_irq_info
 
struct  rad_audio_format
 
struct  rad_serial_config
 
struct  rad_sd_config
 
struct  rad_tty_window_size
 

Macros

#define RADEK_VERSION_MAJOR   0
 
#define RADEK_VERSION_MINOR   1
 
#define RADEK_VERSION_PATCH   2
 
#define RAD_IOCTL_NONE   0u
 
#define RAD_IOCTL_WRITE   1u
 
#define RAD_IOCTL_READ   2u
 
#define RAD_IOCTL_READWRITE   3u
 
#define RAD_IOCTL(dir, type, nr, size)   ((((uint32_t)(dir) & 3u) << 30) | (((uint32_t)(size) & 0x3fffu) << 16) | (((uint32_t)(type) & 0xffu) << 8) | ((uint32_t)(nr) & 0xffu))
 
#define RAD_IO(type, nr)   RAD_IOCTL(RAD_IOCTL_NONE, type, nr, 0u)
 
#define RAD_IOR(type, nr, type_name)   RAD_IOCTL(RAD_IOCTL_READ, type, nr, sizeof(type_name))
 
#define RAD_IOW(type, nr, type_name)   RAD_IOCTL(RAD_IOCTL_WRITE, type, nr, sizeof(type_name))
 
#define RAD_IOWR(type, nr, type_name)   RAD_IOCTL(RAD_IOCTL_READWRITE, type, nr, sizeof(type_name))
 
#define RAD_IOCTL_DIR(request)   (((uint32_t)(request) >> 30) & 3u)
 
#define RAD_IOCTL_SIZE(request)   (((uint32_t)(request) >> 16) & 0x3fffu)
 
#define RAD_IOCTL_TYPE(request)   (((uint32_t)(request) >> 8) & 0xffu)
 
#define RAD_IOCTL_NR(request)   ((uint32_t)(request) & 0xffu)
 
#define RAD_IOCTL_TYPE_I2C   'I'
 
#define RAD_IOCTL_TYPE_SPI   'S'
 
#define RAD_IOCTL_TYPE_AUDIO   'A'
 
#define RAD_IOCTL_TYPE_SERIAL   'T'
 
#define RAD_IOCTL_TYPE_FRAMEBUFFER   'F'
 
#define RAD_IOCTL_TYPE_INPUT   'K'
 
#define RAD_IOCTL_TYPE_BLOCK   'B'
 
#define RAD_IOCTL_TYPE_NET   'N'
 
#define RAD_DEVICE_IOCTL_I2C_TRANSFER   RAD_IOWR(RAD_IOCTL_TYPE_I2C, 1u, struct rad_i2c_transfer)
 
#define RAD_DEVICE_IOCTL_SPI_TRANSFER   RAD_IOWR(RAD_IOCTL_TYPE_SPI, 1u, struct rad_spi_transfer)
 
#define RAD_DEVICE_IOCTL_AUDIO_CONFIGURE   RAD_IOW(RAD_IOCTL_TYPE_AUDIO, 1u, struct rad_audio_format)
 
#define RAD_DEVICE_IOCTL_SERIAL_CONFIGURE   RAD_IOW(RAD_IOCTL_TYPE_SERIAL, 1u, struct rad_serial_config)
 
#define RAD_DEVICE_IOCTL_FRAMEBUFFER_INFO   RAD_IOR(RAD_IOCTL_TYPE_FRAMEBUFFER, 1u, struct rad_framebuffer_info)
 
#define RAD_DEVICE_IOCTL_FRAMEBUFFER_FLUSH   RAD_IOW(RAD_IOCTL_TYPE_FRAMEBUFFER, 2u, struct rad_framebuffer_rect)
 
#define RAD_DEVICE_IOCTL_BLOCK_INFO   RAD_IOR(RAD_IOCTL_TYPE_BLOCK, 1u, struct rad_block_info)
 
#define RAD_DEVICE_IOCTL_BLOCK_READ   RAD_IOWR(RAD_IOCTL_TYPE_BLOCK, 2u, struct rad_block_request)
 
#define RAD_DEVICE_IOCTL_BLOCK_WRITE   RAD_IOWR(RAD_IOCTL_TYPE_BLOCK, 3u, struct rad_block_request)
 
#define RAD_DEVICE_IOCTL_BLOCK_FLUSH   RAD_IO(RAD_IOCTL_TYPE_BLOCK, 4u)
 
#define RAD_DEVICE_IOCTL_NET_LINK_INFO   RAD_IOR(RAD_IOCTL_TYPE_NET, 1u, struct rad_net_link_info)
 
#define RAD_DEVICE_IOCTL_NET_SEND   RAD_IOW(RAD_IOCTL_TYPE_NET, 2u, struct rad_net_packet)
 
#define RAD_DEVICE_IOCTL_NET_POLL   RAD_IO(RAD_IOCTL_TYPE_NET, 3u)
 
#define RAD_BOOT_MAX_ARGS   16u
 
#define RAD_BOOT_MAX_MEMORY_REGIONS   8u
 
#define RAD_BOOT_MAX_STRING   64u
 
#define RAD_OVERLAY_MAGIC   0x4f444152u
 
#define RAD_OVERLAY_VERSION   1u
 
#define RAD_TREE_MAX_PROPERTY_NAME   64u
 
#define RAD_TREE_MAX_PATH   96u
 
#define RAD_TREE_MAX_VALUE   96u
 
#define RAD_I2C_BUS_NAME_MAX   32u
 
#define RAD_SPI_BUS_NAME_MAX   32u
 
#define RAD_DRIVER_NAME_MAX   32u
 
#define RAD_COMPATIBLE_MAX   64u
 
#define RAD_MODULE_NAME_MAX   32u
 
#define RAD_MODULE_MAX_INFO   32u
 
#define RAD_IRQ_NAME_MAX   32u
 
#define RAD_IRQ_DOMAIN_NAME_MAX   32u
 
#define RAD_IRQ_MAX_RESOURCES   4u
 
#define RAD_FRAMEBUFFER_NAME_MAX   64u
 
#define RAD_DISPLAY_CONNECTOR_MAX   32u
 
#define RAD_FRAMEBUFFER_MAX_MODES   8u
 
#define RAD_PERF_NAME_MAX   32u
 
#define RAD_TIMER_NAME_MAX   32u
 
#define RAD_INPUT_QUEUE_NAME_MAX   64u
 
#define RAD_WAIT_FOREVER   0xffffffffu
 
#define RAD_BOOT_MEMORY_USABLE   1u
 
#define RAD_BOOT_MEMORY_RESERVED   2u
 
#define RAD_BOOT_MEMORY_PSRAM   3u
 
#define RAD_BOOT_MEMORY_MMIO   4u
 
#define RAD_WAIT_NOHANG   1u
 
#define RAD_FD_CLOEXEC   1u
 
#define RAD_FCNTL_GETFD   1u
 
#define RAD_FCNTL_SETFD   2u
 
#define RAD_FCNTL_GETFL   3u
 
#define RAD_TASK_CORE_ANY   (-1)
 
#define RAD_TASK_CORE_SERVICE   0
 

Typedefs

typedef enum rad_status rad_status_t
 
typedef enum rad_posix_syscall rad_posix_syscall_t
 
typedef enum rad_process_state rad_process_state_t
 
typedef enum rad_vfs_open_flags rad_vfs_open_flags_t
 
typedef enum rad_seek_origin rad_seek_origin_t
 
typedef enum rad_device_type rad_device_type_t
 
typedef enum rad_input_event_type rad_input_event_type_t
 
typedef enum rad_input_key rad_input_key_t
 
typedef enum rad_input_modifier_flags rad_input_modifier_flags_t
 
typedef enum rad_input_pointer_button_flags rad_input_pointer_button_flags_t
 
typedef enum rad_pixel_format rad_pixel_format_t
 
typedef enum rad_sd_mode rad_sd_mode_t
 
typedef enum rad_spi_transfer_mode rad_spi_transfer_mode_t
 
typedef enum rad_dma_transfer_type rad_dma_transfer_type_t
 
typedef enum rad_dma_request_id rad_dma_request_id_t
 
typedef enum rad_display_output_type rad_display_output_type_t
 
typedef enum rad_tty_mode_flags rad_tty_mode_flags_t
 
typedef enum rad_irq_trigger rad_irq_trigger_t
 
typedef enum rad_task_state rad_task_state_t
 
typedef struct rad_kernel_config rad_kernel_config_t
 
typedef struct rad_boot_arg rad_boot_arg_t
 
typedef struct rad_boot_memory_region rad_boot_memory_region_t
 
typedef struct rad_boot_info rad_boot_info_t
 
typedef struct rad_memory_stats rad_memory_stats_t
 
typedef struct rad_perf_counter_info rad_perf_counter_info_t
 
typedef struct rad_timer_source_config rad_timer_source_config_t
 
typedef struct rad_timer_source_ops rad_timer_source_ops_t
 
typedef struct rad_timer_source_info rad_timer_source_info_t
 
typedef struct rad_task_info rad_task_info_t
 
typedef struct rad_task_config rad_task_config_t
 
typedef struct rad_core_info rad_core_info_t
 
typedef enum rad_scheduler_mode rad_scheduler_mode_t
 
typedef struct rad_scheduler_info rad_scheduler_info_t
 
typedef enum rad_tree_property_type rad_tree_property_type_t
 
typedef struct rad_tree_node_handle * rad_tree_node_t
 
typedef struct rad_tree_node_info rad_tree_node_info_t
 
typedef struct rad_overlay_info rad_overlay_info_t
 
typedef struct rad_vfs_stat rad_vfs_stat_t
 
typedef struct rad_block_info rad_block_info_t
 
typedef struct rad_block_request rad_block_request_t
 
typedef struct rad_mac_address rad_mac_address_t
 
typedef struct rad_ipv4_address rad_ipv4_address_t
 
typedef struct rad_net_packet rad_net_packet_t
 
typedef struct rad_net_link_info rad_net_link_info_t
 
typedef struct rad_posix_timeval rad_posix_timeval_t
 
typedef struct rad_process_info rad_process_info_t
 
typedef struct rad_process_arch_ops rad_process_arch_ops_t
 
typedef struct rad_vfs_dirent rad_vfs_dirent_t
 
typedef int(* rad_vfs_list_callback_t) (const char *name, const rad_vfs_stat_t *stat, void *context)
 
typedef struct rad_vfs_backend_ops rad_vfs_backend_ops_t
 
typedef enum rad_program_state rad_program_state_t
 
typedef struct rad_program_info rad_program_info_t
 
typedef struct rad_device_ops rad_device_ops_t
 
typedef struct rad_input_event rad_input_event_t
 
typedef struct rad_framebuffer_rect rad_framebuffer_rect_t
 
typedef struct rad_framebuffer_info rad_framebuffer_info_t
 
typedef struct rad_display_mode rad_display_mode_t
 
typedef struct rad_framebuffer_ops rad_framebuffer_ops_t
 
typedef struct rad_framebuffer_handle * rad_framebuffer_t
 
typedef struct rad_framebuffer_config rad_framebuffer_config_t
 
typedef struct rad_framebuffer_display_info rad_framebuffer_display_info_t
 
typedef struct rad_i2c_transfer rad_i2c_transfer_t
 
typedef struct rad_i2c_bus_handle * rad_i2c_bus_t
 
typedef struct rad_i2c_device rad_i2c_device_t
 
typedef struct rad_i2c_controller_ops rad_i2c_controller_ops_t
 
typedef struct rad_i2c_controller_config rad_i2c_controller_config_t
 
typedef struct rad_i2c_driver rad_i2c_driver_t
 
typedef struct rad_spi_transfer rad_spi_transfer_t
 
typedef struct rad_spi_bus_handle * rad_spi_bus_t
 
typedef struct rad_spi_device rad_spi_device_t
 
typedef struct rad_dma_channel_handle * rad_dma_channel_t
 
typedef struct rad_dma_transfer rad_dma_transfer_t
 
typedef struct rad_dma_backend_ops rad_dma_backend_ops_t
 
typedef struct rad_dma_controller_config rad_dma_controller_config_t
 
typedef struct rad_spi_controller_ops rad_spi_controller_ops_t
 
typedef struct rad_spi_controller_config rad_spi_controller_config_t
 
typedef struct rad_spi_driver rad_spi_driver_t
 
typedef struct rad_module_descriptor rad_module_descriptor_t
 
typedef enum rad_module_state rad_module_state_t
 
typedef struct rad_module_info rad_module_info_t
 
typedef struct rad_driver_info rad_driver_info_t
 
typedef struct rad_irq_domain_handle * rad_irq_domain_t
 
typedef struct rad_irq_domain_config rad_irq_domain_config_t
 
typedef struct rad_irq_resource rad_irq_resource_t
 
typedef struct rad_i2c_device_info rad_i2c_device_info_t
 
typedef struct rad_spi_device_info rad_spi_device_info_t
 
typedef struct rad_dma_channel_info rad_dma_channel_info_t
 
typedef struct rad_irq_info rad_irq_info_t
 
typedef struct rad_audio_format rad_audio_format_t
 
typedef struct rad_serial_config rad_serial_config_t
 
typedef struct rad_sd_config rad_sd_config_t
 
typedef void(* rad_task_entry_t) (void *context)
 
typedef void(* rad_terminal_write_t) (const char *text, void *context)
 
typedef rad_status_t(* rad_terminal_handler_t) (int argc, const char **argv, rad_terminal_write_t write, void *write_context, void *command_context)
 
typedef void(* rad_tty_output_t) (const void *data, size_t size, void *context)
 
typedef void(* rad_irq_handler_t) (uint32_t irq, void *context)
 
typedef void(* rad_work_handler_t) (void *context)
 
typedef struct rad_task_handle * rad_task_t
 
typedef struct rad_mutex_handle * rad_mutex_t
 
typedef struct rad_event_handle * rad_event_t
 
typedef struct rad_wait_queue_handle * rad_wait_queue_t
 
typedef struct rad_input_queue_handle * rad_input_queue_t
 
typedef struct rad_file_handle * rad_file_t
 
typedef struct rad_dir_handle * rad_dir_t
 
typedef struct rad_device_handle * rad_device_t
 
typedef struct rad_program_handle * rad_program_t
 
typedef struct rad_tty_handle * rad_tty_t
 
typedef struct rad_pty_handle * rad_pty_t
 
typedef struct rad_tty_window_size rad_tty_window_size_t
 

Enumerations

enum  rad_status {
  RAD_STATUS_OK = 0 , RAD_STATUS_ERROR = -1 , RAD_STATUS_INVALID_ARGUMENT = -2 , RAD_STATUS_NOT_FOUND = -3 ,
  RAD_STATUS_NO_MEMORY = -4 , RAD_STATUS_TIMEOUT = -5 , RAD_STATUS_NOT_SUPPORTED = -6 , RAD_STATUS_ALREADY_EXISTS = -7 ,
  RAD_STATUS_NOT_INITIALIZED = -8
}
 
enum  rad_posix_syscall {
  RAD_SYSCALL_READ = 0 , RAD_SYSCALL_WRITE = 1 , RAD_SYSCALL_OPEN = 2 , RAD_SYSCALL_CLOSE = 3 ,
  RAD_SYSCALL_IOCTL = 4 , RAD_SYSCALL_LSEEK = 5 , RAD_SYSCALL_STAT = 6 , RAD_SYSCALL_FSTAT = 7 ,
  RAD_SYSCALL_GETTIMEOFDAY = 8 , RAD_SYSCALL_NANOSLEEP = 9 , RAD_SYSCALL_EXIT = 10 , RAD_SYSCALL_FORK = 11 ,
  RAD_SYSCALL_EXECVE = 12 , RAD_SYSCALL_WAITPID = 13 , RAD_SYSCALL_GETPID = 14 , RAD_SYSCALL_GETPPID = 15 ,
  RAD_SYSCALL_DUP = 16 , RAD_SYSCALL_DUP2 = 17 , RAD_SYSCALL_CHDIR = 18 , RAD_SYSCALL_GETCWD = 19 ,
  RAD_SYSCALL_BRK = 20 , RAD_SYSCALL_PIPE = 21 , RAD_SYSCALL_FCNTL = 22 , RAD_SYSCALL_ACCESS = 23 ,
  RAD_SYSCALL_ISATTY = 24 , RAD_SYSCALL_SOCKET = 25 , RAD_SYSCALL_BIND = 26 , RAD_SYSCALL_CONNECT = 27 ,
  RAD_SYSCALL_LISTEN = 28 , RAD_SYSCALL_ACCEPT = 29 , RAD_SYSCALL_SENDTO = 30 , RAD_SYSCALL_RECVFROM = 31 ,
  RAD_SYSCALL_SHUTDOWN = 32 , RAD_SYSCALL_SETSOCKOPT = 33 , RAD_SYSCALL_GETSOCKOPT = 34
}
 
enum  rad_process_state { RAD_PROCESS_RUNNING = 1 , RAD_PROCESS_WAITING = 2 , RAD_PROCESS_ZOMBIE = 3 }
 
enum  rad_vfs_open_flags {
  RAD_VFS_READ = 1u << 0 , RAD_VFS_WRITE = 1u << 1 , RAD_VFS_CREATE = 1u << 2 , RAD_VFS_TRUNCATE = 1u << 3 ,
  RAD_VFS_APPEND = 1u << 4
}
 
enum  rad_seek_origin { RAD_SEEK_SET = 0 , RAD_SEEK_CUR = 1 , RAD_SEEK_END = 2 }
 
enum  rad_device_type {
  RAD_DEVICE_GENERIC = 0 , RAD_DEVICE_I2C = 1 , RAD_DEVICE_SPI = 2 , RAD_DEVICE_AUDIO = 3 ,
  RAD_DEVICE_SERIAL = 4 , RAD_DEVICE_FRAMEBUFFER = 5 , RAD_DEVICE_TTY = 6 , RAD_DEVICE_PTY = 7 ,
  RAD_DEVICE_INPUT = 8 , RAD_DEVICE_BLOCK = 9 , RAD_DEVICE_NETWORK = 10
}
 
enum  rad_input_event_type {
  RAD_INPUT_EVENT_NONE = 0 , RAD_INPUT_EVENT_KEY = 1 , RAD_INPUT_EVENT_POINTER_MOTION = 2 , RAD_INPUT_EVENT_POINTER_BUTTON = 3 ,
  RAD_INPUT_EVENT_POINTER_SCROLL = 4
}
 
enum  rad_input_key {
  RAD_INPUT_KEY_UNKNOWN = 0 , RAD_INPUT_KEY_ESCAPE = 1 , RAD_INPUT_KEY_ENTER = 2 , RAD_INPUT_KEY_BACKSPACE = 3 ,
  RAD_INPUT_KEY_TAB = 4 , RAD_INPUT_KEY_UP = 5 , RAD_INPUT_KEY_DOWN = 6 , RAD_INPUT_KEY_LEFT = 7 ,
  RAD_INPUT_KEY_RIGHT = 8 , RAD_INPUT_KEY_HOME = 9 , RAD_INPUT_KEY_END = 10 , RAD_INPUT_KEY_PAGE_UP = 11 ,
  RAD_INPUT_KEY_PAGE_DOWN = 12 , RAD_INPUT_KEY_INSERT = 13 , RAD_INPUT_KEY_DELETE = 14 , RAD_INPUT_KEY_LEFT_SHIFT = 15 ,
  RAD_INPUT_KEY_RIGHT_SHIFT = 16 , RAD_INPUT_KEY_LEFT_CTRL = 17 , RAD_INPUT_KEY_RIGHT_CTRL = 18 , RAD_INPUT_KEY_LEFT_ALT = 19 ,
  RAD_INPUT_KEY_RIGHT_ALT = 20 , RAD_INPUT_KEY_CAPS_LOCK = 21
}
 
enum  rad_input_modifier_flags {
  RAD_INPUT_MOD_SHIFT = 1u << 0 , RAD_INPUT_MOD_CTRL = 1u << 1 , RAD_INPUT_MOD_ALT = 1u << 2 , RAD_INPUT_MOD_META = 1u << 3 ,
  RAD_INPUT_MOD_CAPS_LOCK = 1u << 4
}
 
enum  rad_input_pointer_button_flags { RAD_INPUT_POINTER_BUTTON_LEFT = 1u << 0 , RAD_INPUT_POINTER_BUTTON_RIGHT = 1u << 1 , RAD_INPUT_POINTER_BUTTON_MIDDLE = 1u << 2 }
 
enum  rad_pixel_format { RAD_PIXEL_FORMAT_RGB565 = 1 , RAD_PIXEL_FORMAT_XRGB8888 = 2 }
 
enum  rad_sd_mode { RAD_SD_MODE_AUTO = 0 , RAD_SD_MODE_SPI = 1 , RAD_SD_MODE_PIO_SDIO = 2 }
 
enum  rad_spi_transfer_mode { RAD_SPI_TRANSFER_MODE_AUTO = 0 , RAD_SPI_TRANSFER_MODE_PIO = 1 , RAD_SPI_TRANSFER_MODE_DMA = 2 }
 
enum  rad_dma_transfer_type { RAD_DMA_MEMORY_TO_MEMORY = 0 , RAD_DMA_MEMORY_TO_DEVICE = 1 , RAD_DMA_DEVICE_TO_MEMORY = 2 }
 
enum  rad_dma_request_id {
  RAD_DMA_DREQ_NONE = 0 , RAD_DMA_DREQ_SPI0_TX = 1 , RAD_DMA_DREQ_SPI0_RX = 2 , RAD_DMA_DREQ_SPI1_TX = 3 ,
  RAD_DMA_DREQ_SPI1_RX = 4 , RAD_DMA_DREQ_RP2350_HSTX_TX = 5
}
 
enum  rad_display_output_type {
  RAD_DISPLAY_OUTPUT_MEMORY = 0 , RAD_DISPLAY_OUTPUT_CIRCLE = 1 , RAD_DISPLAY_OUTPUT_GRUB = 2 , RAD_DISPLAY_OUTPUT_RP2350_HSTX = 3 ,
  RAD_DISPLAY_OUTPUT_SPI_PANEL = 4
}
 
enum  rad_tty_mode_flags { RAD_TTY_MODE_CANONICAL = 1u << 0 , RAD_TTY_MODE_ECHO = 1u << 1 , RAD_TTY_MODE_CRLF = 1u << 2 }
 
enum  rad_irq_trigger {
  RAD_IRQ_TRIGGER_NONE = 0 , RAD_IRQ_TRIGGER_EDGE_RISING = 1u << 0 , RAD_IRQ_TRIGGER_EDGE_FALLING = 1u << 1 , RAD_IRQ_TRIGGER_LEVEL_HIGH = 1u << 2 ,
  RAD_IRQ_TRIGGER_LEVEL_LOW = 1u << 3
}
 
enum  rad_task_state {
  RAD_TASK_NEW = 0 , RAD_TASK_READY = 1 , RAD_TASK_RUNNING = 2 , RAD_TASK_SLEEPING = 3 ,
  RAD_TASK_BLOCKED = 4 , RAD_TASK_FINISHED = 5 , RAD_TASK_DETACHED = 6
}
 
enum  rad_scheduler_mode { RAD_SCHEDULER_COOPERATIVE = 0 , RAD_SCHEDULER_PREEMPTIVE = 1 }
 
enum  rad_tree_property_type {
  RAD_TREE_PROP_BOOL = 1 , RAD_TREE_PROP_U32 = 2 , RAD_TREE_PROP_STRING = 3 , RAD_TREE_PROP_U32_ARRAY = 4 ,
  RAD_TREE_PROP_STRING_ARRAY = 5
}
 
enum  rad_program_state { RAD_PROGRAM_LOADED = 0 , RAD_PROGRAM_RUNNING = 1 , RAD_PROGRAM_FINISHED = 2 , RAD_PROGRAM_FAILED = 3 }
 
enum  rad_module_state { RAD_MODULE_REGISTERED = 1 , RAD_MODULE_INITIALIZED = 2 , RAD_MODULE_FAILED = 3 , RAD_MODULE_EXITED = 4 }
 

Functions

rad_status_t rad_kernel_init (const rad_kernel_config_t *config)
 
void rad_kernel_shutdown (void)
 
int rad_kernel_is_initialized (void)
 
const char * rad_kernel_backend_name (void)
 
const char * rad_kernel_version_string (void)
 
rad_status_t rad_kernel_poll (void)
 
rad_status_t rad_kernel_run (void)
 
void rad_kernel_request_shutdown (void)
 
int rad_kernel_is_shutdown_requested (void)
 
int rad_vprintk (const char *format, va_list args)
 
int rad_printk (const char *format,...)
 
int rad_early_vprintk (const char *format, va_list args)
 
int rad_early_printk (const char *format,...)
 
void rad_debug_marker (const char *marker)
 
rad_status_t rad_cpu_interrupts_enable (void)
 
rad_status_t rad_cpu_interrupts_disable (void)
 
int rad_cpu_interrupts_enabled (void)
 
void rad_cpu_idle (void)
 
void rad_cpu_halt_forever (void)
 
rad_status_t rad_boot_info_set (const rad_boot_info_t *boot_info)
 
rad_status_t rad_boot_info_get (rad_boot_info_t *boot_info)
 
const char * rad_boot_arg_get (const char *key)
 
uint64_t rad_time_micros (void)
 
uint64_t rad_time_millis (void)
 
void rad_sleep_ms (uint32_t milliseconds)
 
void rad_sleep_us (uint32_t microseconds)
 
uint64_t rad_perf_now_cycles (void)
 
void rad_perf_counter_add (const char *name, uint64_t delta)
 
size_t rad_perf_counter_list (rad_perf_counter_info_t *counters, size_t capacity)
 
rad_status_t rad_work_submit (const char *name, rad_work_handler_t handler, void *context)
 
rad_status_t rad_work_poll (size_t budget, size_t *ran)
 
rad_status_t rad_wait_queue_create (rad_wait_queue_t *queue)
 
void rad_wait_queue_destroy (rad_wait_queue_t queue)
 
rad_status_t rad_wait_queue_wait (rad_wait_queue_t queue, uint32_t timeout_ms)
 
rad_status_t rad_wait_queue_wake_one (rad_wait_queue_t queue)
 
rad_status_t rad_wait_queue_wake_all (rad_wait_queue_t queue)
 
rad_status_t rad_timer_source_register (const rad_timer_source_config_t *config, const rad_timer_source_ops_t *ops)
 
rad_status_t rad_timer_source_unregister (const char *name)
 
void rad_timer_tick (uint64_t elapsed_micros)
 
rad_status_t rad_timer_schedule_oneshot (uint64_t delay_micros)
 
rad_status_t rad_timer_cancel_oneshot (void)
 
size_t rad_timer_list (rad_timer_source_info_t *timers, size_t capacity)
 
rad_status_t rad_task_create (rad_task_t *task, const char *name, rad_task_entry_t entry, void *context, size_t stack_size)
 
rad_status_t rad_task_create_config (rad_task_t *task, const rad_task_config_t *config, rad_task_entry_t entry, void *context)
 
rad_status_t rad_task_join (rad_task_t task)
 
void rad_task_detach (rad_task_t task)
 
uint64_t rad_task_current_id (void)
 
int rad_task_current_core (void)
 
void rad_task_yield (void)
 
void rad_task_sleep_ms (uint32_t milliseconds)
 
void rad_task_sleep_us (uint32_t microseconds)
 
size_t rad_task_list (rad_task_info_t *tasks, size_t capacity)
 
rad_status_t rad_core_info_get (rad_core_info_t *info)
 
rad_status_t rad_scheduler_info_get (rad_scheduler_info_t *info)
 
void rad_scheduler_yield_from_irq (void)
 
void rad_scheduler_set_preemption_enabled (int enabled)
 
uint32_t rad_scheduler_current_core (void)
 
uint32_t rad_scheduler_online_core_mask (void)
 
rad_status_t rad_mutex_create (rad_mutex_t *mutex)
 
void rad_mutex_destroy (rad_mutex_t mutex)
 
rad_status_t rad_mutex_lock (rad_mutex_t mutex)
 
rad_status_t rad_mutex_unlock (rad_mutex_t mutex)
 
rad_status_t rad_event_create (rad_event_t *event, int initially_signaled)
 
void rad_event_destroy (rad_event_t event)
 
rad_status_t rad_event_wait (rad_event_t event, uint32_t timeout_ms)
 
rad_status_t rad_event_signal (rad_event_t event)
 
rad_status_t rad_event_reset (rad_event_t event)
 
void * rad_memory_alloc (size_t size)
 
void rad_memory_free (void *pointer)
 
void rad_memory_get_stats (rad_memory_stats_t *stats)
 
rad_status_t rad_vfs_mount_host (const char *mount_point, const char *host_path)
 
rad_status_t rad_vfs_mount_sd (const rad_sd_config_t *config)
 
rad_status_t rad_vfs_mount_provider (const char *mount_point, const rad_vfs_backend_ops_t *ops)
 
rad_status_t rad_vfs_unmount (const char *mount_point)
 
rad_status_t rad_vfs_open (const char *path, uint32_t flags, rad_file_t *file)
 
rad_status_t rad_vfs_read (rad_file_t file, void *buffer, size_t size, size_t *bytes_read)
 
rad_status_t rad_vfs_write (rad_file_t file, const void *buffer, size_t size, size_t *bytes_written)
 
rad_status_t rad_vfs_seek (rad_file_t file, int64_t offset, rad_seek_origin_t origin)
 
uint64_t rad_vfs_tell (rad_file_t file)
 
void rad_vfs_close (rad_file_t file)
 
rad_status_t rad_vfs_stat (const char *path, rad_vfs_stat_t *stat)
 
rad_status_t rad_vfs_list (const char *path, rad_vfs_list_callback_t callback, void *context)
 
rad_status_t rad_vfs_mkdir (const char *path)
 
rad_status_t rad_vfs_remove (const char *path)
 
rad_status_t rad_vfs_rename (const char *old_path, const char *new_path)
 
rad_status_t rad_vfs_rmdir (const char *path)
 
rad_status_t rad_vfs_chdir (const char *path)
 
rad_status_t rad_vfs_getcwd (char *buffer, size_t size)
 
rad_status_t rad_vfs_opendir (const char *path, rad_dir_t *dir)
 
rad_status_t rad_vfs_readdir (rad_dir_t dir, rad_vfs_dirent_t *entry)
 
void rad_vfs_closedir (rad_dir_t dir)
 
int32_t rad_process_current_pid (void)
 
int32_t rad_process_parent_pid (void)
 
int32_t rad_process_fork (void)
 
int32_t rad_process_execve (const char *path, const char *const argv[])
 
int32_t rad_process_waitpid (int32_t pid, int32_t *status, uint32_t options)
 
void rad_process_exit (int32_t status)
 
size_t rad_process_list (rad_process_info_t *processes, size_t capacity)
 
int32_t rad_process_create (const char *path, int32_t parent_pid)
 
rad_status_t rad_process_attach_task (int32_t pid, rad_task_t task)
 
void rad_process_set_current_pid (int32_t pid)
 
rad_status_t rad_process_mark_exec (int32_t pid, const char *path)
 
rad_status_t rad_process_clone_fds (int32_t parent_pid, int32_t child_pid)
 
rad_status_t rad_process_arch_register (const rad_process_arch_ops_t *ops)
 
int32_t rad_process_fork_from_arch_frame (void *trap_frame)
 
int32_t rad_process_reap (int32_t pid, int32_t *status)
 
rad_status_t rad_module_register (const rad_module_descriptor_t *descriptor)
 
rad_status_t rad_module_unregister (const char *name)
 
size_t rad_module_list (rad_module_info_t *modules, size_t capacity)
 
rad_status_t rad_irq_register (uint32_t irq, const char *name, rad_irq_handler_t handler, void *context)
 
rad_status_t rad_irq_unregister (uint32_t irq)
 
rad_status_t rad_irq_enable (uint32_t irq)
 
rad_status_t rad_irq_disable (uint32_t irq)
 
rad_status_t rad_irq_dispatch (uint32_t irq)
 
size_t rad_irq_list (rad_irq_info_t *irqs, size_t capacity)
 
rad_status_t rad_irq_domain_register (const rad_irq_domain_config_t *config, rad_irq_domain_t *domain)
 
rad_status_t rad_irq_domain_unregister (const char *tree_path)
 
rad_status_t rad_irq_domain_find (const char *tree_path, rad_irq_domain_t *domain)
 
size_t rad_irq_resolve_tree (rad_tree_node_t node, rad_irq_resource_t *resources, size_t capacity)
 
rad_status_t rad_irq_resource_enable (const rad_irq_resource_t *resource)
 
rad_status_t rad_irq_resource_disable (const rad_irq_resource_t *resource)
 
rad_status_t rad_irq_resource_register_handler (const rad_irq_resource_t *resource, const char *name, rad_irq_handler_t handler, void *context)
 
int32_t rad_fd_open (const char *path, uint32_t flags)
 
int32_t rad_fd_close (int32_t fd)
 
intptr_t rad_fd_read (int32_t fd, void *buffer, size_t size)
 
intptr_t rad_fd_write (int32_t fd, const void *buffer, size_t size)
 
int64_t rad_fd_lseek (int32_t fd, int64_t offset, rad_seek_origin_t origin)
 
int32_t rad_fd_ioctl (int32_t fd, uint32_t request, void *argument)
 
int32_t rad_fd_stat (const char *path, rad_vfs_stat_t *stat)
 
int32_t rad_fd_fstat (int32_t fd, rad_vfs_stat_t *stat)
 
int32_t rad_fd_dup (int32_t fd)
 
int32_t rad_fd_dup2 (int32_t old_fd, int32_t new_fd)
 
int32_t rad_fd_fcntl (int32_t fd, uint32_t command, uintptr_t argument)
 
int32_t rad_pipe_create (int32_t pipefd[2])
 
intptr_t rad_syscall_dispatch (uintptr_t number, uintptr_t arg0, uintptr_t arg1, uintptr_t arg2, uintptr_t arg3, uintptr_t arg4, uintptr_t arg5)
 
rad_status_t rad_program_load (const char *path, rad_program_t *program)
 
rad_status_t rad_program_spawn (rad_program_t program, int argc, const char **argv, rad_task_t *task)
 
void rad_program_unload (rad_program_t program)
 
size_t rad_program_list (rad_program_info_t *programs, size_t capacity)
 
rad_status_t rad_overlay_load_memory (const void *data, size_t size)
 
rad_status_t rad_overlay_load_file (const char *path)
 
rad_status_t rad_overlay_apply_boot (void)
 
size_t rad_overlay_list (rad_overlay_info_t *overlays, size_t capacity)
 
size_t rad_tree_list (rad_tree_node_info_t *nodes, size_t capacity)
 
rad_tree_node_t rad_tree_find (const char *path)
 
rad_status_t rad_tree_get_property_u32 (rad_tree_node_t node, const char *name, uint32_t *value)
 
size_t rad_tree_get_property_u32_array (rad_tree_node_t node, const char *name, uint32_t *values, size_t capacity)
 
rad_status_t rad_tree_get_property_bool (rad_tree_node_t node, const char *name, int *value)
 
rad_status_t rad_tree_get_property_string (rad_tree_node_t node, const char *name, char *buffer, size_t size)
 
rad_status_t rad_device_register (const char *name, rad_device_type_t type, const rad_device_ops_t *ops)
 
rad_status_t rad_device_unregister (const char *name)
 
rad_status_t rad_device_open (const char *name, rad_device_t *device)
 
void rad_device_close (rad_device_t device)
 
rad_status_t rad_device_read (rad_device_t device, void *buffer, size_t size, size_t *bytes_read)
 
rad_status_t rad_device_write (rad_device_t device, const void *buffer, size_t size, size_t *bytes_written)
 
rad_status_t rad_device_ioctl (rad_device_t device, uint32_t request, void *argument)
 
size_t rad_device_list (char names[][64], rad_device_type_t *types, size_t capacity)
 
rad_status_t rad_input_device_register (const char *name, const rad_device_ops_t *ops)
 
rad_status_t rad_input_device_unregister (const char *name)
 
rad_status_t rad_input_open (const char *name, rad_device_t *device)
 
rad_status_t rad_input_read_event (rad_device_t device, rad_input_event_t *event)
 
rad_status_t rad_input_queue_create (const char *name, size_t capacity, rad_input_queue_t *queue)
 
void rad_input_queue_destroy (rad_input_queue_t queue)
 
rad_status_t rad_input_queue_push (rad_input_queue_t queue, const rad_input_event_t *event)
 
rad_status_t rad_input_queue_read (rad_input_queue_t queue, rad_input_event_t *events, size_t capacity, uint32_t timeout_ms, size_t *count)
 
rad_status_t rad_input_device_register_queue (const char *name, rad_input_queue_t queue)
 
rad_status_t rad_block_device_register (const char *name, const rad_device_ops_t *ops)
 
rad_status_t rad_block_open (const char *name, rad_device_t *device)
 
rad_status_t rad_block_info (rad_device_t device, rad_block_info_t *info)
 
rad_status_t rad_block_read (rad_device_t device, uint64_t sector, uint32_t sector_count, void *buffer)
 
rad_status_t rad_block_write (rad_device_t device, uint64_t sector, uint32_t sector_count, const void *buffer)
 
rad_status_t rad_block_flush (rad_device_t device)
 
rad_status_t rad_net_device_register (const char *name, const rad_device_ops_t *ops)
 
rad_status_t rad_net_open (const char *name, rad_device_t *device)
 
rad_status_t rad_net_link_info (rad_device_t device, rad_net_link_info_t *info)
 
rad_status_t rad_net_send (rad_device_t device, const void *data, size_t length)
 
rad_status_t rad_net_poll (rad_device_t device)
 
rad_status_t rad_framebuffer_register (const char *name, const rad_framebuffer_info_t *info, const rad_framebuffer_ops_t *ops)
 
rad_status_t rad_framebuffer_register_ex (const rad_framebuffer_config_t *config, const rad_framebuffer_ops_t *ops)
 
rad_status_t rad_framebuffer_unregister (const char *name)
 
rad_status_t rad_framebuffer_open (const char *name, rad_framebuffer_t *framebuffer)
 
rad_status_t rad_framebuffer_open_primary (rad_framebuffer_t *framebuffer)
 
void rad_framebuffer_close (rad_framebuffer_t framebuffer)
 
rad_status_t rad_framebuffer_get_info (rad_framebuffer_t framebuffer, rad_framebuffer_info_t *info)
 
rad_status_t rad_framebuffer_get_display_info (rad_framebuffer_t framebuffer, rad_framebuffer_display_info_t *info)
 
rad_status_t rad_framebuffer_set_primary (const char *name)
 
rad_status_t rad_framebuffer_set_mode (rad_framebuffer_t framebuffer, uint32_t mode_index)
 
rad_status_t rad_framebuffer_blank (rad_framebuffer_t framebuffer, int blanked)
 
rad_status_t rad_framebuffer_get_vsync_counter (rad_framebuffer_t framebuffer, uint64_t *counter)
 
rad_status_t rad_framebuffer_clear (rad_framebuffer_t framebuffer, uint32_t color)
 
rad_status_t rad_framebuffer_draw_text (rad_framebuffer_t framebuffer, uint32_t cell_x, uint32_t cell_y, const char *text, uint32_t foreground, uint32_t background)
 
rad_status_t rad_framebuffer_flush (rad_framebuffer_t framebuffer, const rad_framebuffer_rect_t *rect)
 
size_t rad_framebuffer_list (rad_framebuffer_info_t *framebuffers, char names[][64], size_t capacity)
 
size_t rad_framebuffer_list_ex (rad_framebuffer_display_info_t *framebuffers, size_t capacity)
 
rad_status_t rad_i2c_controller_register (const rad_i2c_controller_config_t *config, const rad_i2c_controller_ops_t *ops)
 
rad_status_t rad_i2c_controller_unregister (uint32_t bus_id)
 
rad_status_t rad_i2c_bus_open (uint32_t bus_id, rad_i2c_bus_t *bus)
 
void rad_i2c_bus_close (rad_i2c_bus_t bus)
 
rad_status_t rad_i2c_transfer (rad_i2c_bus_t bus, const rad_i2c_transfer_t *transfer)
 
rad_status_t rad_i2c_bind_tree (void)
 
rad_status_t rad_i2c_driver_register (const rad_i2c_driver_t *driver)
 
rad_status_t rad_i2c_driver_unregister (const char *name)
 
rad_status_t rad_i2c_device_open (uint32_t bus_id, uint8_t address, rad_i2c_device_t **device)
 
void rad_i2c_device_close (rad_i2c_device_t *device)
 
rad_status_t rad_i2c_device_transfer (rad_i2c_device_t *device, const rad_i2c_transfer_t *transfer)
 
size_t rad_i2c_device_irq_count (const rad_i2c_device_t *device)
 
rad_status_t rad_i2c_device_get_irq (const rad_i2c_device_t *device, size_t index, rad_irq_resource_t *resource)
 
size_t rad_i2c_list_devices (rad_i2c_device_info_t *devices, size_t capacity)
 
rad_status_t rad_i2c_transfer_device (rad_device_t device, const rad_i2c_transfer_t *transfer)
 
rad_status_t rad_spi_controller_register (const rad_spi_controller_config_t *config, const rad_spi_controller_ops_t *ops)
 
rad_status_t rad_spi_controller_unregister (uint32_t bus_id)
 
rad_status_t rad_spi_bus_open (uint32_t bus_id, rad_spi_bus_t *bus)
 
void rad_spi_bus_close (rad_spi_bus_t bus)
 
rad_status_t rad_spi_transfer (rad_spi_bus_t bus, const rad_spi_transfer_t *transfer)
 
rad_status_t rad_spi_driver_register (const rad_spi_driver_t *driver)
 
rad_status_t rad_spi_driver_unregister (const char *name)
 
rad_status_t rad_spi_device_open (uint32_t bus_id, uint8_t cs, rad_spi_device_t **device)
 
void rad_spi_device_close (rad_spi_device_t *device)
 
rad_status_t rad_spi_device_transfer (rad_spi_device_t *device, const rad_spi_transfer_t *transfer)
 
size_t rad_spi_device_irq_count (const rad_spi_device_t *device)
 
rad_status_t rad_spi_device_get_irq (const rad_spi_device_t *device, size_t index, rad_irq_resource_t *resource)
 
size_t rad_spi_list_devices (rad_spi_device_info_t *devices, size_t capacity)
 
rad_status_t rad_spi_transfer_device (rad_device_t device, const rad_spi_transfer_t *transfer)
 
rad_status_t rad_dma_controller_register (const rad_dma_controller_config_t *config, const rad_dma_backend_ops_t *ops)
 
rad_status_t rad_dma_controller_unregister (const char *name)
 
rad_status_t rad_dma_channel_request (rad_dma_request_id_t request_id, rad_dma_channel_t *channel)
 
void rad_dma_channel_release (rad_dma_channel_t channel)
 
rad_status_t rad_dma_submit (rad_dma_channel_t channel, const rad_dma_transfer_t *transfer)
 
rad_status_t rad_dma_wait (rad_dma_channel_t channel, uint32_t timeout_ms)
 
rad_status_t rad_dma_cancel (rad_dma_channel_t channel)
 
size_t rad_dma_list_channels (rad_dma_channel_info_t *channels, size_t capacity)
 
size_t rad_driver_list (rad_driver_info_t *drivers, size_t capacity)
 
rad_status_t rad_audio_configure (rad_device_t device, const rad_audio_format_t *format)
 
rad_status_t rad_serial_configure (rad_device_t device, const rad_serial_config_t *config)
 
rad_status_t rad_tty_open (const char *name, rad_tty_t *tty)
 
void rad_tty_close (rad_tty_t tty)
 
rad_status_t rad_tty_read (rad_tty_t tty, void *buffer, size_t size, size_t *bytes_read)
 
rad_status_t rad_tty_write (rad_tty_t tty, const void *buffer, size_t size, size_t *bytes_written)
 
rad_status_t rad_tty_push_input (rad_tty_t tty, const void *buffer, size_t size, size_t *bytes_consumed)
 
rad_status_t rad_tty_set_output_callback (rad_tty_t tty, rad_tty_output_t output, void *context)
 
rad_status_t rad_tty_set_window_size (rad_tty_t tty, const rad_tty_window_size_t *size)
 
rad_status_t rad_tty_get_window_size (rad_tty_t tty, rad_tty_window_size_t *size)
 
rad_status_t rad_tty_set_mode (rad_tty_t tty, uint32_t mode)
 
rad_status_t rad_tty_get_mode (rad_tty_t tty, uint32_t *mode)
 
rad_status_t rad_pty_open_pair (const char *name, rad_pty_t *pty)
 
void rad_pty_close (rad_pty_t pty)
 
rad_status_t rad_pty_read_master (rad_pty_t pty, void *buffer, size_t size, size_t *bytes_read)
 
rad_status_t rad_pty_write_master (rad_pty_t pty, const void *buffer, size_t size, size_t *bytes_written)
 
rad_status_t rad_pty_read_slave (rad_pty_t pty, void *buffer, size_t size, size_t *bytes_read)
 
rad_status_t rad_pty_write_slave (rad_pty_t pty, const void *buffer, size_t size, size_t *bytes_written)
 
rad_status_t rad_pty_resize (rad_pty_t pty, const rad_tty_window_size_t *size)
 
rad_status_t rad_pty_slave_name (rad_pty_t pty, char *buffer, size_t size)
 
rad_status_t rad_terminal_register_command (const char *name, const char *description, rad_terminal_handler_t handler, void *context)
 
rad_status_t rad_terminal_execute (const char *line, rad_terminal_write_t write, void *write_context)
 
rad_status_t rad_terminal_poll_tty (rad_tty_t tty)
 
rad_status_t rad_terminal_attach_device (const char *device_name)
 
rad_status_t rad_terminal_poll_attached (void)
 
size_t rad_terminal_command_count (void)
 

Detailed Description

Portable embedded kernel service ABI for RADLib.

RADEmbeddedKernel exposes a small POSIX-like service contract for bare-metal and simulator backends. The C ABI is the stable boundary; the C++ wrappers are convenience helpers for RADLib applications and examples.

Macro Definition Documentation

◆ RAD_BOOT_MAX_ARGS

#define RAD_BOOT_MAX_ARGS   16u

◆ RAD_BOOT_MAX_MEMORY_REGIONS

#define RAD_BOOT_MAX_MEMORY_REGIONS   8u

◆ RAD_BOOT_MAX_STRING

#define RAD_BOOT_MAX_STRING   64u

◆ RAD_BOOT_MEMORY_MMIO

#define RAD_BOOT_MEMORY_MMIO   4u

◆ RAD_BOOT_MEMORY_PSRAM

#define RAD_BOOT_MEMORY_PSRAM   3u

◆ RAD_BOOT_MEMORY_RESERVED

#define RAD_BOOT_MEMORY_RESERVED   2u

◆ RAD_BOOT_MEMORY_USABLE

#define RAD_BOOT_MEMORY_USABLE   1u

◆ RAD_COMPATIBLE_MAX

#define RAD_COMPATIBLE_MAX   64u

◆ RAD_DEVICE_IOCTL_AUDIO_CONFIGURE

#define RAD_DEVICE_IOCTL_AUDIO_CONFIGURE   RAD_IOW(RAD_IOCTL_TYPE_AUDIO, 1u, struct rad_audio_format)

◆ RAD_DEVICE_IOCTL_BLOCK_FLUSH

#define RAD_DEVICE_IOCTL_BLOCK_FLUSH   RAD_IO(RAD_IOCTL_TYPE_BLOCK, 4u)

◆ RAD_DEVICE_IOCTL_BLOCK_INFO

#define RAD_DEVICE_IOCTL_BLOCK_INFO   RAD_IOR(RAD_IOCTL_TYPE_BLOCK, 1u, struct rad_block_info)

◆ RAD_DEVICE_IOCTL_BLOCK_READ

#define RAD_DEVICE_IOCTL_BLOCK_READ   RAD_IOWR(RAD_IOCTL_TYPE_BLOCK, 2u, struct rad_block_request)

◆ RAD_DEVICE_IOCTL_BLOCK_WRITE

#define RAD_DEVICE_IOCTL_BLOCK_WRITE   RAD_IOWR(RAD_IOCTL_TYPE_BLOCK, 3u, struct rad_block_request)

◆ RAD_DEVICE_IOCTL_FRAMEBUFFER_FLUSH

#define RAD_DEVICE_IOCTL_FRAMEBUFFER_FLUSH   RAD_IOW(RAD_IOCTL_TYPE_FRAMEBUFFER, 2u, struct rad_framebuffer_rect)

◆ RAD_DEVICE_IOCTL_FRAMEBUFFER_INFO

#define RAD_DEVICE_IOCTL_FRAMEBUFFER_INFO   RAD_IOR(RAD_IOCTL_TYPE_FRAMEBUFFER, 1u, struct rad_framebuffer_info)

◆ RAD_DEVICE_IOCTL_I2C_TRANSFER

#define RAD_DEVICE_IOCTL_I2C_TRANSFER   RAD_IOWR(RAD_IOCTL_TYPE_I2C, 1u, struct rad_i2c_transfer)

◆ RAD_DEVICE_IOCTL_NET_LINK_INFO

#define RAD_DEVICE_IOCTL_NET_LINK_INFO   RAD_IOR(RAD_IOCTL_TYPE_NET, 1u, struct rad_net_link_info)

◆ RAD_DEVICE_IOCTL_NET_POLL

#define RAD_DEVICE_IOCTL_NET_POLL   RAD_IO(RAD_IOCTL_TYPE_NET, 3u)

◆ RAD_DEVICE_IOCTL_NET_SEND

#define RAD_DEVICE_IOCTL_NET_SEND   RAD_IOW(RAD_IOCTL_TYPE_NET, 2u, struct rad_net_packet)

◆ RAD_DEVICE_IOCTL_SERIAL_CONFIGURE

#define RAD_DEVICE_IOCTL_SERIAL_CONFIGURE   RAD_IOW(RAD_IOCTL_TYPE_SERIAL, 1u, struct rad_serial_config)

◆ RAD_DEVICE_IOCTL_SPI_TRANSFER

#define RAD_DEVICE_IOCTL_SPI_TRANSFER   RAD_IOWR(RAD_IOCTL_TYPE_SPI, 1u, struct rad_spi_transfer)

◆ RAD_DISPLAY_CONNECTOR_MAX

#define RAD_DISPLAY_CONNECTOR_MAX   32u

◆ RAD_DRIVER_NAME_MAX

#define RAD_DRIVER_NAME_MAX   32u

◆ RAD_FCNTL_GETFD

#define RAD_FCNTL_GETFD   1u

◆ RAD_FCNTL_GETFL

#define RAD_FCNTL_GETFL   3u

◆ RAD_FCNTL_SETFD

#define RAD_FCNTL_SETFD   2u

◆ RAD_FD_CLOEXEC

#define RAD_FD_CLOEXEC   1u

◆ RAD_FRAMEBUFFER_MAX_MODES

#define RAD_FRAMEBUFFER_MAX_MODES   8u

◆ RAD_FRAMEBUFFER_NAME_MAX

#define RAD_FRAMEBUFFER_NAME_MAX   64u

◆ RAD_I2C_BUS_NAME_MAX

#define RAD_I2C_BUS_NAME_MAX   32u

◆ RAD_INPUT_QUEUE_NAME_MAX

#define RAD_INPUT_QUEUE_NAME_MAX   64u

◆ RAD_IO

#define RAD_IO (   type,
  nr 
)    RAD_IOCTL(RAD_IOCTL_NONE, type, nr, 0u)

◆ RAD_IOCTL

#define RAD_IOCTL (   dir,
  type,
  nr,
  size 
)    ((((uint32_t)(dir) & 3u) << 30) | (((uint32_t)(size) & 0x3fffu) << 16) | (((uint32_t)(type) & 0xffu) << 8) | ((uint32_t)(nr) & 0xffu))

◆ RAD_IOCTL_DIR

#define RAD_IOCTL_DIR (   request)    (((uint32_t)(request) >> 30) & 3u)

◆ RAD_IOCTL_NONE

#define RAD_IOCTL_NONE   0u

◆ RAD_IOCTL_NR

#define RAD_IOCTL_NR (   request)    ((uint32_t)(request) & 0xffu)

◆ RAD_IOCTL_READ

#define RAD_IOCTL_READ   2u

◆ RAD_IOCTL_READWRITE

#define RAD_IOCTL_READWRITE   3u

◆ RAD_IOCTL_SIZE

#define RAD_IOCTL_SIZE (   request)    (((uint32_t)(request) >> 16) & 0x3fffu)

◆ RAD_IOCTL_TYPE

#define RAD_IOCTL_TYPE (   request)    (((uint32_t)(request) >> 8) & 0xffu)

◆ RAD_IOCTL_TYPE_AUDIO

#define RAD_IOCTL_TYPE_AUDIO   'A'

◆ RAD_IOCTL_TYPE_BLOCK

#define RAD_IOCTL_TYPE_BLOCK   'B'

◆ RAD_IOCTL_TYPE_FRAMEBUFFER

#define RAD_IOCTL_TYPE_FRAMEBUFFER   'F'

◆ RAD_IOCTL_TYPE_I2C

#define RAD_IOCTL_TYPE_I2C   'I'

◆ RAD_IOCTL_TYPE_INPUT

#define RAD_IOCTL_TYPE_INPUT   'K'

◆ RAD_IOCTL_TYPE_NET

#define RAD_IOCTL_TYPE_NET   'N'

◆ RAD_IOCTL_TYPE_SERIAL

#define RAD_IOCTL_TYPE_SERIAL   'T'

◆ RAD_IOCTL_TYPE_SPI

#define RAD_IOCTL_TYPE_SPI   'S'

◆ RAD_IOCTL_WRITE

#define RAD_IOCTL_WRITE   1u

◆ RAD_IOR

#define RAD_IOR (   type,
  nr,
  type_name 
)    RAD_IOCTL(RAD_IOCTL_READ, type, nr, sizeof(type_name))

◆ RAD_IOW

#define RAD_IOW (   type,
  nr,
  type_name 
)    RAD_IOCTL(RAD_IOCTL_WRITE, type, nr, sizeof(type_name))

◆ RAD_IOWR

#define RAD_IOWR (   type,
  nr,
  type_name 
)    RAD_IOCTL(RAD_IOCTL_READWRITE, type, nr, sizeof(type_name))

◆ RAD_IRQ_DOMAIN_NAME_MAX

#define RAD_IRQ_DOMAIN_NAME_MAX   32u

◆ RAD_IRQ_MAX_RESOURCES

#define RAD_IRQ_MAX_RESOURCES   4u

◆ RAD_IRQ_NAME_MAX

#define RAD_IRQ_NAME_MAX   32u

◆ RAD_MODULE_MAX_INFO

#define RAD_MODULE_MAX_INFO   32u

◆ RAD_MODULE_NAME_MAX

#define RAD_MODULE_NAME_MAX   32u

◆ RAD_OVERLAY_MAGIC

#define RAD_OVERLAY_MAGIC   0x4f444152u

◆ RAD_OVERLAY_VERSION

#define RAD_OVERLAY_VERSION   1u

◆ RAD_PERF_NAME_MAX

#define RAD_PERF_NAME_MAX   32u

◆ RAD_SPI_BUS_NAME_MAX

#define RAD_SPI_BUS_NAME_MAX   32u

◆ RAD_TASK_CORE_ANY

#define RAD_TASK_CORE_ANY   (-1)

◆ RAD_TASK_CORE_SERVICE

#define RAD_TASK_CORE_SERVICE   0

◆ RAD_TIMER_NAME_MAX

#define RAD_TIMER_NAME_MAX   32u

◆ RAD_TREE_MAX_PATH

#define RAD_TREE_MAX_PATH   96u

◆ RAD_TREE_MAX_PROPERTY_NAME

#define RAD_TREE_MAX_PROPERTY_NAME   64u

◆ RAD_TREE_MAX_VALUE

#define RAD_TREE_MAX_VALUE   96u

◆ RAD_WAIT_FOREVER

#define RAD_WAIT_FOREVER   0xffffffffu

◆ RAD_WAIT_NOHANG

#define RAD_WAIT_NOHANG   1u

◆ RADEK_VERSION_MAJOR

#define RADEK_VERSION_MAJOR   0

◆ RADEK_VERSION_MINOR

#define RADEK_VERSION_MINOR   1

◆ RADEK_VERSION_PATCH

#define RADEK_VERSION_PATCH   2

Typedef Documentation

◆ rad_audio_format_t

◆ rad_block_info_t

◆ rad_block_request_t

◆ rad_boot_arg_t

typedef struct rad_boot_arg rad_boot_arg_t

◆ rad_boot_info_t

◆ rad_boot_memory_region_t

◆ rad_core_info_t

◆ rad_device_ops_t

◆ rad_device_t

typedef struct rad_device_handle* rad_device_t

◆ rad_device_type_t

◆ rad_dir_t

typedef struct rad_dir_handle* rad_dir_t

◆ rad_display_mode_t

◆ rad_display_output_type_t

◆ rad_dma_backend_ops_t

◆ rad_dma_channel_info_t

◆ rad_dma_channel_t

typedef struct rad_dma_channel_handle* rad_dma_channel_t

◆ rad_dma_controller_config_t

◆ rad_dma_request_id_t

◆ rad_dma_transfer_t

◆ rad_dma_transfer_type_t

◆ rad_driver_info_t

◆ rad_event_t

typedef struct rad_event_handle* rad_event_t

◆ rad_file_t

typedef struct rad_file_handle* rad_file_t

◆ rad_framebuffer_config_t

◆ rad_framebuffer_display_info_t

◆ rad_framebuffer_info_t

◆ rad_framebuffer_ops_t

◆ rad_framebuffer_rect_t

◆ rad_framebuffer_t

typedef struct rad_framebuffer_handle* rad_framebuffer_t

◆ rad_i2c_bus_t

typedef struct rad_i2c_bus_handle* rad_i2c_bus_t

◆ rad_i2c_controller_config_t

◆ rad_i2c_controller_ops_t

◆ rad_i2c_device_info_t

◆ rad_i2c_device_t

typedef struct rad_i2c_device rad_i2c_device_t

◆ rad_i2c_driver_t

◆ rad_i2c_transfer_t

◆ rad_input_event_t

◆ rad_input_event_type_t

◆ rad_input_key_t

◆ rad_input_modifier_flags_t

◆ rad_input_pointer_button_flags_t

◆ rad_input_queue_t

typedef struct rad_input_queue_handle* rad_input_queue_t

◆ rad_ipv4_address_t

◆ rad_irq_domain_config_t

◆ rad_irq_domain_t

typedef struct rad_irq_domain_handle* rad_irq_domain_t

◆ rad_irq_handler_t

typedef void(* rad_irq_handler_t) (uint32_t irq, void *context)

◆ rad_irq_info_t

typedef struct rad_irq_info rad_irq_info_t

◆ rad_irq_resource_t

◆ rad_irq_trigger_t

◆ rad_kernel_config_t

◆ rad_mac_address_t

◆ rad_memory_stats_t

◆ rad_module_descriptor_t

◆ rad_module_info_t

◆ rad_module_state_t

◆ rad_mutex_t

typedef struct rad_mutex_handle* rad_mutex_t

◆ rad_net_link_info_t

◆ rad_net_packet_t

◆ rad_overlay_info_t

◆ rad_perf_counter_info_t

◆ rad_pixel_format_t

◆ rad_posix_syscall_t

◆ rad_posix_timeval_t

◆ rad_process_arch_ops_t

◆ rad_process_info_t

◆ rad_process_state_t

◆ rad_program_info_t

◆ rad_program_state_t

◆ rad_program_t

typedef struct rad_program_handle* rad_program_t

◆ rad_pty_t

typedef struct rad_pty_handle* rad_pty_t

◆ rad_scheduler_info_t

◆ rad_scheduler_mode_t

◆ rad_sd_config_t

◆ rad_sd_mode_t

typedef enum rad_sd_mode rad_sd_mode_t

◆ rad_seek_origin_t

◆ rad_serial_config_t

◆ rad_spi_bus_t

typedef struct rad_spi_bus_handle* rad_spi_bus_t

◆ rad_spi_controller_config_t

◆ rad_spi_controller_ops_t

◆ rad_spi_device_info_t

◆ rad_spi_device_t

typedef struct rad_spi_device rad_spi_device_t

◆ rad_spi_driver_t

◆ rad_spi_transfer_mode_t

◆ rad_spi_transfer_t

◆ rad_status_t

typedef enum rad_status rad_status_t

◆ rad_task_config_t

◆ rad_task_entry_t

typedef void(* rad_task_entry_t) (void *context)

◆ rad_task_info_t

◆ rad_task_state_t

◆ rad_task_t

typedef struct rad_task_handle* rad_task_t

◆ rad_terminal_handler_t

typedef rad_status_t(* rad_terminal_handler_t) (int argc, const char **argv, rad_terminal_write_t write, void *write_context, void *command_context)

◆ rad_terminal_write_t

typedef void(* rad_terminal_write_t) (const char *text, void *context)

◆ rad_timer_source_config_t

◆ rad_timer_source_info_t

◆ rad_timer_source_ops_t

◆ rad_tree_node_info_t

◆ rad_tree_node_t

typedef struct rad_tree_node_handle* rad_tree_node_t

◆ rad_tree_property_type_t

◆ rad_tty_mode_flags_t

◆ rad_tty_output_t

typedef void(* rad_tty_output_t) (const void *data, size_t size, void *context)

◆ rad_tty_t

typedef struct rad_tty_handle* rad_tty_t

◆ rad_tty_window_size_t

◆ rad_vfs_backend_ops_t

◆ rad_vfs_dirent_t

◆ rad_vfs_list_callback_t

typedef int(* rad_vfs_list_callback_t) (const char *name, const rad_vfs_stat_t *stat, void *context)

◆ rad_vfs_open_flags_t

◆ rad_vfs_stat_t

typedef struct rad_vfs_stat rad_vfs_stat_t

◆ rad_wait_queue_t

typedef struct rad_wait_queue_handle* rad_wait_queue_t

◆ rad_work_handler_t

typedef void(* rad_work_handler_t) (void *context)

Enumeration Type Documentation

◆ rad_device_type

Enumerator
RAD_DEVICE_GENERIC 
RAD_DEVICE_I2C 
RAD_DEVICE_SPI 
RAD_DEVICE_AUDIO 
RAD_DEVICE_SERIAL 
RAD_DEVICE_FRAMEBUFFER 
RAD_DEVICE_TTY 
RAD_DEVICE_PTY 
RAD_DEVICE_INPUT 
RAD_DEVICE_BLOCK 
RAD_DEVICE_NETWORK 

◆ rad_display_output_type

Enumerator
RAD_DISPLAY_OUTPUT_MEMORY 
RAD_DISPLAY_OUTPUT_CIRCLE 
RAD_DISPLAY_OUTPUT_GRUB 
RAD_DISPLAY_OUTPUT_RP2350_HSTX 
RAD_DISPLAY_OUTPUT_SPI_PANEL 

◆ rad_dma_request_id

Enumerator
RAD_DMA_DREQ_NONE 
RAD_DMA_DREQ_SPI0_TX 
RAD_DMA_DREQ_SPI0_RX 
RAD_DMA_DREQ_SPI1_TX 
RAD_DMA_DREQ_SPI1_RX 
RAD_DMA_DREQ_RP2350_HSTX_TX 

◆ rad_dma_transfer_type

Enumerator
RAD_DMA_MEMORY_TO_MEMORY 
RAD_DMA_MEMORY_TO_DEVICE 
RAD_DMA_DEVICE_TO_MEMORY 

◆ rad_input_event_type

Enumerator
RAD_INPUT_EVENT_NONE 
RAD_INPUT_EVENT_KEY 
RAD_INPUT_EVENT_POINTER_MOTION 
RAD_INPUT_EVENT_POINTER_BUTTON 
RAD_INPUT_EVENT_POINTER_SCROLL 

◆ rad_input_key

Enumerator
RAD_INPUT_KEY_UNKNOWN 
RAD_INPUT_KEY_ESCAPE 
RAD_INPUT_KEY_ENTER 
RAD_INPUT_KEY_BACKSPACE 
RAD_INPUT_KEY_TAB 
RAD_INPUT_KEY_UP 
RAD_INPUT_KEY_DOWN 
RAD_INPUT_KEY_LEFT 
RAD_INPUT_KEY_RIGHT 
RAD_INPUT_KEY_HOME 
RAD_INPUT_KEY_END 
RAD_INPUT_KEY_PAGE_UP 
RAD_INPUT_KEY_PAGE_DOWN 
RAD_INPUT_KEY_INSERT 
RAD_INPUT_KEY_DELETE 
RAD_INPUT_KEY_LEFT_SHIFT 
RAD_INPUT_KEY_RIGHT_SHIFT 
RAD_INPUT_KEY_LEFT_CTRL 
RAD_INPUT_KEY_RIGHT_CTRL 
RAD_INPUT_KEY_LEFT_ALT 
RAD_INPUT_KEY_RIGHT_ALT 
RAD_INPUT_KEY_CAPS_LOCK 

◆ rad_input_modifier_flags

Enumerator
RAD_INPUT_MOD_SHIFT 
RAD_INPUT_MOD_CTRL 
RAD_INPUT_MOD_ALT 
RAD_INPUT_MOD_META 
RAD_INPUT_MOD_CAPS_LOCK 

◆ rad_input_pointer_button_flags

Enumerator
RAD_INPUT_POINTER_BUTTON_LEFT 
RAD_INPUT_POINTER_BUTTON_RIGHT 
RAD_INPUT_POINTER_BUTTON_MIDDLE 

◆ rad_irq_trigger

Enumerator
RAD_IRQ_TRIGGER_NONE 
RAD_IRQ_TRIGGER_EDGE_RISING 
RAD_IRQ_TRIGGER_EDGE_FALLING 
RAD_IRQ_TRIGGER_LEVEL_HIGH 
RAD_IRQ_TRIGGER_LEVEL_LOW 

◆ rad_module_state

Enumerator
RAD_MODULE_REGISTERED 
RAD_MODULE_INITIALIZED 
RAD_MODULE_FAILED 
RAD_MODULE_EXITED 

◆ rad_pixel_format

Enumerator
RAD_PIXEL_FORMAT_RGB565 
RAD_PIXEL_FORMAT_XRGB8888 

◆ rad_posix_syscall

Enumerator
RAD_SYSCALL_READ 
RAD_SYSCALL_WRITE 
RAD_SYSCALL_OPEN 
RAD_SYSCALL_CLOSE 
RAD_SYSCALL_IOCTL 
RAD_SYSCALL_LSEEK 
RAD_SYSCALL_STAT 
RAD_SYSCALL_FSTAT 
RAD_SYSCALL_GETTIMEOFDAY 
RAD_SYSCALL_NANOSLEEP 
RAD_SYSCALL_EXIT 
RAD_SYSCALL_FORK 
RAD_SYSCALL_EXECVE 
RAD_SYSCALL_WAITPID 
RAD_SYSCALL_GETPID 
RAD_SYSCALL_GETPPID 
RAD_SYSCALL_DUP 
RAD_SYSCALL_DUP2 
RAD_SYSCALL_CHDIR 
RAD_SYSCALL_GETCWD 
RAD_SYSCALL_BRK 
RAD_SYSCALL_PIPE 
RAD_SYSCALL_FCNTL 
RAD_SYSCALL_ACCESS 
RAD_SYSCALL_ISATTY 
RAD_SYSCALL_SOCKET 
RAD_SYSCALL_BIND 
RAD_SYSCALL_CONNECT 
RAD_SYSCALL_LISTEN 
RAD_SYSCALL_ACCEPT 
RAD_SYSCALL_SENDTO 
RAD_SYSCALL_RECVFROM 
RAD_SYSCALL_SHUTDOWN 
RAD_SYSCALL_SETSOCKOPT 
RAD_SYSCALL_GETSOCKOPT 

◆ rad_process_state

Enumerator
RAD_PROCESS_RUNNING 
RAD_PROCESS_WAITING 
RAD_PROCESS_ZOMBIE 

◆ rad_program_state

Enumerator
RAD_PROGRAM_LOADED 
RAD_PROGRAM_RUNNING 
RAD_PROGRAM_FINISHED 
RAD_PROGRAM_FAILED 

◆ rad_scheduler_mode

Enumerator
RAD_SCHEDULER_COOPERATIVE 
RAD_SCHEDULER_PREEMPTIVE 

◆ rad_sd_mode

Enumerator
RAD_SD_MODE_AUTO 
RAD_SD_MODE_SPI 
RAD_SD_MODE_PIO_SDIO 

◆ rad_seek_origin

Enumerator
RAD_SEEK_SET 
RAD_SEEK_CUR 
RAD_SEEK_END 

◆ rad_spi_transfer_mode

Enumerator
RAD_SPI_TRANSFER_MODE_AUTO 
RAD_SPI_TRANSFER_MODE_PIO 
RAD_SPI_TRANSFER_MODE_DMA 

◆ rad_status

enum rad_status
Enumerator
RAD_STATUS_OK 
RAD_STATUS_ERROR 
RAD_STATUS_INVALID_ARGUMENT 
RAD_STATUS_NOT_FOUND 
RAD_STATUS_NO_MEMORY 
RAD_STATUS_TIMEOUT 
RAD_STATUS_NOT_SUPPORTED 
RAD_STATUS_ALREADY_EXISTS 
RAD_STATUS_NOT_INITIALIZED 

◆ rad_task_state

Enumerator
RAD_TASK_NEW 
RAD_TASK_READY 
RAD_TASK_RUNNING 
RAD_TASK_SLEEPING 
RAD_TASK_BLOCKED 
RAD_TASK_FINISHED 
RAD_TASK_DETACHED 

◆ rad_tree_property_type

Enumerator
RAD_TREE_PROP_BOOL 
RAD_TREE_PROP_U32 
RAD_TREE_PROP_STRING 
RAD_TREE_PROP_U32_ARRAY 
RAD_TREE_PROP_STRING_ARRAY 

◆ rad_tty_mode_flags

Enumerator
RAD_TTY_MODE_CANONICAL 
RAD_TTY_MODE_ECHO 
RAD_TTY_MODE_CRLF 

◆ rad_vfs_open_flags

Enumerator
RAD_VFS_READ 
RAD_VFS_WRITE 
RAD_VFS_CREATE 
RAD_VFS_TRUNCATE 
RAD_VFS_APPEND 

Function Documentation

◆ rad_audio_configure()

rad_status_t rad_audio_configure ( rad_device_t  device,
const rad_audio_format_t format 
)

◆ rad_block_device_register()

rad_status_t rad_block_device_register ( const char *  name,
const rad_device_ops_t ops 
)

◆ rad_block_flush()

rad_status_t rad_block_flush ( rad_device_t  device)

◆ rad_block_info()

◆ rad_block_open()

rad_status_t rad_block_open ( const char *  name,
rad_device_t device 
)

◆ rad_block_read()

rad_status_t rad_block_read ( rad_device_t  device,
uint64_t  sector,
uint32_t  sector_count,
void *  buffer 
)

◆ rad_block_write()

rad_status_t rad_block_write ( rad_device_t  device,
uint64_t  sector,
uint32_t  sector_count,
const void *  buffer 
)

◆ rad_boot_arg_get()

const char* rad_boot_arg_get ( const char *  key)

◆ rad_boot_info_get()

rad_status_t rad_boot_info_get ( rad_boot_info_t boot_info)

◆ rad_boot_info_set()

rad_status_t rad_boot_info_set ( const rad_boot_info_t boot_info)

◆ rad_core_info_get()

rad_status_t rad_core_info_get ( rad_core_info_t info)

◆ rad_cpu_halt_forever()

void rad_cpu_halt_forever ( void  )

◆ rad_cpu_idle()

void rad_cpu_idle ( void  )

◆ rad_cpu_interrupts_disable()

rad_status_t rad_cpu_interrupts_disable ( void  )

◆ rad_cpu_interrupts_enable()

rad_status_t rad_cpu_interrupts_enable ( void  )

◆ rad_cpu_interrupts_enabled()

int rad_cpu_interrupts_enabled ( void  )

◆ rad_debug_marker()

void rad_debug_marker ( const char *  marker)

◆ rad_device_close()

void rad_device_close ( rad_device_t  device)

◆ rad_device_ioctl()

rad_status_t rad_device_ioctl ( rad_device_t  device,
uint32_t  request,
void *  argument 
)

◆ rad_device_list()

size_t rad_device_list ( char  names[][64],
rad_device_type_t types,
size_t  capacity 
)

◆ rad_device_open()

rad_status_t rad_device_open ( const char *  name,
rad_device_t device 
)

◆ rad_device_read()

rad_status_t rad_device_read ( rad_device_t  device,
void *  buffer,
size_t  size,
size_t *  bytes_read 
)

◆ rad_device_register()

rad_status_t rad_device_register ( const char *  name,
rad_device_type_t  type,
const rad_device_ops_t ops 
)

◆ rad_device_unregister()

rad_status_t rad_device_unregister ( const char *  name)

◆ rad_device_write()

rad_status_t rad_device_write ( rad_device_t  device,
const void *  buffer,
size_t  size,
size_t *  bytes_written 
)

◆ rad_dma_cancel()

rad_status_t rad_dma_cancel ( rad_dma_channel_t  channel)

◆ rad_dma_channel_release()

void rad_dma_channel_release ( rad_dma_channel_t  channel)

◆ rad_dma_channel_request()

rad_status_t rad_dma_channel_request ( rad_dma_request_id_t  request_id,
rad_dma_channel_t channel 
)

◆ rad_dma_controller_register()

rad_status_t rad_dma_controller_register ( const rad_dma_controller_config_t config,
const rad_dma_backend_ops_t ops 
)

◆ rad_dma_controller_unregister()

rad_status_t rad_dma_controller_unregister ( const char *  name)

◆ rad_dma_list_channels()

size_t rad_dma_list_channels ( rad_dma_channel_info_t channels,
size_t  capacity 
)

◆ rad_dma_submit()

rad_status_t rad_dma_submit ( rad_dma_channel_t  channel,
const rad_dma_transfer_t transfer 
)

◆ rad_dma_wait()

rad_status_t rad_dma_wait ( rad_dma_channel_t  channel,
uint32_t  timeout_ms 
)

◆ rad_driver_list()

size_t rad_driver_list ( rad_driver_info_t drivers,
size_t  capacity 
)

◆ rad_early_printk()

int rad_early_printk ( const char *  format,
  ... 
)

◆ rad_early_vprintk()

int rad_early_vprintk ( const char *  format,
va_list  args 
)

◆ rad_event_create()

rad_status_t rad_event_create ( rad_event_t event,
int  initially_signaled 
)

◆ rad_event_destroy()

void rad_event_destroy ( rad_event_t  event)

◆ rad_event_reset()

rad_status_t rad_event_reset ( rad_event_t  event)

◆ rad_event_signal()

rad_status_t rad_event_signal ( rad_event_t  event)

◆ rad_event_wait()

rad_status_t rad_event_wait ( rad_event_t  event,
uint32_t  timeout_ms 
)

◆ rad_fd_close()

int32_t rad_fd_close ( int32_t  fd)

◆ rad_fd_dup()

int32_t rad_fd_dup ( int32_t  fd)

◆ rad_fd_dup2()

int32_t rad_fd_dup2 ( int32_t  old_fd,
int32_t  new_fd 
)

◆ rad_fd_fcntl()

int32_t rad_fd_fcntl ( int32_t  fd,
uint32_t  command,
uintptr_t  argument 
)

◆ rad_fd_fstat()

int32_t rad_fd_fstat ( int32_t  fd,
rad_vfs_stat_t stat 
)

◆ rad_fd_ioctl()

int32_t rad_fd_ioctl ( int32_t  fd,
uint32_t  request,
void *  argument 
)

◆ rad_fd_lseek()

int64_t rad_fd_lseek ( int32_t  fd,
int64_t  offset,
rad_seek_origin_t  origin 
)

◆ rad_fd_open()

int32_t rad_fd_open ( const char *  path,
uint32_t  flags 
)

◆ rad_fd_read()

intptr_t rad_fd_read ( int32_t  fd,
void *  buffer,
size_t  size 
)

◆ rad_fd_stat()

int32_t rad_fd_stat ( const char *  path,
rad_vfs_stat_t stat 
)

◆ rad_fd_write()

intptr_t rad_fd_write ( int32_t  fd,
const void *  buffer,
size_t  size 
)

◆ rad_framebuffer_blank()

rad_status_t rad_framebuffer_blank ( rad_framebuffer_t  framebuffer,
int  blanked 
)

◆ rad_framebuffer_clear()

rad_status_t rad_framebuffer_clear ( rad_framebuffer_t  framebuffer,
uint32_t  color 
)

◆ rad_framebuffer_close()

void rad_framebuffer_close ( rad_framebuffer_t  framebuffer)

◆ rad_framebuffer_draw_text()

rad_status_t rad_framebuffer_draw_text ( rad_framebuffer_t  framebuffer,
uint32_t  cell_x,
uint32_t  cell_y,
const char *  text,
uint32_t  foreground,
uint32_t  background 
)

◆ rad_framebuffer_flush()

rad_status_t rad_framebuffer_flush ( rad_framebuffer_t  framebuffer,
const rad_framebuffer_rect_t rect 
)

◆ rad_framebuffer_get_display_info()

rad_status_t rad_framebuffer_get_display_info ( rad_framebuffer_t  framebuffer,
rad_framebuffer_display_info_t info 
)

◆ rad_framebuffer_get_info()

rad_status_t rad_framebuffer_get_info ( rad_framebuffer_t  framebuffer,
rad_framebuffer_info_t info 
)

◆ rad_framebuffer_get_vsync_counter()

rad_status_t rad_framebuffer_get_vsync_counter ( rad_framebuffer_t  framebuffer,
uint64_t *  counter 
)

◆ rad_framebuffer_list()

size_t rad_framebuffer_list ( rad_framebuffer_info_t framebuffers,
char  names[][64],
size_t  capacity 
)

◆ rad_framebuffer_list_ex()

size_t rad_framebuffer_list_ex ( rad_framebuffer_display_info_t framebuffers,
size_t  capacity 
)

◆ rad_framebuffer_open()

rad_status_t rad_framebuffer_open ( const char *  name,
rad_framebuffer_t framebuffer 
)

◆ rad_framebuffer_open_primary()

rad_status_t rad_framebuffer_open_primary ( rad_framebuffer_t framebuffer)

◆ rad_framebuffer_register()

rad_status_t rad_framebuffer_register ( const char *  name,
const rad_framebuffer_info_t info,
const rad_framebuffer_ops_t ops 
)

◆ rad_framebuffer_register_ex()

rad_status_t rad_framebuffer_register_ex ( const rad_framebuffer_config_t config,
const rad_framebuffer_ops_t ops 
)

◆ rad_framebuffer_set_mode()

rad_status_t rad_framebuffer_set_mode ( rad_framebuffer_t  framebuffer,
uint32_t  mode_index 
)

◆ rad_framebuffer_set_primary()

rad_status_t rad_framebuffer_set_primary ( const char *  name)

◆ rad_framebuffer_unregister()

rad_status_t rad_framebuffer_unregister ( const char *  name)

◆ rad_i2c_bind_tree()

rad_status_t rad_i2c_bind_tree ( void  )

◆ rad_i2c_bus_close()

void rad_i2c_bus_close ( rad_i2c_bus_t  bus)

◆ rad_i2c_bus_open()

rad_status_t rad_i2c_bus_open ( uint32_t  bus_id,
rad_i2c_bus_t bus 
)

◆ rad_i2c_controller_register()

rad_status_t rad_i2c_controller_register ( const rad_i2c_controller_config_t config,
const rad_i2c_controller_ops_t ops 
)

◆ rad_i2c_controller_unregister()

rad_status_t rad_i2c_controller_unregister ( uint32_t  bus_id)

◆ rad_i2c_device_close()

void rad_i2c_device_close ( rad_i2c_device_t device)

◆ rad_i2c_device_get_irq()

rad_status_t rad_i2c_device_get_irq ( const rad_i2c_device_t device,
size_t  index,
rad_irq_resource_t resource 
)

◆ rad_i2c_device_irq_count()

size_t rad_i2c_device_irq_count ( const rad_i2c_device_t device)

◆ rad_i2c_device_open()

rad_status_t rad_i2c_device_open ( uint32_t  bus_id,
uint8_t  address,
rad_i2c_device_t **  device 
)

◆ rad_i2c_device_transfer()

rad_status_t rad_i2c_device_transfer ( rad_i2c_device_t device,
const rad_i2c_transfer_t transfer 
)

◆ rad_i2c_driver_register()

rad_status_t rad_i2c_driver_register ( const rad_i2c_driver_t driver)

◆ rad_i2c_driver_unregister()

rad_status_t rad_i2c_driver_unregister ( const char *  name)

◆ rad_i2c_list_devices()

size_t rad_i2c_list_devices ( rad_i2c_device_info_t devices,
size_t  capacity 
)

◆ rad_i2c_transfer()

◆ rad_i2c_transfer_device()

rad_status_t rad_i2c_transfer_device ( rad_device_t  device,
const rad_i2c_transfer_t transfer 
)

◆ rad_input_device_register()

rad_status_t rad_input_device_register ( const char *  name,
const rad_device_ops_t ops 
)

◆ rad_input_device_register_queue()

rad_status_t rad_input_device_register_queue ( const char *  name,
rad_input_queue_t  queue 
)

◆ rad_input_device_unregister()

rad_status_t rad_input_device_unregister ( const char *  name)

◆ rad_input_open()

rad_status_t rad_input_open ( const char *  name,
rad_device_t device 
)

◆ rad_input_queue_create()

rad_status_t rad_input_queue_create ( const char *  name,
size_t  capacity,
rad_input_queue_t queue 
)

◆ rad_input_queue_destroy()

void rad_input_queue_destroy ( rad_input_queue_t  queue)

◆ rad_input_queue_push()

rad_status_t rad_input_queue_push ( rad_input_queue_t  queue,
const rad_input_event_t event 
)

◆ rad_input_queue_read()

rad_status_t rad_input_queue_read ( rad_input_queue_t  queue,
rad_input_event_t events,
size_t  capacity,
uint32_t  timeout_ms,
size_t *  count 
)

◆ rad_input_read_event()

rad_status_t rad_input_read_event ( rad_device_t  device,
rad_input_event_t event 
)

◆ rad_irq_disable()

rad_status_t rad_irq_disable ( uint32_t  irq)

◆ rad_irq_dispatch()

rad_status_t rad_irq_dispatch ( uint32_t  irq)

◆ rad_irq_domain_find()

rad_status_t rad_irq_domain_find ( const char *  tree_path,
rad_irq_domain_t domain 
)

◆ rad_irq_domain_register()

rad_status_t rad_irq_domain_register ( const rad_irq_domain_config_t config,
rad_irq_domain_t domain 
)

◆ rad_irq_domain_unregister()

rad_status_t rad_irq_domain_unregister ( const char *  tree_path)

◆ rad_irq_enable()

rad_status_t rad_irq_enable ( uint32_t  irq)

◆ rad_irq_list()

size_t rad_irq_list ( rad_irq_info_t irqs,
size_t  capacity 
)

◆ rad_irq_register()

rad_status_t rad_irq_register ( uint32_t  irq,
const char *  name,
rad_irq_handler_t  handler,
void *  context 
)

◆ rad_irq_resolve_tree()

size_t rad_irq_resolve_tree ( rad_tree_node_t  node,
rad_irq_resource_t resources,
size_t  capacity 
)

◆ rad_irq_resource_disable()

rad_status_t rad_irq_resource_disable ( const rad_irq_resource_t resource)

◆ rad_irq_resource_enable()

rad_status_t rad_irq_resource_enable ( const rad_irq_resource_t resource)

◆ rad_irq_resource_register_handler()

rad_status_t rad_irq_resource_register_handler ( const rad_irq_resource_t resource,
const char *  name,
rad_irq_handler_t  handler,
void *  context 
)

◆ rad_irq_unregister()

rad_status_t rad_irq_unregister ( uint32_t  irq)

◆ rad_kernel_backend_name()

const char* rad_kernel_backend_name ( void  )

◆ rad_kernel_init()

rad_status_t rad_kernel_init ( const rad_kernel_config_t config)

◆ rad_kernel_is_initialized()

int rad_kernel_is_initialized ( void  )

◆ rad_kernel_is_shutdown_requested()

int rad_kernel_is_shutdown_requested ( void  )

◆ rad_kernel_poll()

rad_status_t rad_kernel_poll ( void  )

◆ rad_kernel_request_shutdown()

void rad_kernel_request_shutdown ( void  )

◆ rad_kernel_run()

rad_status_t rad_kernel_run ( void  )

◆ rad_kernel_shutdown()

void rad_kernel_shutdown ( void  )

◆ rad_kernel_version_string()

const char* rad_kernel_version_string ( void  )

◆ rad_memory_alloc()

void* rad_memory_alloc ( size_t  size)

◆ rad_memory_free()

void rad_memory_free ( void *  pointer)

◆ rad_memory_get_stats()

void rad_memory_get_stats ( rad_memory_stats_t stats)

◆ rad_module_list()

size_t rad_module_list ( rad_module_info_t modules,
size_t  capacity 
)

◆ rad_module_register()

rad_status_t rad_module_register ( const rad_module_descriptor_t descriptor)

◆ rad_module_unregister()

rad_status_t rad_module_unregister ( const char *  name)

◆ rad_mutex_create()

rad_status_t rad_mutex_create ( rad_mutex_t mutex)

◆ rad_mutex_destroy()

void rad_mutex_destroy ( rad_mutex_t  mutex)

◆ rad_mutex_lock()

rad_status_t rad_mutex_lock ( rad_mutex_t  mutex)

◆ rad_mutex_unlock()

rad_status_t rad_mutex_unlock ( rad_mutex_t  mutex)

◆ rad_net_device_register()

rad_status_t rad_net_device_register ( const char *  name,
const rad_device_ops_t ops 
)

◆ rad_net_link_info()

◆ rad_net_open()

rad_status_t rad_net_open ( const char *  name,
rad_device_t device 
)

◆ rad_net_poll()

rad_status_t rad_net_poll ( rad_device_t  device)

◆ rad_net_send()

rad_status_t rad_net_send ( rad_device_t  device,
const void *  data,
size_t  length 
)

◆ rad_overlay_apply_boot()

rad_status_t rad_overlay_apply_boot ( void  )

◆ rad_overlay_list()

size_t rad_overlay_list ( rad_overlay_info_t overlays,
size_t  capacity 
)

◆ rad_overlay_load_file()

rad_status_t rad_overlay_load_file ( const char *  path)

◆ rad_overlay_load_memory()

rad_status_t rad_overlay_load_memory ( const void *  data,
size_t  size 
)

◆ rad_perf_counter_add()

void rad_perf_counter_add ( const char *  name,
uint64_t  delta 
)

◆ rad_perf_counter_list()

size_t rad_perf_counter_list ( rad_perf_counter_info_t counters,
size_t  capacity 
)

◆ rad_perf_now_cycles()

uint64_t rad_perf_now_cycles ( void  )

◆ rad_pipe_create()

int32_t rad_pipe_create ( int32_t  pipefd[2])

◆ rad_printk()

int rad_printk ( const char *  format,
  ... 
)

◆ rad_process_arch_register()

rad_status_t rad_process_arch_register ( const rad_process_arch_ops_t ops)

◆ rad_process_attach_task()

rad_status_t rad_process_attach_task ( int32_t  pid,
rad_task_t  task 
)

◆ rad_process_clone_fds()

rad_status_t rad_process_clone_fds ( int32_t  parent_pid,
int32_t  child_pid 
)

◆ rad_process_create()

int32_t rad_process_create ( const char *  path,
int32_t  parent_pid 
)

◆ rad_process_current_pid()

int32_t rad_process_current_pid ( void  )

◆ rad_process_execve()

int32_t rad_process_execve ( const char *  path,
const char *const  argv[] 
)

◆ rad_process_exit()

void rad_process_exit ( int32_t  status)

◆ rad_process_fork()

int32_t rad_process_fork ( void  )

◆ rad_process_fork_from_arch_frame()

int32_t rad_process_fork_from_arch_frame ( void *  trap_frame)

◆ rad_process_list()

size_t rad_process_list ( rad_process_info_t processes,
size_t  capacity 
)

◆ rad_process_mark_exec()

rad_status_t rad_process_mark_exec ( int32_t  pid,
const char *  path 
)

◆ rad_process_parent_pid()

int32_t rad_process_parent_pid ( void  )

◆ rad_process_reap()

int32_t rad_process_reap ( int32_t  pid,
int32_t *  status 
)

◆ rad_process_set_current_pid()

void rad_process_set_current_pid ( int32_t  pid)

◆ rad_process_waitpid()

int32_t rad_process_waitpid ( int32_t  pid,
int32_t *  status,
uint32_t  options 
)

◆ rad_program_list()

size_t rad_program_list ( rad_program_info_t programs,
size_t  capacity 
)

◆ rad_program_load()

rad_status_t rad_program_load ( const char *  path,
rad_program_t program 
)

◆ rad_program_spawn()

rad_status_t rad_program_spawn ( rad_program_t  program,
int  argc,
const char **  argv,
rad_task_t task 
)

◆ rad_program_unload()

void rad_program_unload ( rad_program_t  program)

◆ rad_pty_close()

void rad_pty_close ( rad_pty_t  pty)

◆ rad_pty_open_pair()

rad_status_t rad_pty_open_pair ( const char *  name,
rad_pty_t pty 
)

◆ rad_pty_read_master()

rad_status_t rad_pty_read_master ( rad_pty_t  pty,
void *  buffer,
size_t  size,
size_t *  bytes_read 
)

◆ rad_pty_read_slave()

rad_status_t rad_pty_read_slave ( rad_pty_t  pty,
void *  buffer,
size_t  size,
size_t *  bytes_read 
)

◆ rad_pty_resize()

rad_status_t rad_pty_resize ( rad_pty_t  pty,
const rad_tty_window_size_t size 
)

◆ rad_pty_slave_name()

rad_status_t rad_pty_slave_name ( rad_pty_t  pty,
char *  buffer,
size_t  size 
)

◆ rad_pty_write_master()

rad_status_t rad_pty_write_master ( rad_pty_t  pty,
const void *  buffer,
size_t  size,
size_t *  bytes_written 
)

◆ rad_pty_write_slave()

rad_status_t rad_pty_write_slave ( rad_pty_t  pty,
const void *  buffer,
size_t  size,
size_t *  bytes_written 
)

◆ rad_scheduler_current_core()

uint32_t rad_scheduler_current_core ( void  )

◆ rad_scheduler_info_get()

rad_status_t rad_scheduler_info_get ( rad_scheduler_info_t info)

◆ rad_scheduler_online_core_mask()

uint32_t rad_scheduler_online_core_mask ( void  )

◆ rad_scheduler_set_preemption_enabled()

void rad_scheduler_set_preemption_enabled ( int  enabled)

◆ rad_scheduler_yield_from_irq()

void rad_scheduler_yield_from_irq ( void  )

◆ rad_serial_configure()

rad_status_t rad_serial_configure ( rad_device_t  device,
const rad_serial_config_t config 
)

◆ rad_sleep_ms()

void rad_sleep_ms ( uint32_t  milliseconds)

◆ rad_sleep_us()

void rad_sleep_us ( uint32_t  microseconds)

◆ rad_spi_bus_close()

void rad_spi_bus_close ( rad_spi_bus_t  bus)

◆ rad_spi_bus_open()

rad_status_t rad_spi_bus_open ( uint32_t  bus_id,
rad_spi_bus_t bus 
)

◆ rad_spi_controller_register()

rad_status_t rad_spi_controller_register ( const rad_spi_controller_config_t config,
const rad_spi_controller_ops_t ops 
)

◆ rad_spi_controller_unregister()

rad_status_t rad_spi_controller_unregister ( uint32_t  bus_id)

◆ rad_spi_device_close()

void rad_spi_device_close ( rad_spi_device_t device)

◆ rad_spi_device_get_irq()

rad_status_t rad_spi_device_get_irq ( const rad_spi_device_t device,
size_t  index,
rad_irq_resource_t resource 
)

◆ rad_spi_device_irq_count()

size_t rad_spi_device_irq_count ( const rad_spi_device_t device)

◆ rad_spi_device_open()

rad_status_t rad_spi_device_open ( uint32_t  bus_id,
uint8_t  cs,
rad_spi_device_t **  device 
)

◆ rad_spi_device_transfer()

rad_status_t rad_spi_device_transfer ( rad_spi_device_t device,
const rad_spi_transfer_t transfer 
)

◆ rad_spi_driver_register()

rad_status_t rad_spi_driver_register ( const rad_spi_driver_t driver)

◆ rad_spi_driver_unregister()

rad_status_t rad_spi_driver_unregister ( const char *  name)

◆ rad_spi_list_devices()

size_t rad_spi_list_devices ( rad_spi_device_info_t devices,
size_t  capacity 
)

◆ rad_spi_transfer()

◆ rad_spi_transfer_device()

rad_status_t rad_spi_transfer_device ( rad_device_t  device,
const rad_spi_transfer_t transfer 
)

◆ rad_syscall_dispatch()

intptr_t rad_syscall_dispatch ( uintptr_t  number,
uintptr_t  arg0,
uintptr_t  arg1,
uintptr_t  arg2,
uintptr_t  arg3,
uintptr_t  arg4,
uintptr_t  arg5 
)

◆ rad_task_create()

rad_status_t rad_task_create ( rad_task_t task,
const char *  name,
rad_task_entry_t  entry,
void *  context,
size_t  stack_size 
)

◆ rad_task_create_config()

rad_status_t rad_task_create_config ( rad_task_t task,
const rad_task_config_t config,
rad_task_entry_t  entry,
void *  context 
)

◆ rad_task_current_core()

int rad_task_current_core ( void  )

◆ rad_task_current_id()

uint64_t rad_task_current_id ( void  )

◆ rad_task_detach()

void rad_task_detach ( rad_task_t  task)

◆ rad_task_join()

rad_status_t rad_task_join ( rad_task_t  task)

◆ rad_task_list()

size_t rad_task_list ( rad_task_info_t tasks,
size_t  capacity 
)

◆ rad_task_sleep_ms()

void rad_task_sleep_ms ( uint32_t  milliseconds)

◆ rad_task_sleep_us()

void rad_task_sleep_us ( uint32_t  microseconds)

◆ rad_task_yield()

void rad_task_yield ( void  )

◆ rad_terminal_attach_device()

rad_status_t rad_terminal_attach_device ( const char *  device_name)

◆ rad_terminal_command_count()

size_t rad_terminal_command_count ( void  )

◆ rad_terminal_execute()

rad_status_t rad_terminal_execute ( const char *  line,
rad_terminal_write_t  write,
void *  write_context 
)

◆ rad_terminal_poll_attached()

rad_status_t rad_terminal_poll_attached ( void  )

◆ rad_terminal_poll_tty()

rad_status_t rad_terminal_poll_tty ( rad_tty_t  tty)

◆ rad_terminal_register_command()

rad_status_t rad_terminal_register_command ( const char *  name,
const char *  description,
rad_terminal_handler_t  handler,
void *  context 
)

◆ rad_time_micros()

uint64_t rad_time_micros ( void  )

◆ rad_time_millis()

uint64_t rad_time_millis ( void  )

◆ rad_timer_cancel_oneshot()

rad_status_t rad_timer_cancel_oneshot ( void  )

◆ rad_timer_list()

size_t rad_timer_list ( rad_timer_source_info_t timers,
size_t  capacity 
)

◆ rad_timer_schedule_oneshot()

rad_status_t rad_timer_schedule_oneshot ( uint64_t  delay_micros)

◆ rad_timer_source_register()

rad_status_t rad_timer_source_register ( const rad_timer_source_config_t config,
const rad_timer_source_ops_t ops 
)

◆ rad_timer_source_unregister()

rad_status_t rad_timer_source_unregister ( const char *  name)

◆ rad_timer_tick()

void rad_timer_tick ( uint64_t  elapsed_micros)

◆ rad_tree_find()

rad_tree_node_t rad_tree_find ( const char *  path)

◆ rad_tree_get_property_bool()

rad_status_t rad_tree_get_property_bool ( rad_tree_node_t  node,
const char *  name,
int *  value 
)

◆ rad_tree_get_property_string()

rad_status_t rad_tree_get_property_string ( rad_tree_node_t  node,
const char *  name,
char *  buffer,
size_t  size 
)

◆ rad_tree_get_property_u32()

rad_status_t rad_tree_get_property_u32 ( rad_tree_node_t  node,
const char *  name,
uint32_t *  value 
)

◆ rad_tree_get_property_u32_array()

size_t rad_tree_get_property_u32_array ( rad_tree_node_t  node,
const char *  name,
uint32_t *  values,
size_t  capacity 
)

◆ rad_tree_list()

size_t rad_tree_list ( rad_tree_node_info_t nodes,
size_t  capacity 
)

◆ rad_tty_close()

void rad_tty_close ( rad_tty_t  tty)

◆ rad_tty_get_mode()

rad_status_t rad_tty_get_mode ( rad_tty_t  tty,
uint32_t *  mode 
)

◆ rad_tty_get_window_size()

rad_status_t rad_tty_get_window_size ( rad_tty_t  tty,
rad_tty_window_size_t size 
)

◆ rad_tty_open()

rad_status_t rad_tty_open ( const char *  name,
rad_tty_t tty 
)

◆ rad_tty_push_input()

rad_status_t rad_tty_push_input ( rad_tty_t  tty,
const void *  buffer,
size_t  size,
size_t *  bytes_consumed 
)

◆ rad_tty_read()

rad_status_t rad_tty_read ( rad_tty_t  tty,
void *  buffer,
size_t  size,
size_t *  bytes_read 
)

◆ rad_tty_set_mode()

rad_status_t rad_tty_set_mode ( rad_tty_t  tty,
uint32_t  mode 
)

◆ rad_tty_set_output_callback()

rad_status_t rad_tty_set_output_callback ( rad_tty_t  tty,
rad_tty_output_t  output,
void *  context 
)

◆ rad_tty_set_window_size()

rad_status_t rad_tty_set_window_size ( rad_tty_t  tty,
const rad_tty_window_size_t size 
)

◆ rad_tty_write()

rad_status_t rad_tty_write ( rad_tty_t  tty,
const void *  buffer,
size_t  size,
size_t *  bytes_written 
)

◆ rad_vfs_chdir()

rad_status_t rad_vfs_chdir ( const char *  path)

◆ rad_vfs_close()

void rad_vfs_close ( rad_file_t  file)

◆ rad_vfs_closedir()

void rad_vfs_closedir ( rad_dir_t  dir)

◆ rad_vfs_getcwd()

rad_status_t rad_vfs_getcwd ( char *  buffer,
size_t  size 
)

◆ rad_vfs_list()

rad_status_t rad_vfs_list ( const char *  path,
rad_vfs_list_callback_t  callback,
void *  context 
)

◆ rad_vfs_mkdir()

rad_status_t rad_vfs_mkdir ( const char *  path)

◆ rad_vfs_mount_host()

rad_status_t rad_vfs_mount_host ( const char *  mount_point,
const char *  host_path 
)

◆ rad_vfs_mount_provider()

rad_status_t rad_vfs_mount_provider ( const char *  mount_point,
const rad_vfs_backend_ops_t ops 
)

◆ rad_vfs_mount_sd()

rad_status_t rad_vfs_mount_sd ( const rad_sd_config_t config)

◆ rad_vfs_open()

rad_status_t rad_vfs_open ( const char *  path,
uint32_t  flags,
rad_file_t file 
)

◆ rad_vfs_opendir()

rad_status_t rad_vfs_opendir ( const char *  path,
rad_dir_t dir 
)

◆ rad_vfs_read()

rad_status_t rad_vfs_read ( rad_file_t  file,
void *  buffer,
size_t  size,
size_t *  bytes_read 
)

◆ rad_vfs_readdir()

rad_status_t rad_vfs_readdir ( rad_dir_t  dir,
rad_vfs_dirent_t entry 
)

◆ rad_vfs_remove()

rad_status_t rad_vfs_remove ( const char *  path)

◆ rad_vfs_rename()

rad_status_t rad_vfs_rename ( const char *  old_path,
const char *  new_path 
)

◆ rad_vfs_rmdir()

rad_status_t rad_vfs_rmdir ( const char *  path)

◆ rad_vfs_seek()

rad_status_t rad_vfs_seek ( rad_file_t  file,
int64_t  offset,
rad_seek_origin_t  origin 
)

◆ rad_vfs_stat()

rad_status_t rad_vfs_stat ( const char *  path,
rad_vfs_stat_t stat 
)

◆ rad_vfs_tell()

uint64_t rad_vfs_tell ( rad_file_t  file)

◆ rad_vfs_unmount()

rad_status_t rad_vfs_unmount ( const char *  mount_point)

◆ rad_vfs_write()

rad_status_t rad_vfs_write ( rad_file_t  file,
const void *  buffer,
size_t  size,
size_t *  bytes_written 
)

◆ rad_vprintk()

int rad_vprintk ( const char *  format,
va_list  args 
)

◆ rad_wait_queue_create()

rad_status_t rad_wait_queue_create ( rad_wait_queue_t queue)

◆ rad_wait_queue_destroy()

void rad_wait_queue_destroy ( rad_wait_queue_t  queue)

◆ rad_wait_queue_wait()

rad_status_t rad_wait_queue_wait ( rad_wait_queue_t  queue,
uint32_t  timeout_ms 
)

◆ rad_wait_queue_wake_all()

rad_status_t rad_wait_queue_wake_all ( rad_wait_queue_t  queue)

◆ rad_wait_queue_wake_one()

rad_status_t rad_wait_queue_wake_one ( rad_wait_queue_t  queue)

◆ rad_work_poll()

rad_status_t rad_work_poll ( size_t  budget,
size_t *  ran 
)

◆ rad_work_submit()

rad_status_t rad_work_submit ( const char *  name,
rad_work_handler_t  handler,
void *  context 
)