17 #if defined(__cplusplus) && !defined(RADLIB_EMBEDDED_NO_CPP_WRAPPERS)
26 #define RADEK_VERSION_MAJOR 0
27 #define RADEK_VERSION_MINOR 1
28 #define RADEK_VERSION_PATCH 2
30 #define RAD_IOCTL_NONE 0u
31 #define RAD_IOCTL_WRITE 1u
32 #define RAD_IOCTL_READ 2u
33 #define RAD_IOCTL_READWRITE 3u
34 #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))
35 #define RAD_IO(type, nr) RAD_IOCTL(RAD_IOCTL_NONE, type, nr, 0u)
36 #define RAD_IOR(type, nr, type_name) RAD_IOCTL(RAD_IOCTL_READ, type, nr, sizeof(type_name))
37 #define RAD_IOW(type, nr, type_name) RAD_IOCTL(RAD_IOCTL_WRITE, type, nr, sizeof(type_name))
38 #define RAD_IOWR(type, nr, type_name) RAD_IOCTL(RAD_IOCTL_READWRITE, type, nr, sizeof(type_name))
39 #define RAD_IOCTL_DIR(request) (((uint32_t)(request) >> 30) & 3u)
40 #define RAD_IOCTL_SIZE(request) (((uint32_t)(request) >> 16) & 0x3fffu)
41 #define RAD_IOCTL_TYPE(request) (((uint32_t)(request) >> 8) & 0xffu)
42 #define RAD_IOCTL_NR(request) ((uint32_t)(request) & 0xffu)
44 #define RAD_IOCTL_TYPE_I2C 'I'
45 #define RAD_IOCTL_TYPE_SPI 'S'
46 #define RAD_IOCTL_TYPE_AUDIO 'A'
47 #define RAD_IOCTL_TYPE_SERIAL 'T'
48 #define RAD_IOCTL_TYPE_FRAMEBUFFER 'F'
49 #define RAD_IOCTL_TYPE_INPUT 'K'
50 #define RAD_IOCTL_TYPE_BLOCK 'B'
51 #define RAD_IOCTL_TYPE_NET 'N'
52 #define RAD_IOCTL_TYPE_COMPOSITOR 'C'
53 #define RAD_IOCTL_TYPE_USB 'U'
54 #define RAD_IOCTL_TYPE_TTY 'Y'
56 #define RAD_DEVICE_IOCTL_I2C_TRANSFER RAD_IOWR(RAD_IOCTL_TYPE_I2C, 1u, struct rad_i2c_transfer)
57 #define RAD_DEVICE_IOCTL_SPI_TRANSFER RAD_IOWR(RAD_IOCTL_TYPE_SPI, 1u, struct rad_spi_transfer)
58 #define RAD_DEVICE_IOCTL_AUDIO_CONFIGURE RAD_IOW(RAD_IOCTL_TYPE_AUDIO, 1u, struct rad_audio_format)
59 #define RAD_DEVICE_IOCTL_SERIAL_CONFIGURE RAD_IOW(RAD_IOCTL_TYPE_SERIAL, 1u, struct rad_serial_config)
60 #define RAD_DEVICE_IOCTL_FRAMEBUFFER_INFO RAD_IOR(RAD_IOCTL_TYPE_FRAMEBUFFER, 1u, struct rad_framebuffer_info)
61 #define RAD_DEVICE_IOCTL_FRAMEBUFFER_FLUSH RAD_IOW(RAD_IOCTL_TYPE_FRAMEBUFFER, 2u, struct rad_framebuffer_rect)
62 #define RAD_DEVICE_IOCTL_BLOCK_INFO RAD_IOR(RAD_IOCTL_TYPE_BLOCK, 1u, struct rad_block_info)
63 #define RAD_DEVICE_IOCTL_BLOCK_READ RAD_IOWR(RAD_IOCTL_TYPE_BLOCK, 2u, struct rad_block_request)
64 #define RAD_DEVICE_IOCTL_BLOCK_WRITE RAD_IOWR(RAD_IOCTL_TYPE_BLOCK, 3u, struct rad_block_request)
65 #define RAD_DEVICE_IOCTL_BLOCK_FLUSH RAD_IO(RAD_IOCTL_TYPE_BLOCK, 4u)
66 #define RAD_DEVICE_IOCTL_NET_LINK_INFO RAD_IOR(RAD_IOCTL_TYPE_NET, 1u, struct rad_net_link_info)
67 #define RAD_DEVICE_IOCTL_NET_SEND RAD_IOW(RAD_IOCTL_TYPE_NET, 2u, struct rad_net_packet)
68 #define RAD_DEVICE_IOCTL_NET_POLL RAD_IO(RAD_IOCTL_TYPE_NET, 3u)
69 #define RAD_DEVICE_IOCTL_NET_RECV RAD_IOWR(RAD_IOCTL_TYPE_NET, 4u, struct rad_net_packet)
70 #define RAD_DEVICE_IOCTL_NET_STACK_INFO RAD_IOR(RAD_IOCTL_TYPE_NET, 5u, struct rad_net_stack_info)
71 #define RAD_DEVICE_IOCTL_NET_NTP_QUERY RAD_IOWR(RAD_IOCTL_TYPE_NET, 6u, struct rad_ntp_query)
72 #define RAD_DEVICE_IOCTL_NET_CONFIGURE RAD_IOW(RAD_IOCTL_TYPE_NET, 7u, struct rad_net_stack_config)
73 #define RAD_DEVICE_IOCTL_COMPOSITOR_CREATE_SURFACE RAD_IOWR(RAD_IOCTL_TYPE_COMPOSITOR, 1u, struct rad_compositor_ipc_surface)
74 #define RAD_DEVICE_IOCTL_COMPOSITOR_QUEUE_DAMAGE RAD_IOW(RAD_IOCTL_TYPE_COMPOSITOR, 2u, struct rad_compositor_ipc_damage)
75 #define RAD_DEVICE_IOCTL_FRAMEBUFFER_PRESENT RAD_IOW(RAD_IOCTL_TYPE_FRAMEBUFFER, 3u, struct rad_framebuffer_present)
76 #define RAD_DEVICE_IOCTL_USB_HOST_INFO RAD_IOR(RAD_IOCTL_TYPE_USB, 1u, struct rad_usb_host_info)
77 #define RAD_DEVICE_IOCTL_TTY_GET_WINSIZE RAD_IOR(RAD_IOCTL_TYPE_TTY, 1u, struct rad_tty_window_size)
78 #define RAD_DEVICE_IOCTL_TTY_SET_WINSIZE RAD_IOW(RAD_IOCTL_TYPE_TTY, 2u, struct rad_tty_window_size)
79 #define RAD_DEVICE_IOCTL_TTY_GET_MODE RAD_IOR(RAD_IOCTL_TYPE_TTY, 3u, uint32_t)
80 #define RAD_DEVICE_IOCTL_TTY_SET_MODE RAD_IOW(RAD_IOCTL_TYPE_TTY, 4u, uint32_t)
81 #define RAD_DEVICE_IOCTL_TTY_GET_TERMIOS RAD_IOR(RAD_IOCTL_TYPE_TTY, 5u, struct rad_tty_termios)
82 #define RAD_DEVICE_IOCTL_TTY_SET_TERMIOS RAD_IOW(RAD_IOCTL_TYPE_TTY, 6u, struct rad_tty_termios)
83 #define RAD_DEVICE_IOCTL_TTY_FLUSH RAD_IOW(RAD_IOCTL_TYPE_TTY, 7u, uint32_t)
85 #define RAD_BOOT_MAX_ARGS 16u
86 #define RAD_BOOT_MAX_MEMORY_REGIONS 8u
87 #define RAD_BOOT_MAX_STRING 64u
88 #define RAD_BOOT_HANDOFF_MAGIC 0x52414448u
89 #define RAD_BOOT_HANDOFF_VERSION 1u
90 #define RAD_BOOT_HANDOFF_FLAG_SECONDARIES_PARKED 0x00000001u
91 #define RAD_BOOT_HANDOFF_FLAG_MMU_DISABLED 0x00000002u
92 #define RAD_BOOT_HANDOFF_FLAG_DCACHE_DISABLED 0x00000004u
93 #define RAD_BOOT_HANDOFF_FLAG_ICACHE_INVALIDATED 0x00000008u
94 #define RAD_BOOT_HANDOFF_FLAG_TLB_INVALIDATED 0x00000010u
95 #define RAD_BOOT_HANDOFF_FLAG_INTERRUPTS_MASKED 0x00000020u
97 #define RAD_OVERLAY_MAGIC 0x4f444152u
98 #define RAD_OVERLAY_VERSION 1u
99 #define RAD_TREE_MAX_PROPERTY_NAME 64u
100 #define RAD_TREE_MAX_PATH 96u
101 #define RAD_TREE_MAX_VALUE 96u
102 #define RAD_I2C_BUS_NAME_MAX 32u
103 #define RAD_SPI_BUS_NAME_MAX 32u
104 #define RAD_DRIVER_NAME_MAX 32u
105 #define RAD_COMPATIBLE_MAX 64u
106 #define RAD_MODULE_NAME_MAX 32u
107 #define RAD_MODULE_MAX_INFO 32u
108 #define RAD_SERVICE_NAME_MAX 32u
109 #define RAD_SERVICE_COMPATIBLE_MAX 64u
110 #define RAD_SERVICE_CAPABILITY_MAX 32u
111 #define RAD_IRQ_NAME_MAX 32u
112 #define RAD_IRQ_DOMAIN_NAME_MAX 32u
113 #define RAD_IRQ_MAX_RESOURCES 4u
114 #define RAD_FRAMEBUFFER_NAME_MAX 64u
115 #define RAD_DISPLAY_CONNECTOR_MAX 32u
116 #define RAD_FRAMEBUFFER_MAX_MODES 8u
117 #define RAD_SHM_NAME_MAX 64u
118 #define RAD_SHM_MAX_PAGES 16u
119 #define RAD_MMAP_PROT_READ 1u
120 #define RAD_MMAP_PROT_WRITE 2u
121 #define RAD_MMAP_SHARED 1u
122 #define RAD_MMAP_PRIVATE 2u
123 #define RAD_COMPOSITOR_DAMAGE_EXPOSED 1u
124 #define RAD_AF_INET 2u
125 #define RAD_SOCK_DGRAM 2u
126 #define RAD_SOCK_STREAM 1u
127 #define RAD_IPPROTO_UDP 17u
128 #define RAD_IPPROTO_TCP 6u
129 #define RAD_PERF_NAME_MAX 32u
130 #define RAD_TIMER_NAME_MAX 32u
131 #define RAD_INPUT_QUEUE_NAME_MAX 64u
132 #define RAD_WAIT_FOREVER 0xffffffffu
133 #define RAD_LOG_CATEGORY_MAX 32u
134 #define RAD_LOG_MESSAGE_MAX 192u
136 #define RAD_BOOT_MEMORY_USABLE 1u
137 #define RAD_BOOT_MEMORY_RESERVED 2u
138 #define RAD_BOOT_MEMORY_PSRAM 3u
139 #define RAD_BOOT_MEMORY_MMIO 4u
254 #define RAD_WAIT_NOHANG 1u
255 #define RAD_FD_CLOEXEC 1u
256 #define RAD_FD_NONBLOCK 256u
257 #define RAD_FCNTL_GETFD 1u
258 #define RAD_FCNTL_SETFD 2u
259 #define RAD_FCNTL_GETFL 3u
260 #define RAD_FCNTL_SETFL 4u
262 #define RAD_POLLIN 0x0001
263 #define RAD_POLLOUT 0x0004
264 #define RAD_POLLERR 0x0008
265 #define RAD_POLLHUP 0x0010
266 #define RAD_POLLNVAL 0x0020
441 #define RAD_TASK_CORE_ANY (-1)
442 #define RAD_TASK_CORE_SERVICE 0
1378 #define RAD_TTY_NCCS 32u
1380 #define RAD_TTY_FLUSH_INPUT 1u
1382 #define RAD_TTY_FLUSH_OUTPUT 2u
1595 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);
1757 #if defined(__cplusplus)
1760 #ifndef RADLIB_EMBEDDED_NO_CPP_WRAPPERS
1761 namespace RADEmbedded {
1765 static rad_status_t init(
const char *backend =
"linux_sim") {
1780 Mutex(
const Mutex&) =
delete;
1781 Mutex& operator=(
const Mutex&) =
delete;
1791 explicit Event(
bool signaled =
false) {
rad_event_create(&handle_, signaled ? 1 : 0); }
1793 Event(
const Event&) =
delete;
1794 Event& operator=(
const Event&) =
delete;
1805 ~
File() { close(); }
1806 File(
const File&) =
delete;
1807 File& operator=(
const File&) =
delete;
1809 size_t read(
void *buffer,
size_t size) {
size_t done = 0;
rad_vfs_read(handle_, buffer, size, &done);
return done; }
1810 size_t write(
const void *buffer,
size_t size) {
size_t done = 0;
rad_vfs_write(handle_, buffer, size, &done);
return done; }
1811 void close() {
if (handle_) {
rad_vfs_close(handle_); handle_ =
nullptr; } }
UniqueHandle< rad_file_t, rad_vfs_close > File
RAII owner for rad_file_t.
Definition: rad_cpp.h:99
rad_status_t rad_vfs_read(rad_file_t file, void *buffer, size_t size, size_t *bytes_read)
Public RADPx-OS kernel API entry point.
rad_status_t rad_i2c_device_transfer(rad_i2c_device_t *device, const rad_i2c_transfer_t *transfer)
Public RADPx-OS kernel API entry point.
void rad_task_sleep_ms(uint32_t milliseconds)
Public RADPx-OS kernel API entry point.
rad_module_state
Public enumeration for rad_module_state.
Definition: radkernel.h:1154
@ RAD_MODULE_EXITED
RAD_MODULE_EXITED.
Definition: radkernel.h:1158
@ RAD_MODULE_REGISTERED
RAD_MODULE_REGISTERED.
Definition: radkernel.h:1155
@ RAD_MODULE_FAILED
RAD_MODULE_FAILED.
Definition: radkernel.h:1157
@ RAD_MODULE_INITIALIZED
RAD_MODULE_INITIALIZED.
Definition: radkernel.h:1156
struct rad_serial_config rad_serial_config_t
Public data structure for rad_serial_config.
rad_status_t rad_input_queue_push(rad_input_queue_t queue, const rad_input_event_t *event)
Public RADPx-OS kernel API entry point.
rad_status_t rad_kernel_init(const rad_kernel_config_t *config)
Public RADPx-OS kernel API entry point.
rad_status_t rad_log_flush_to_path(const char *path)
Public RADPx-OS kernel API entry point.
rad_status_t rad_vfs_truncate(const char *path, uint64_t size)
Public RADPx-OS kernel API entry point.
rad_status_t rad_vfs_mount_sd(const rad_sd_config_t *config)
Public RADPx-OS kernel API entry point.
struct rad_spi_device_info rad_spi_device_info_t
Public data structure for rad_spi_device_info.
rad_tree_property_type
Public enumeration for rad_tree_property_type.
Definition: radkernel.h:619
@ RAD_TREE_PROP_U32_ARRAY
RAD_TREE_PROP_U32_ARRAY.
Definition: radkernel.h:623
@ RAD_TREE_PROP_STRING
RAD_TREE_PROP_STRING.
Definition: radkernel.h:622
@ RAD_TREE_PROP_STRING_ARRAY
RAD_TREE_PROP_STRING_ARRAY.
Definition: radkernel.h:624
@ RAD_TREE_PROP_BOOL
RAD_TREE_PROP_BOOL.
Definition: radkernel.h:620
@ RAD_TREE_PROP_U32
RAD_TREE_PROP_U32.
Definition: radkernel.h:621
rad_status_t rad_framebuffer_register(const char *name, const rad_framebuffer_info_t *info, const rad_framebuffer_ops_t *ops)
Public RADPx-OS kernel API entry point.
rad_status_t rad_block_info(rad_device_t device, rad_block_info_t *info)
Public RADPx-OS kernel API entry point.
uint64_t rad_vfs_tell(rad_file_t file)
Public RADPx-OS kernel API entry point.
rad_status_t rad_vfs_open(const char *path, uint32_t flags, rad_file_t *file)
Public RADPx-OS kernel API entry point.
enum rad_kernel_print_level rad_kernel_print_level_t
Kernel-only printk severity.
rad_status_t rad_tty_set_termios(rad_tty_t tty, const rad_tty_termios_t *termios)
Public RADPx-OS kernel API entry point.
#define RAD_SERVICE_COMPATIBLE_MAX
Public constant or ioctl helper.
Definition: radkernel.h:109
struct rad_framebuffer_config rad_framebuffer_config_t
Public data structure for rad_framebuffer_config.
intptr_t rad_socket_recvfrom(int32_t fd, void *buffer, size_t size, uint32_t flags, rad_sockaddr_in_t *address, size_t *address_length)
Public RADPx-OS kernel API entry point.
void rad_perf_counter_add(const char *name, uint64_t delta)
Public RADPx-OS kernel API entry point.
#define RAD_COMPATIBLE_MAX
Public constant or ioctl helper.
Definition: radkernel.h:105
struct rad_spi_device rad_spi_device_t
Forward-declared public type rad_spi_device_t backed by rad_spi_device.
Definition: radkernel.h:1079
rad_status_t rad_irq_dispatch(uint32_t irq)
Public RADPx-OS kernel API entry point.
size_t rad_module_list(rad_module_info_t *modules, size_t capacity)
Public RADPx-OS kernel API entry point.
struct rad_compositor_ipc_surface rad_compositor_ipc_surface_t
Public data structure for rad_compositor_ipc_surface.
#define RAD_IRQ_DOMAIN_NAME_MAX
Public constant or ioctl helper.
Definition: radkernel.h:112
int32_t rad_shm_get_info(int32_t fd, rad_shm_info_t *info)
Public RADPx-OS kernel API entry point.
uint32_t rad_scheduler_current_core(void)
Public RADPx-OS kernel API entry point.
struct rad_framebuffer_ops rad_framebuffer_ops_t
Public data structure for rad_framebuffer_ops.
rad_status_t rad_vfs_symlink(const char *target, const char *link_path)
Public RADPx-OS kernel API entry point.
int rad_task_current_core(void)
Public RADPx-OS kernel API entry point.
rad_status_t rad_dma_controller_register(const rad_dma_controller_config_t *config, const rad_dma_backend_ops_t *ops)
Public RADPx-OS kernel API entry point.
rad_status_t rad_module_unregister(const char *name)
Public RADPx-OS kernel API entry point.
rad_status_t rad_vfs_fsync(rad_file_t file)
Public RADPx-OS kernel API entry point.
rad_sd_mode
Public enumeration for rad_sd_mode.
Definition: radkernel.h:385
@ RAD_SD_MODE_PIO_SDIO
RAD_SD_MODE_PIO_SDIO.
Definition: radkernel.h:388
@ RAD_SD_MODE_SPI
RAD_SD_MODE_SPI.
Definition: radkernel.h:387
@ RAD_SD_MODE_AUTO
RAD_SD_MODE_AUTO.
Definition: radkernel.h:386
rad_program_state
Public enumeration for rad_program_state.
Definition: radkernel.h:871
@ RAD_PROGRAM_FAILED
RAD_PROGRAM_FAILED.
Definition: radkernel.h:875
@ RAD_PROGRAM_LOADED
RAD_PROGRAM_LOADED.
Definition: radkernel.h:872
@ RAD_PROGRAM_FINISHED
RAD_PROGRAM_FINISHED.
Definition: radkernel.h:874
@ RAD_PROGRAM_RUNNING
RAD_PROGRAM_RUNNING.
Definition: radkernel.h:873
rad_seek_origin
Public enumeration for rad_seek_origin.
Definition: radkernel.h:279
@ RAD_SEEK_CUR
RAD_SEEK_CUR.
Definition: radkernel.h:281
@ RAD_SEEK_SET
RAD_SEEK_SET.
Definition: radkernel.h:280
@ RAD_SEEK_END
RAD_SEEK_END.
Definition: radkernel.h:282
rad_status_t rad_timer_source_register(const rad_timer_source_config_t *config, const rad_timer_source_ops_t *ops)
Public RADPx-OS kernel API entry point.
int32_t rad_fd_dup(int32_t fd)
Public RADPx-OS kernel API entry point.
struct rad_spi_controller_config rad_spi_controller_config_t
Public data structure for rad_spi_controller_config.
enum rad_device_type rad_device_type_t
Public enumeration for rad_device_type.
rad_status_t rad_pty_write_master(rad_pty_t pty, const void *buffer, size_t size, size_t *bytes_written)
Public RADPx-OS kernel API entry point.
int rad_vkprintk(rad_kernel_print_level_t level, const char *format, va_list args)
Public RADPx-OS kernel API entry point.
#define RAD_FRAMEBUFFER_NAME_MAX
Public constant or ioctl helper.
Definition: radkernel.h:114
size_t rad_device_list(char names[][64], rad_device_type_t *types, size_t capacity)
Public RADPx-OS kernel API entry point.
void rad_spi_bus_close(rad_spi_bus_t bus)
Public RADPx-OS kernel API entry point.
rad_status_t rad_framebuffer_open_primary(rad_framebuffer_t *framebuffer)
Public RADPx-OS kernel API entry point.
struct rad_framebuffer_rect rad_framebuffer_rect_t
Public data structure for rad_framebuffer_rect.
enum rad_usb_controller_type rad_usb_controller_type_t
Public enumeration for rad_usb_controller_type.
enum rad_process_state rad_process_state_t
Public enumeration for rad_process_state.
rad_status_t rad_block_flush(rad_device_t device)
Public RADPx-OS kernel API entry point.
rad_status_t rad_spi_controller_unregister(uint32_t bus_id)
Public RADPx-OS kernel API entry point.
rad_status_t rad_mutex_unlock(rad_mutex_t mutex)
Public RADPx-OS kernel API entry point.
struct rad_ipv4_address rad_ipv4_address_t
Public data structure for rad_ipv4_address.
rad_status_t rad_net_poll(rad_device_t device)
Public RADPx-OS kernel API entry point.
int32_t rad_process_current_pid(void)
Public RADPx-OS kernel API entry point.
rad_status_t rad_net_stack_info(rad_net_stack_info_t *info)
Public RADPx-OS kernel API entry point.
struct rad_irq_info rad_irq_info_t
Public data structure for rad_irq_info.
rad_status_t rad_input_device_unregister(const char *name)
Public RADPx-OS kernel API entry point.
rad_status_t rad_task_create(rad_task_t *task, const char *name, rad_task_entry_t entry, void *context, size_t stack_size)
Public RADPx-OS kernel API entry point.
rad_status_t rad_spi_transfer_device(rad_device_t device, const rad_spi_transfer_t *transfer)
Public RADPx-OS kernel API entry point.
rad_status_t rad_vfs_mount_host(const char *mount_point, const char *host_path)
Public RADPx-OS kernel API entry point.
int32_t rad_fd_ftruncate(int32_t fd, uint64_t size)
Public RADPx-OS kernel API entry point.
rad_status_t rad_framebuffer_flush(rad_framebuffer_t framebuffer, const rad_framebuffer_rect_t *rect)
Public RADPx-OS kernel API entry point.
rad_status_t rad_tree_get_property_u32(rad_tree_node_t node, const char *name, uint32_t *value)
Public RADPx-OS kernel API entry point.
struct rad_net_link_info rad_net_link_info_t
Public data structure for rad_net_link_info.
int32_t rad_process_fork(void)
Public RADPx-OS kernel API entry point.
rad_task_state
Public enumeration for rad_task_state.
Definition: radkernel.h:445
@ RAD_TASK_BLOCKED
RAD_TASK_BLOCKED.
Definition: radkernel.h:450
@ RAD_TASK_DETACHED
RAD_TASK_DETACHED.
Definition: radkernel.h:452
@ RAD_TASK_SLEEPING
RAD_TASK_SLEEPING.
Definition: radkernel.h:449
@ RAD_TASK_RUNNING
RAD_TASK_RUNNING.
Definition: radkernel.h:448
@ RAD_TASK_FINISHED
RAD_TASK_FINISHED.
Definition: radkernel.h:451
@ RAD_TASK_NEW
RAD_TASK_NEW.
Definition: radkernel.h:446
@ RAD_TASK_READY
RAD_TASK_READY.
Definition: radkernel.h:447
#define RAD_LOG_MESSAGE_MAX
Public constant or ioctl helper.
Definition: radkernel.h:134
enum rad_vfs_open_flags rad_vfs_open_flags_t
Public enumeration for rad_vfs_open_flags.
rad_status_t rad_framebuffer_register_ex(const rad_framebuffer_config_t *config, const rad_framebuffer_ops_t *ops)
Public RADPx-OS kernel API entry point.
struct rad_vfs_stat rad_vfs_stat_t
Public data structure for rad_vfs_stat.
struct rad_irq_domain_handle * rad_irq_domain_t
Opaque handle type rad_irq_domain_t backed by rad_irq_domain_handle.
Definition: radkernel.h:1231
struct rad_device_handle * rad_device_t
Opaque handle type rad_device_t backed by rad_device_handle.
Definition: radkernel.h:1361
struct rad_pty_handle * rad_pty_t
Opaque handle type rad_pty_t backed by rad_pty_handle.
Definition: radkernel.h:1367
rad_tree_node_t rad_tree_find(const char *path)
Public RADPx-OS kernel API entry point.
int32_t rad_shm_open(const char *name, size_t byte_size, uint32_t flags)
Public RADPx-OS kernel API entry point.
rad_status_t rad_framebuffer_present(rad_framebuffer_t framebuffer, const rad_framebuffer_present_t *present)
Public RADPx-OS kernel API entry point.
struct rad_process_info rad_process_info_t
Public data structure for rad_process_info.
rad_status_t rad_terminal_register_command(const char *name, const char *description, rad_terminal_handler_t handler, void *context)
Public RADPx-OS kernel API entry point.
rad_status_t rad_process_setgid(rad_gid_t gid)
Public RADPx-OS kernel API entry point.
void rad_sleep_us(uint32_t microseconds)
Public RADPx-OS kernel API entry point.
int32_t rad_fd_fstat(int32_t fd, rad_vfs_stat_t *stat)
Public RADPx-OS kernel API entry point.
struct rad_file_handle * rad_file_t
Opaque handle type rad_file_t backed by rad_file_handle.
Definition: radkernel.h:1357
void rad_terminal_repl_set(int enabled)
Enable/disable the kernel debug REPL on the attached tty; disable while a user session owns it....
rad_status_t rad_terminal_attach_tty(const char *serial_device_name, const char *tty_name)
Public RADPx-OS kernel API entry point.
rad_status_t rad_scheduler_info_get(rad_scheduler_info_t *info)
Public RADPx-OS kernel API entry point.
int32_t rad_process_waitpid(int32_t pid, int32_t *status, uint32_t options)
Public RADPx-OS kernel API entry point.
struct rad_input_event rad_input_event_t
Public data structure for rad_input_event.
struct rad_shm_info rad_shm_info_t
Public data structure for rad_shm_info.
int32_t rad_shm_get_page(int32_t fd, size_t page_index, uintptr_t *page_token)
Public RADPx-OS kernel API entry point.
rad_status_t rad_service_start(const char *name)
Public RADPx-OS kernel API entry point.
rad_status_t rad_spi_device_get_irq(const rad_spi_device_t *device, size_t index, rad_irq_resource_t *resource)
Public RADPx-OS kernel API entry point.
struct rad_wait_queue_handle * rad_wait_queue_t
Opaque handle type rad_wait_queue_t backed by rad_wait_queue_handle.
Definition: radkernel.h:1353
struct rad_module_info rad_module_info_t
Public data structure for rad_module_info.
#define RAD_LOG_CATEGORY_MAX
Public constant or ioctl helper.
Definition: radkernel.h:133
#define RAD_TIMER_NAME_MAX
Public constant or ioctl helper.
Definition: radkernel.h:130
rad_status_t rad_cpu_interrupts_disable(void)
Public RADPx-OS kernel API entry point.
rad_status_t rad_process_set_credentials(int32_t pid, const rad_credentials_t *credentials)
Public RADPx-OS kernel API entry point.
rad_status_t rad_wait_queue_create(rad_wait_queue_t *queue)
Public RADPx-OS kernel API entry point.
struct rad_dma_backend_ops rad_dma_backend_ops_t
Public data structure for rad_dma_backend_ops.
rad_status_t rad_process_setuid(rad_uid_t uid)
Public RADPx-OS kernel API entry point.
rad_status_t rad_pty_slave_name(rad_pty_t pty, char *buffer, size_t size)
Public RADPx-OS kernel API entry point.
int(* rad_vfs_list_callback_t)(const char *name, const rad_vfs_stat_t *stat, void *context)
Public callback typedef used by the RADPx-OS API.
Definition: radkernel.h:845
struct rad_mutex_handle * rad_mutex_t
Opaque handle type rad_mutex_t backed by rad_mutex_handle.
Definition: radkernel.h:1349
rad_status_t rad_spi_driver_unregister(const char *name)
Public RADPx-OS kernel API entry point.
rad_status_t rad_spi_controller_register(const rad_spi_controller_config_t *config, const rad_spi_controller_ops_t *ops)
Public RADPx-OS kernel API entry point.
struct rad_mac_address rad_mac_address_t
Public data structure for rad_mac_address.
rad_status_t rad_input_read_event(rad_device_t device, rad_input_event_t *event)
Public RADPx-OS kernel API entry point.
struct rad_net_stack_info rad_net_stack_info_t
Public data structure for rad_net_stack_info.
rad_status_t rad_vfs_seek(rad_file_t file, int64_t offset, rad_seek_origin_t origin)
Public RADPx-OS kernel API entry point.
void(* rad_work_handler_t)(void *context)
Public callback typedef used by the RADPx-OS API.
Definition: radkernel.h:1344
uint32_t rad_uid_t
POSIX-style user identifier.
Definition: radkernel.h:285
struct rad_dma_channel_info rad_dma_channel_info_t
Public data structure for rad_dma_channel_info.
struct rad_i2c_transfer rad_i2c_transfer_t
Public data structure for rad_i2c_transfer.
struct rad_framebuffer_handle * rad_framebuffer_t
Opaque handle type rad_framebuffer_t backed by rad_framebuffer_handle.
Definition: radkernel.h:961
rad_status_t rad_process_get_credentials(int32_t pid, rad_credentials_t *credentials)
Public RADPx-OS kernel API entry point.
void rad_cpu_idle(void)
Public RADPx-OS kernel API entry point.
rad_status_t rad_service_register(const rad_service_descriptor_t *descriptor)
Public RADPx-OS kernel API entry point.
rad_status_t rad_kernel_run(void)
Public RADPx-OS kernel API entry point.
int rad_kprintk(rad_kernel_print_level_t level, const char *format,...)
Public RADPx-OS kernel API entry point.
rad_status_t rad_event_create(rad_event_t *event, int initially_signaled)
Public RADPx-OS kernel API entry point.
#define RAD_PERF_NAME_MAX
Public constant or ioctl helper.
Definition: radkernel.h:129
struct rad_i2c_controller_ops rad_i2c_controller_ops_t
Public data structure for rad_i2c_controller_ops.
rad_pixel_format
Public enumeration for rad_pixel_format.
Definition: radkernel.h:379
@ RAD_PIXEL_FORMAT_XRGB8888
RAD_PIXEL_FORMAT_XRGB8888.
Definition: radkernel.h:381
@ RAD_PIXEL_FORMAT_RGB565
RAD_PIXEL_FORMAT_RGB565.
Definition: radkernel.h:380
struct rad_dir_handle * rad_dir_t
Opaque handle type rad_dir_t backed by rad_dir_handle.
Definition: radkernel.h:1359
void rad_i2c_bus_close(rad_i2c_bus_t bus)
Public RADPx-OS kernel API entry point.
struct rad_net_stack_config rad_net_stack_config_t
Public data structure for rad_net_stack_config.
void rad_i2c_device_close(rad_i2c_device_t *device)
Public RADPx-OS kernel API entry point.
void rad_dma_channel_release(rad_dma_channel_t channel)
Public RADPx-OS kernel API entry point.
enum rad_program_state rad_program_state_t
Public enumeration for rad_program_state.
rad_status_t rad_vfs_link(const char *old_path, const char *new_path)
Public RADPx-OS kernel API entry point.
rad_status_t rad_tty_open(const char *name, rad_tty_t *tty)
Public RADPx-OS kernel API entry point.
void rad_sleep_ms(uint32_t milliseconds)
Public RADPx-OS kernel API entry point.
rad_status_t rad_irq_domain_register(const rad_irq_domain_config_t *config, rad_irq_domain_t *domain)
Public RADPx-OS kernel API entry point.
void rad_debug_marker(const char *marker)
Public RADPx-OS kernel API entry point.
struct rad_sockaddr_in rad_sockaddr_in_t
Public data structure for rad_sockaddr_in.
rad_status_t rad_cpu_interrupts_enable(void)
Public RADPx-OS kernel API entry point.
rad_status_t rad_tty_set_window_size(rad_tty_t tty, const rad_tty_window_size_t *size)
Public RADPx-OS kernel API entry point.
size_t rad_irq_list(rad_irq_info_t *irqs, size_t capacity)
Public RADPx-OS kernel API entry point.
rad_status_t rad_tty_push_input(rad_tty_t tty, const void *buffer, size_t size, size_t *bytes_consumed)
Public RADPx-OS kernel API entry point.
int32_t rad_process_kill(int32_t pid, int32_t signal_number)
Public RADPx-OS kernel API entry point.
int32_t rad_socket_create(int domain, int type, int protocol)
Public RADPx-OS kernel API entry point.
size_t rad_framebuffer_list_ex(rad_framebuffer_display_info_t *framebuffers, size_t capacity)
Public RADPx-OS kernel API entry point.
int32_t rad_process_reap(int32_t pid, int32_t *status)
Public RADPx-OS kernel API entry point.
rad_status_t rad_dma_cancel(rad_dma_channel_t channel)
Public RADPx-OS kernel API entry point.
rad_status_t rad_dma_channel_request(rad_dma_request_id_t request_id, rad_dma_channel_t *channel)
Public RADPx-OS kernel API entry point.
int32_t rad_fd_fchdir(int32_t fd)
Public RADPx-OS kernel API entry point.
enum rad_seek_origin rad_seek_origin_t
Public enumeration for rad_seek_origin.
struct rad_timer_source_info rad_timer_source_info_t
Public data structure for rad_timer_source_info.
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)
Public RADPx-OS kernel API entry point.
int32_t rad_fd_close(int32_t fd)
Public RADPx-OS kernel API entry point.
rad_status_t rad_core_info_get(rad_core_info_t *info)
Public RADPx-OS kernel API entry point.
struct rad_spi_bus_handle * rad_spi_bus_t
Opaque handle type rad_spi_bus_t backed by rad_spi_bus_handle.
Definition: radkernel.h:1077
enum rad_task_state rad_task_state_t
Public enumeration for rad_task_state.
rad_status_t rad_i2c_driver_register(const rad_i2c_driver_t *driver)
Public RADPx-OS kernel API entry point.
int32_t rad_process_create(const char *path, int32_t parent_pid)
Public RADPx-OS kernel API entry point.
rad_dma_request_id
Public enumeration for rad_dma_request_id.
Definition: radkernel.h:406
@ RAD_DMA_DREQ_SPI1_TX
RAD_DMA_DREQ_SPI1_TX.
Definition: radkernel.h:410
@ RAD_DMA_DREQ_NONE
RAD_DMA_DREQ_NONE.
Definition: radkernel.h:407
@ RAD_DMA_DREQ_SPI1_RX
RAD_DMA_DREQ_SPI1_RX.
Definition: radkernel.h:411
@ RAD_DMA_DREQ_SPI0_TX
RAD_DMA_DREQ_SPI0_TX.
Definition: radkernel.h:408
@ RAD_DMA_DREQ_SPI0_RX
RAD_DMA_DREQ_SPI0_RX.
Definition: radkernel.h:409
@ RAD_DMA_DREQ_RP2350_HSTX_TX
RAD_DMA_DREQ_RP2350_HSTX_TX.
Definition: radkernel.h:412
rad_status_t rad_pty_resize(rad_pty_t pty, const rad_tty_window_size_t *size)
Public RADPx-OS kernel API entry point.
size_t rad_service_list(rad_service_info_t *services, size_t capacity)
Public RADPx-OS kernel API entry point.
void rad_spi_device_close(rad_spi_device_t *device)
Public RADPx-OS kernel API entry point.
int32_t rad_process_getsid(int32_t pid)
Public RADPx-OS kernel API entry point.
void rad_input_queue_destroy(rad_input_queue_t queue)
Public RADPx-OS kernel API entry point.
rad_status_t rad_net_send(rad_device_t device, const void *data, size_t length)
Public RADPx-OS kernel API entry point.
void rad_process_exit(int32_t status)
Public RADPx-OS kernel API entry point.
rad_status_t rad_framebuffer_unregister(const char *name)
Public RADPx-OS kernel API entry point.
rad_uid_t rad_process_geteuid(void)
Public RADPx-OS kernel API entry point.
intptr_t rad_socket_recv(int32_t fd, void *buffer, size_t size, uint32_t flags)
Public RADPx-OS kernel API entry point.
rad_status_t rad_process_attach_task(int32_t pid, rad_task_t task)
Public RADPx-OS kernel API entry point.
enum rad_display_output_type rad_display_output_type_t
Public enumeration for rad_display_output_type.
rad_status_t rad_mutex_create(rad_mutex_t *mutex)
Public RADPx-OS kernel API entry point.
rad_status_t rad_net_ntp_query(rad_ntp_query_t *query)
Public RADPx-OS kernel API entry point.
rad_status_t rad_i2c_controller_register(const rad_i2c_controller_config_t *config, const rad_i2c_controller_ops_t *ops)
Public RADPx-OS kernel API entry point.
void rad_memory_get_stats(rad_memory_stats_t *stats)
Public RADPx-OS kernel API entry point.
rad_status_t rad_vfs_readdir(rad_dir_t dir, rad_vfs_dirent_t *entry)
Public RADPx-OS kernel API entry point.
rad_status_t rad_module_register(const rad_module_descriptor_t *descriptor)
Public RADPx-OS kernel API entry point.
rad_status_t rad_log_write(rad_log_level_t level, const char *category, const char *message)
Public RADPx-OS kernel API entry point.
int32_t rad_pipe_create(int32_t pipefd[2])
Public RADPx-OS kernel API entry point.
struct rad_net_packet rad_net_packet_t
Public data structure for rad_net_packet.
rad_input_pointer_button_flags
Public enumeration for rad_input_pointer_button_flags.
Definition: radkernel.h:372
@ RAD_INPUT_POINTER_BUTTON_MIDDLE
RAD_INPUT_POINTER_BUTTON_MIDDLE.
Definition: radkernel.h:375
@ RAD_INPUT_POINTER_BUTTON_RIGHT
RAD_INPUT_POINTER_BUTTON_RIGHT.
Definition: radkernel.h:374
@ RAD_INPUT_POINTER_BUTTON_LEFT
RAD_INPUT_POINTER_BUTTON_LEFT.
Definition: radkernel.h:373
rad_status_t rad_spi_device_transfer(rad_spi_device_t *device, const rad_spi_transfer_t *transfer)
Public RADPx-OS kernel API entry point.
size_t rad_program_list(rad_program_info_t *programs, size_t capacity)
Public RADPx-OS kernel API entry point.
rad_status_t rad_vfs_list(const char *path, rad_vfs_list_callback_t callback, void *context)
Public RADPx-OS kernel API entry point.
#define RAD_IRQ_MAX_RESOURCES
Public constant or ioctl helper.
Definition: radkernel.h:113
size_t rad_i2c_device_irq_count(const rad_i2c_device_t *device)
Public RADPx-OS kernel API entry point.
rad_status_t rad_boot_info_set(const rad_boot_info_t *boot_info)
Public RADPx-OS kernel API entry point.
rad_status_t rad_device_write(rad_device_t device, const void *buffer, size_t size, size_t *bytes_written)
Public RADPx-OS kernel API entry point.
rad_status_t rad_vfs_rename(const char *old_path, const char *new_path)
Public RADPx-OS kernel API entry point.
struct rad_pollfd rad_pollfd_t
POSIX-style poll descriptor used by RADPx-OS userland.
struct rad_audio_format rad_audio_format_t
Public data structure for rad_audio_format.
rad_status_t rad_i2c_transfer(rad_i2c_bus_t bus, const rad_i2c_transfer_t *transfer)
Public RADPx-OS kernel API entry point.
rad_status_t rad_tree_get_property_bool(rad_tree_node_t node, const char *name, int *value)
Public RADPx-OS kernel API entry point.
rad_status_t rad_vfs_opendir(const char *path, rad_dir_t *dir)
Public RADPx-OS kernel API entry point.
intptr_t rad_fd_getdents(int32_t fd, rad_dirent_user_t *entries, size_t capacity)
Public RADPx-OS kernel API entry point.
rad_status_t rad_overlay_load_file(const char *path)
Public RADPx-OS kernel API entry point.
int rad_printk(const char *format,...)
Public RADPx-OS kernel API entry point.
struct rad_boot_arg rad_boot_arg_t
Public data structure for rad_boot_arg.
struct rad_block_info rad_block_info_t
Public data structure for rad_block_info.
rad_status_t rad_block_open(const char *name, rad_device_t *device)
Public RADPx-OS kernel API entry point.
intptr_t rad_fd_read(int32_t fd, void *buffer, size_t size)
Public RADPx-OS kernel API entry point.
rad_status_t rad_vfs_mkdir(const char *path)
Public RADPx-OS kernel API entry point.
struct rad_tree_node_handle * rad_tree_node_t
Opaque handle type rad_tree_node_t backed by rad_tree_node_handle.
Definition: radkernel.h:628
rad_status_t rad_pty_open_pair(const char *name, rad_pty_t *pty)
Public RADPx-OS kernel API entry point.
#define RAD_SERVICE_CAPABILITY_MAX
Public constant or ioctl helper.
Definition: radkernel.h:110
rad_usb_device_class
Public enumeration for rad_usb_device_class.
Definition: radkernel.h:320
@ RAD_USB_CLASS_HID_KEYBOARD
RAD_USB_CLASS_HID_KEYBOARD.
Definition: radkernel.h:322
@ RAD_USB_CLASS_MASS_STORAGE
RAD_USB_CLASS_MASS_STORAGE.
Definition: radkernel.h:324
@ RAD_USB_CLASS_UNKNOWN
RAD_USB_CLASS_UNKNOWN.
Definition: radkernel.h:321
@ RAD_USB_CLASS_HID_MOUSE
RAD_USB_CLASS_HID_MOUSE.
Definition: radkernel.h:323
struct rad_tree_node_info rad_tree_node_info_t
Public data structure for rad_tree_node_info.
int32_t rad_shm_set_page(int32_t fd, size_t page_index, uintptr_t page_token)
Public RADPx-OS kernel API entry point.
void rad_task_detach(rad_task_t task)
Public RADPx-OS kernel API entry point.
rad_status_t rad_timer_source_unregister(const char *name)
Public RADPx-OS kernel API entry point.
enum rad_spi_transfer_mode rad_spi_transfer_mode_t
Public enumeration for rad_spi_transfer_mode.
rad_status_t rad_irq_resource_enable(const rad_irq_resource_t *resource)
Public RADPx-OS kernel API entry point.
rad_log_level
Public enumeration for rad_log_level.
Definition: radkernel.h:155
@ RAD_LOG_ERROR
RAD_LOG_ERROR.
Definition: radkernel.h:160
@ RAD_LOG_DEBUG
RAD_LOG_DEBUG.
Definition: radkernel.h:157
@ RAD_LOG_WARNING
RAD_LOG_WARNING.
Definition: radkernel.h:159
@ RAD_LOG_INFO
RAD_LOG_INFO.
Definition: radkernel.h:158
@ RAD_LOG_CRITICAL
RAD_LOG_CRITICAL.
Definition: radkernel.h:161
@ RAD_LOG_TRACE
RAD_LOG_TRACE.
Definition: radkernel.h:156
int64_t rad_fd_lseek(int32_t fd, int64_t offset, rad_seek_origin_t origin)
Public RADPx-OS kernel API entry point.
struct rad_log_entry rad_log_entry_t
Public data structure for rad_log_entry.
enum rad_service_state rad_service_state_t
Public enumeration for rad_service_state.
rad_posix_syscall
Public enumeration for rad_posix_syscall.
Definition: radkernel.h:173
@ RAD_SYSCALL_CLOSE
RAD_SYSCALL_CLOSE.
Definition: radkernel.h:177
@ RAD_SYSCALL_RENAME
RAD_SYSCALL_RENAME.
Definition: radkernel.h:219
@ RAD_SYSCALL_FCNTL
RAD_SYSCALL_FCNTL.
Definition: radkernel.h:196
@ RAD_SYSCALL_LOG_READ
RAD_SYSCALL_LOG_READ.
Definition: radkernel.h:221
@ RAD_SYSCALL_EXECVE
RAD_SYSCALL_EXECVE.
Definition: radkernel.h:186
@ RAD_SYSCALL_FCHDIR
RAD_SYSCALL_FCHDIR.
Definition: radkernel.h:235
@ RAD_SYSCALL_TCGETPGRP
RAD_SYSCALL_TCGETPGRP.
Definition: radkernel.h:242
@ RAD_SYSCALL_SHM_OPEN
RAD_SYSCALL_SHM_OPEN.
Definition: radkernel.h:211
@ RAD_SYSCALL_GETUID
RAD_SYSCALL_GETUID.
Definition: radkernel.h:223
@ RAD_SYSCALL_SHUTDOWN
RAD_SYSCALL_SHUTDOWN.
Definition: radkernel.h:206
@ RAD_SYSCALL_LOG_FLUSH
RAD_SYSCALL_LOG_FLUSH.
Definition: radkernel.h:222
@ RAD_SYSCALL_READLINK
RAD_SYSCALL_READLINK.
Definition: radkernel.h:232
@ RAD_SYSCALL_FSTAT
RAD_SYSCALL_FSTAT.
Definition: radkernel.h:181
@ RAD_SYSCALL_WRITE
RAD_SYSCALL_WRITE.
Definition: radkernel.h:175
@ RAD_SYSCALL_GETCWD
RAD_SYSCALL_GETCWD.
Definition: radkernel.h:193
@ RAD_SYSCALL_OPEN
RAD_SYSCALL_OPEN.
Definition: radkernel.h:176
@ RAD_SYSCALL_LSEEK
RAD_SYSCALL_LSEEK.
Definition: radkernel.h:179
@ RAD_SYSCALL_CHMOD
RAD_SYSCALL_CHMOD.
Definition: radkernel.h:229
@ RAD_SYSCALL_GETSID
RAD_SYSCALL_GETSID.
Definition: radkernel.h:240
@ RAD_SYSCALL_LINK
RAD_SYSCALL_LINK.
Definition: radkernel.h:230
@ RAD_SYSCALL_GETEGID
RAD_SYSCALL_GETEGID.
Definition: radkernel.h:226
@ RAD_SYSCALL_PIPE2
RAD_SYSCALL_PIPE2.
Definition: radkernel.h:244
@ RAD_SYSCALL_WAITPID
RAD_SYSCALL_WAITPID.
Definition: radkernel.h:187
@ RAD_SYSCALL_GETGID
RAD_SYSCALL_GETGID.
Definition: radkernel.h:225
@ RAD_SYSCALL_DUP
RAD_SYSCALL_DUP.
Definition: radkernel.h:190
@ RAD_SYSCALL_SHM_UNLINK
RAD_SYSCALL_SHM_UNLINK.
Definition: radkernel.h:212
@ RAD_SYSCALL_PIPE
RAD_SYSCALL_PIPE.
Definition: radkernel.h:195
@ RAD_SYSCALL_BRK
RAD_SYSCALL_BRK.
Definition: radkernel.h:194
@ RAD_SYSCALL_TRUNCATE
RAD_SYSCALL_TRUNCATE.
Definition: radkernel.h:220
@ RAD_SYSCALL_MUNMAP
RAD_SYSCALL_MUNMAP.
Definition: radkernel.h:210
@ RAD_SYSCALL_IOCTL
RAD_SYSCALL_IOCTL.
Definition: radkernel.h:178
@ RAD_SYSCALL_LISTEN
RAD_SYSCALL_LISTEN.
Definition: radkernel.h:202
@ RAD_SYSCALL_GETDENTS
RAD_SYSCALL_GETDENTS.
Definition: radkernel.h:215
@ RAD_SYSCALL_GETPID
RAD_SYSCALL_GETPID.
Definition: radkernel.h:188
@ RAD_SYSCALL_TCSETPGRP
RAD_SYSCALL_TCSETPGRP.
Definition: radkernel.h:243
@ RAD_SYSCALL_CONNECT
RAD_SYSCALL_CONNECT.
Definition: radkernel.h:201
@ RAD_SYSCALL_SOCKET
RAD_SYSCALL_SOCKET.
Definition: radkernel.h:199
@ RAD_SYSCALL_SENDTO
RAD_SYSCALL_SENDTO.
Definition: radkernel.h:204
@ RAD_SYSCALL_GETPGID
RAD_SYSCALL_GETPGID.
Definition: radkernel.h:238
@ RAD_SYSCALL_DUP2
RAD_SYSCALL_DUP2.
Definition: radkernel.h:191
@ RAD_SYSCALL_KILL
RAD_SYSCALL_KILL.
Definition: radkernel.h:234
@ RAD_SYSCALL_ISATTY
RAD_SYSCALL_ISATTY.
Definition: radkernel.h:198
@ RAD_SYSCALL_RECVFROM
RAD_SYSCALL_RECVFROM.
Definition: radkernel.h:205
@ RAD_SYSCALL_GETSOCKOPT
RAD_SYSCALL_GETSOCKOPT.
Definition: radkernel.h:208
@ RAD_SYSCALL_NANOSLEEP
RAD_SYSCALL_NANOSLEEP.
Definition: radkernel.h:183
@ RAD_SYSCALL_SETGID
RAD_SYSCALL_SETGID.
Definition: radkernel.h:228
@ RAD_SYSCALL_ACCESS
RAD_SYSCALL_ACCESS.
Definition: radkernel.h:197
@ RAD_SYSCALL_STAT
RAD_SYSCALL_STAT.
Definition: radkernel.h:180
@ RAD_SYSCALL_GETTIMEOFDAY
RAD_SYSCALL_GETTIMEOFDAY.
Definition: radkernel.h:182
@ RAD_SYSCALL_REMOVE
RAD_SYSCALL_REMOVE.
Definition: radkernel.h:216
@ RAD_SYSCALL_POLL
RAD_SYSCALL_POLL.
Definition: radkernel.h:213
@ RAD_SYSCALL_GETEUID
RAD_SYSCALL_GETEUID.
Definition: radkernel.h:224
@ RAD_SYSCALL_SETTIMEOFDAY
RAD_SYSCALL_SETTIMEOFDAY.
Definition: radkernel.h:214
@ RAD_SYSCALL_UTIME
RAD_SYSCALL_UTIME.
Definition: radkernel.h:237
@ RAD_SYSCALL_SETUID
RAD_SYSCALL_SETUID.
Definition: radkernel.h:227
@ RAD_SYSCALL_MMAP
RAD_SYSCALL_MMAP.
Definition: radkernel.h:209
@ RAD_SYSCALL_ACCEPT
RAD_SYSCALL_ACCEPT.
Definition: radkernel.h:203
@ RAD_SYSCALL_SETSOCKOPT
RAD_SYSCALL_SETSOCKOPT.
Definition: radkernel.h:207
@ RAD_SYSCALL_SETSID
RAD_SYSCALL_SETSID.
Definition: radkernel.h:241
@ RAD_SYSCALL_BIND
RAD_SYSCALL_BIND.
Definition: radkernel.h:200
@ RAD_SYSCALL_RMDIR
RAD_SYSCALL_RMDIR.
Definition: radkernel.h:218
@ RAD_SYSCALL_FORK
RAD_SYSCALL_FORK.
Definition: radkernel.h:185
@ RAD_SYSCALL_EXIT
RAD_SYSCALL_EXIT.
Definition: radkernel.h:184
@ RAD_SYSCALL_FTRUNCATE
RAD_SYSCALL_FTRUNCATE.
Definition: radkernel.h:236
@ RAD_SYSCALL_READ
RAD_SYSCALL_READ.
Definition: radkernel.h:174
@ RAD_SYSCALL_MKDIR
RAD_SYSCALL_MKDIR.
Definition: radkernel.h:217
@ RAD_SYSCALL_SETPGID
RAD_SYSCALL_SETPGID.
Definition: radkernel.h:239
@ RAD_SYSCALL_CHDIR
RAD_SYSCALL_CHDIR.
Definition: radkernel.h:192
@ RAD_SYSCALL_GETPPID
RAD_SYSCALL_GETPPID.
Definition: radkernel.h:189
@ RAD_SYSCALL_SYMLINK
RAD_SYSCALL_SYMLINK.
Definition: radkernel.h:231
@ RAD_SYSCALL_FSYNC
RAD_SYSCALL_FSYNC.
Definition: radkernel.h:233
rad_status_t rad_service_unregister(const char *name)
Public RADPx-OS kernel API entry point.
rad_status_t rad_device_register(const char *name, rad_device_type_t type, const rad_device_ops_t *ops)
Public RADPx-OS kernel API entry point.
rad_status_t rad_vfs_remove(const char *path)
Public RADPx-OS kernel API entry point.
rad_status_t rad_tty_set_output_callback(rad_tty_t tty, rad_tty_output_t output, void *context)
Public RADPx-OS kernel API entry point.
rad_status_t rad_terminal_poll_tty(rad_tty_t tty)
Public RADPx-OS kernel API entry point.
rad_status_t rad_service_poll_all(void)
Public RADPx-OS kernel API entry point.
enum rad_dma_transfer_type rad_dma_transfer_type_t
Public enumeration for rad_dma_transfer_type.
rad_status_t rad_vfs_chdir(const char *path)
Public RADPx-OS kernel API entry point.
rad_tty_mode_flags
Public enumeration for rad_tty_mode_flags.
Definition: radkernel.h:426
@ RAD_TTY_MODE_CANONICAL
RAD_TTY_MODE_CANONICAL.
Definition: radkernel.h:427
@ RAD_TTY_MODE_CRLF
RAD_TTY_MODE_CRLF.
Definition: radkernel.h:429
@ RAD_TTY_MODE_ECHO
RAD_TTY_MODE_ECHO.
Definition: radkernel.h:428
void(* rad_tty_output_t)(const void *data, size_t size, void *context)
Public callback typedef used by the RADPx-OS API.
Definition: radkernel.h:1340
rad_status_t rad_mutex_lock(rad_mutex_t mutex)
Public RADPx-OS kernel API entry point.
int32_t rad_process_execve(const char *path, const char *const argv[])
Public RADPx-OS kernel API entry point.
rad_status_t rad_device_ioctl(rad_device_t device, uint32_t request, void *argument)
Public RADPx-OS kernel API entry point.
rad_status_t rad_spi_driver_register(const rad_spi_driver_t *driver)
Public RADPx-OS kernel API entry point.
rad_status_t rad_net_open(const char *name, rad_device_t *device)
Public RADPx-OS kernel API entry point.
enum rad_usb_device_class rad_usb_device_class_t
Public enumeration for rad_usb_device_class.
struct rad_dma_transfer rad_dma_transfer_t
Public data structure for rad_dma_transfer.
#define RAD_TREE_MAX_VALUE
Public constant or ioctl helper.
Definition: radkernel.h:101
void rad_program_unload(rad_program_t program)
Public RADPx-OS kernel API entry point.
struct rad_i2c_device_info rad_i2c_device_info_t
Public data structure for rad_i2c_device_info.
size_t rad_irq_resolve_tree(rad_tree_node_t node, rad_irq_resource_t *resources, size_t capacity)
Public RADPx-OS kernel API entry point.
struct rad_framebuffer_info rad_framebuffer_info_t
Public data structure for rad_framebuffer_info.
rad_status_t rad_pty_write_slave(rad_pty_t pty, const void *buffer, size_t size, size_t *bytes_written)
Public RADPx-OS kernel API entry point.
rad_status_t rad_input_device_register(const char *name, const rad_device_ops_t *ops)
Public RADPx-OS kernel API entry point.
#define RAD_DISPLAY_CONNECTOR_MAX
Public constant or ioctl helper.
Definition: radkernel.h:115
struct rad_overlay_info rad_overlay_info_t
Public data structure for rad_overlay_info.
int32_t rad_fd_stat(const char *path, rad_vfs_stat_t *stat)
Public RADPx-OS kernel API entry point.
int rad_kernel_is_initialized(void)
Public RADPx-OS kernel API entry point.
rad_status_t rad_vfs_readlink(const char *path, char *buffer, size_t size)
Public RADPx-OS kernel API entry point.
intptr_t rad_fd_write(int32_t fd, const void *buffer, size_t size)
Public RADPx-OS kernel API entry point.
uint32_t rad_scheduler_online_core_mask(void)
Public RADPx-OS kernel API entry point.
rad_gid_t rad_process_getgid(void)
Public RADPx-OS kernel API entry point.
rad_status_t rad_i2c_bind_tree(void)
Public RADPx-OS kernel API entry point.
rad_status_t rad_vfs_rmdir(const char *path)
Public RADPx-OS kernel API entry point.
#define RAD_TREE_MAX_PATH
Public constant or ioctl helper.
Definition: radkernel.h:100
#define RAD_MODULE_NAME_MAX
Public constant or ioctl helper.
Definition: radkernel.h:106
rad_dma_transfer_type
Public enumeration for rad_dma_transfer_type.
Definition: radkernel.h:399
@ RAD_DMA_MEMORY_TO_DEVICE
RAD_DMA_MEMORY_TO_DEVICE.
Definition: radkernel.h:401
@ RAD_DMA_MEMORY_TO_MEMORY
RAD_DMA_MEMORY_TO_MEMORY.
Definition: radkernel.h:400
@ RAD_DMA_DEVICE_TO_MEMORY
RAD_DMA_DEVICE_TO_MEMORY.
Definition: radkernel.h:402
rad_status_t rad_terminal_poll_attached(void)
Public RADPx-OS kernel API entry point.
size_t rad_driver_list(rad_driver_info_t *drivers, size_t capacity)
Public RADPx-OS kernel API entry point.
int32_t rad_process_parent_pid(void)
Public RADPx-OS kernel API entry point.
rad_status_t(* rad_terminal_handler_t)(int argc, const char **argv, rad_terminal_write_t write, void *write_context, void *command_context)
Public callback typedef used by the RADPx-OS API.
Definition: radkernel.h:1338
rad_status_t rad_wait_queue_wait(rad_wait_queue_t queue, uint32_t timeout_ms)
Public RADPx-OS kernel API entry point.
rad_status_t rad_overlay_load_memory(const void *data, size_t size)
Public RADPx-OS kernel API entry point.
uint32_t rad_gid_t
POSIX-style group identifier.
Definition: radkernel.h:286
rad_status_t rad_block_device_register(const char *name, const rad_device_ops_t *ops)
Public RADPx-OS kernel API entry point.
int32_t rad_process_getpgid(int32_t pid)
Public RADPx-OS kernel API entry point.
enum rad_tcp_state rad_tcp_state_t
Public enumeration for rad_tcp_state.
#define RAD_TREE_MAX_PROPERTY_NAME
Public constant or ioctl helper.
Definition: radkernel.h:99
rad_status_t rad_i2c_driver_unregister(const char *name)
Public RADPx-OS kernel API entry point.
void rad_scheduler_set_preemption_enabled(int enabled)
Public RADPx-OS kernel API entry point.
rad_status_t rad_irq_disable(uint32_t irq)
Public RADPx-OS kernel API entry point.
struct rad_boot_handoff rad_boot_handoff_t
Public data structure for rad_boot_handoff.
int32_t rad_process_setpgid(int32_t pid, int32_t pgid)
Public RADPx-OS kernel API entry point.
rad_status_t rad_kernel_poll(void)
Public RADPx-OS kernel API entry point.
struct rad_i2c_driver rad_i2c_driver_t
Public data structure for rad_i2c_driver.
rad_input_event_type
Public enumeration for rad_input_event_type.
Definition: radkernel.h:328
@ RAD_INPUT_EVENT_POINTER_SCROLL
RAD_INPUT_EVENT_POINTER_SCROLL.
Definition: radkernel.h:333
@ RAD_INPUT_EVENT_POINTER_BUTTON
RAD_INPUT_EVENT_POINTER_BUTTON.
Definition: radkernel.h:332
@ RAD_INPUT_EVENT_POINTER_MOTION
RAD_INPUT_EVENT_POINTER_MOTION.
Definition: radkernel.h:331
@ RAD_INPUT_EVENT_NONE
RAD_INPUT_EVENT_NONE.
Definition: radkernel.h:329
@ RAD_INPUT_EVENT_KEY
RAD_INPUT_EVENT_KEY.
Definition: radkernel.h:330
rad_status_t rad_framebuffer_get_display_info(rad_framebuffer_t framebuffer, rad_framebuffer_display_info_t *info)
Public RADPx-OS kernel API entry point.
enum rad_tree_property_type rad_tree_property_type_t
Public enumeration for rad_tree_property_type.
size_t rad_dma_list_channels(rad_dma_channel_info_t *channels, size_t capacity)
Public RADPx-OS kernel API entry point.
int32_t rad_fd_dup2(int32_t old_fd, int32_t new_fd)
Public RADPx-OS kernel API entry point.
enum rad_input_key rad_input_key_t
Public enumeration for rad_input_key.
#define RAD_SERVICE_NAME_MAX
Public constant or ioctl helper.
Definition: radkernel.h:108
struct rad_task_config rad_task_config_t
Public data structure for rad_task_config.
intptr_t rad_socket_send(int32_t fd, const void *buffer, size_t size, uint32_t flags)
Public RADPx-OS kernel API entry point.
void rad_device_close(rad_device_t device)
Public RADPx-OS kernel API entry point.
rad_status_t rad_service_configure(const char *name, const rad_service_config_t *config)
Public RADPx-OS kernel API entry point.
struct rad_task_handle * rad_task_t
Opaque handle type rad_task_t backed by rad_task_handle.
Definition: radkernel.h:1347
struct rad_irq_resource rad_irq_resource_t
Public data structure for rad_irq_resource.
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)
Public RADPx-OS kernel API entry point.
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)
Public RADPx-OS kernel API entry point.
#define RAD_TTY_NCCS
Number of POSIX-shaped terminal control character slots.
Definition: radkernel.h:1378
rad_status_t rad_event_wait(rad_event_t event, uint32_t timeout_ms)
Public RADPx-OS kernel API entry point.
enum rad_irq_trigger rad_irq_trigger_t
Public enumeration for rad_irq_trigger.
rad_status_t rad_net_ntp_status(rad_ntp_status_t *status)
Public RADPx-OS kernel API entry point.
int32_t rad_socket_get_info(int32_t fd, rad_socket_info_t *info)
Public RADPx-OS kernel API entry point.
int32_t rad_socket_accept(int32_t fd, rad_sockaddr_in_t *address, size_t *address_length)
Public RADPx-OS kernel API entry point.
int32_t rad_socket_listen(int32_t fd, int backlog)
Public RADPx-OS kernel API entry point.
struct rad_usb_host_info rad_usb_host_info_t
Public data structure for rad_usb_host_info.
rad_status_t rad_framebuffer_set_primary(const char *name)
Public RADPx-OS kernel API entry point.
rad_status_t rad_framebuffer_blank(rad_framebuffer_t framebuffer, int blanked)
Public RADPx-OS kernel API entry point.
int32_t rad_process_setsid(void)
Public RADPx-OS kernel API entry point.
int32_t rad_fd_fcntl(int32_t fd, uint32_t command, uintptr_t argument)
Public RADPx-OS kernel API entry point.
rad_status_t rad_tty_get_window_size(rad_tty_t tty, rad_tty_window_size_t *size)
Public RADPx-OS kernel API entry point.
rad_status_t rad_vfs_getcwd(char *buffer, size_t size)
Public RADPx-OS kernel API entry point.
rad_status_t rad_irq_enable(uint32_t irq)
Public RADPx-OS kernel API entry point.
void rad_tty_close(rad_tty_t tty)
Public RADPx-OS kernel API entry point.
rad_device_type
Public enumeration for rad_device_type.
Definition: radkernel.h:297
@ RAD_DEVICE_PTY
RAD_DEVICE_PTY.
Definition: radkernel.h:305
@ RAD_DEVICE_FRAMEBUFFER
RAD_DEVICE_FRAMEBUFFER.
Definition: radkernel.h:303
@ RAD_DEVICE_BLOCK
RAD_DEVICE_BLOCK.
Definition: radkernel.h:307
@ RAD_DEVICE_SPI
RAD_DEVICE_SPI.
Definition: radkernel.h:300
@ RAD_DEVICE_USB
RAD_DEVICE_USB.
Definition: radkernel.h:310
@ RAD_DEVICE_AUDIO
RAD_DEVICE_AUDIO.
Definition: radkernel.h:301
@ RAD_DEVICE_TTY
RAD_DEVICE_TTY.
Definition: radkernel.h:304
@ RAD_DEVICE_NETWORK
RAD_DEVICE_NETWORK.
Definition: radkernel.h:308
@ RAD_DEVICE_INPUT
RAD_DEVICE_INPUT.
Definition: radkernel.h:306
@ RAD_DEVICE_I2C
RAD_DEVICE_I2C.
Definition: radkernel.h:299
@ RAD_DEVICE_SERIAL
RAD_DEVICE_SERIAL.
Definition: radkernel.h:302
@ RAD_DEVICE_COMPOSITOR
RAD_DEVICE_COMPOSITOR.
Definition: radkernel.h:309
@ RAD_DEVICE_GENERIC
RAD_DEVICE_GENERIC.
Definition: radkernel.h:298
int32_t rad_socket_connect(int32_t fd, const rad_sockaddr_in_t *address, size_t address_length)
Public RADPx-OS kernel API entry point.
int32_t rad_socket_setsockopt(int32_t fd, int level, int option, const void *value, size_t value_length)
Public RADPx-OS kernel API entry point.
void rad_kernel_request_shutdown(void)
Public RADPx-OS kernel API entry point.
rad_status_t rad_dma_submit(rad_dma_channel_t channel, const rad_dma_transfer_t *transfer)
Public RADPx-OS kernel API entry point.
rad_status
Public enumeration for rad_status.
Definition: radkernel.h:142
@ RAD_STATUS_NOT_INITIALIZED
RAD_STATUS_NOT_INITIALIZED.
Definition: radkernel.h:151
@ RAD_STATUS_ERROR
RAD_STATUS_ERROR.
Definition: radkernel.h:144
@ RAD_STATUS_NO_MEMORY
RAD_STATUS_NO_MEMORY.
Definition: radkernel.h:147
@ RAD_STATUS_NOT_SUPPORTED
RAD_STATUS_NOT_SUPPORTED.
Definition: radkernel.h:149
@ RAD_STATUS_NOT_FOUND
RAD_STATUS_NOT_FOUND.
Definition: radkernel.h:146
@ RAD_STATUS_ALREADY_EXISTS
RAD_STATUS_ALREADY_EXISTS.
Definition: radkernel.h:150
@ RAD_STATUS_INVALID_ARGUMENT
RAD_STATUS_INVALID_ARGUMENT.
Definition: radkernel.h:145
@ RAD_STATUS_TIMEOUT
RAD_STATUS_TIMEOUT.
Definition: radkernel.h:148
@ RAD_STATUS_OK
RAD_STATUS_OK.
Definition: radkernel.h:143
uint64_t rad_time_micros(void)
Public RADPx-OS kernel API entry point.
size_t rad_log_read(rad_log_entry_t *entries, size_t capacity, uint64_t after_sequence)
Public RADPx-OS kernel API entry point.
uint64_t rad_time_millis(void)
Public RADPx-OS kernel API entry point.
int32_t rad_process_tcgetpgrp(int32_t fd)
Public RADPx-OS kernel API entry point.
rad_status_t rad_event_signal(rad_event_t event)
Public RADPx-OS kernel API entry point.
const char * rad_kernel_version_string(void)
Return the kernel version string.
void rad_pty_close(rad_pty_t pty)
Public RADPx-OS kernel API entry point.
rad_usb_controller_type
Public enumeration for rad_usb_controller_type.
Definition: radkernel.h:314
@ RAD_USB_CONTROLLER_UNKNOWN
RAD_USB_CONTROLLER_UNKNOWN.
Definition: radkernel.h:315
@ RAD_USB_CONTROLLER_DWC_OTG
RAD_USB_CONTROLLER_DWC_OTG.
Definition: radkernel.h:316
void rad_framebuffer_close(rad_framebuffer_t framebuffer)
Public RADPx-OS kernel API entry point.
rad_status_t rad_tty_write(rad_tty_t tty, const void *buffer, size_t size, size_t *bytes_written)
Public RADPx-OS kernel API entry point.
rad_tcp_state
Public enumeration for rad_tcp_state.
Definition: radkernel.h:773
@ RAD_TCP_FIN_WAIT
RAD_TCP_FIN_WAIT.
Definition: radkernel.h:779
@ RAD_TCP_SYN_RECEIVED
RAD_TCP_SYN_RECEIVED.
Definition: radkernel.h:777
@ RAD_TCP_LAST_ACK
RAD_TCP_LAST_ACK.
Definition: radkernel.h:781
@ RAD_TCP_ESTABLISHED
RAD_TCP_ESTABLISHED.
Definition: radkernel.h:778
@ RAD_TCP_SYN_SENT
RAD_TCP_SYN_SENT.
Definition: radkernel.h:776
@ RAD_TCP_LISTEN
RAD_TCP_LISTEN.
Definition: radkernel.h:775
@ RAD_TCP_TIME_WAIT
RAD_TCP_TIME_WAIT.
Definition: radkernel.h:782
@ RAD_TCP_CLOSED
RAD_TCP_CLOSED.
Definition: radkernel.h:774
@ RAD_TCP_CLOSE_WAIT
RAD_TCP_CLOSE_WAIT.
Definition: radkernel.h:780
struct rad_dma_channel_handle * rad_dma_channel_t
Opaque handle type rad_dma_channel_t backed by rad_dma_channel_handle.
Definition: radkernel.h:1082
rad_status_t rad_input_open(const char *name, rad_device_t *device)
Public RADPx-OS kernel API entry point.
void rad_timer_tick(uint64_t elapsed_micros)
Public RADPx-OS kernel API entry point.
size_t rad_terminal_command_count(void)
Public RADPx-OS kernel API entry point.
struct rad_dirent_user rad_dirent_user_t
Public data structure for userspace directory enumeration.
size_t rad_framebuffer_list(rad_framebuffer_info_t *framebuffers, char names[][64], size_t capacity)
Public RADPx-OS kernel API entry point.
struct rad_driver_info rad_driver_info_t
Public data structure for rad_driver_info.
rad_status_t rad_terminal_attach_device(const char *device_name)
Public RADPx-OS kernel API entry point.
enum rad_posix_syscall rad_posix_syscall_t
Public enumeration for rad_posix_syscall.
#define RAD_BOOT_MAX_ARGS
Public constant or ioctl helper.
Definition: radkernel.h:85
struct rad_module_descriptor rad_module_descriptor_t
Public data structure for rad_module_descriptor.
rad_status_t rad_vfs_stat(const char *path, rad_vfs_stat_t *stat)
Public RADPx-OS kernel API entry point.
rad_status_t rad_realtime_set_micros(uint64_t unix_micros)
Public RADPx-OS kernel API entry point.
size_t rad_spi_device_irq_count(const rad_spi_device_t *device)
Public RADPx-OS kernel API entry point.
struct rad_timer_source_config rad_timer_source_config_t
Public data structure for rad_timer_source_config.
rad_status_t rad_vfs_chmod(const char *path, uint32_t mode)
Public RADPx-OS kernel API entry point.
rad_spi_transfer_mode
Public enumeration for rad_spi_transfer_mode.
Definition: radkernel.h:392
@ RAD_SPI_TRANSFER_MODE_PIO
RAD_SPI_TRANSFER_MODE_PIO.
Definition: radkernel.h:394
@ RAD_SPI_TRANSFER_MODE_DMA
RAD_SPI_TRANSFER_MODE_DMA.
Definition: radkernel.h:395
@ RAD_SPI_TRANSFER_MODE_AUTO
RAD_SPI_TRANSFER_MODE_AUTO.
Definition: radkernel.h:393
void(* rad_terminal_write_t)(const char *text, void *context)
Public callback typedef used by the RADPx-OS API.
Definition: radkernel.h:1336
rad_status_t rad_overlay_apply_boot(void)
Public RADPx-OS kernel API entry point.
rad_irq_trigger
Public enumeration for rad_irq_trigger.
Definition: radkernel.h:433
@ RAD_IRQ_TRIGGER_NONE
RAD_IRQ_TRIGGER_NONE.
Definition: radkernel.h:434
@ RAD_IRQ_TRIGGER_EDGE_FALLING
RAD_IRQ_TRIGGER_EDGE_FALLING.
Definition: radkernel.h:436
@ RAD_IRQ_TRIGGER_LEVEL_LOW
RAD_IRQ_TRIGGER_LEVEL_LOW.
Definition: radkernel.h:438
@ RAD_IRQ_TRIGGER_LEVEL_HIGH
RAD_IRQ_TRIGGER_LEVEL_HIGH.
Definition: radkernel.h:437
@ RAD_IRQ_TRIGGER_EDGE_RISING
RAD_IRQ_TRIGGER_EDGE_RISING.
Definition: radkernel.h:435
rad_status_t rad_i2c_transfer_device(rad_device_t device, const rad_i2c_transfer_t *transfer)
Public RADPx-OS kernel API entry point.
rad_status_t rad_wait_queue_wake_one(rad_wait_queue_t queue)
Public RADPx-OS kernel API entry point.
rad_status_t rad_input_device_register_queue(const char *name, rad_input_queue_t queue)
Public RADPx-OS kernel API entry point.
rad_kernel_print_level
Kernel-only printk severity.
Definition: radkernel.h:165
@ RKERN_ERR
Kernel error.
Definition: radkernel.h:169
@ RKERN_WARN
Recoverable kernel warning.
Definition: radkernel.h:168
@ RKERN_DBG
Debug-only kernel detail.
Definition: radkernel.h:166
@ RKERN_STAT
Normal kernel status.
Definition: radkernel.h:167
void rad_cpu_halt_forever(void)
Public RADPx-OS kernel API entry point.
struct rad_block_request rad_block_request_t
Public data structure for rad_block_request.
int rad_cpu_interrupts_enabled(void)
Public RADPx-OS kernel API entry point.
rad_status_t rad_event_reset(rad_event_t event)
Public RADPx-OS kernel API entry point.
int32_t rad_fd_ioctl(int32_t fd, uint32_t request, void *argument)
Public RADPx-OS kernel API entry point.
enum rad_input_pointer_button_flags rad_input_pointer_button_flags_t
Public enumeration for rad_input_pointer_button_flags.
struct rad_process_arch_ops rad_process_arch_ops_t
Public data structure for rad_process_arch_ops.
rad_status_t rad_process_arch_register(const rad_process_arch_ops_t *ops)
Public RADPx-OS kernel API entry point.
rad_status_t rad_framebuffer_get_vsync_counter(rad_framebuffer_t framebuffer, uint64_t *counter)
Public RADPx-OS kernel API entry point.
enum rad_sd_mode rad_sd_mode_t
Public enumeration for rad_sd_mode.
enum rad_input_modifier_flags rad_input_modifier_flags_t
Public enumeration for rad_input_modifier_flags.
rad_status_t rad_irq_register(uint32_t irq, const char *name, rad_irq_handler_t handler, void *context)
Public RADPx-OS kernel API entry point.
int rad_vprintk(const char *format, va_list args)
Public RADPx-OS kernel API entry point.
void rad_event_destroy(rad_event_t event)
Public RADPx-OS kernel API entry point.
rad_status_t rad_spi_transfer(rad_spi_bus_t bus, const rad_spi_transfer_t *transfer)
Public RADPx-OS kernel API entry point.
intptr_t rad_socket_sendto(int32_t fd, const void *buffer, size_t size, uint32_t flags, const rad_sockaddr_in_t *address, size_t address_length)
Public RADPx-OS kernel API entry point.
rad_status_t rad_spi_device_open(uint32_t bus_id, uint8_t cs, rad_spi_device_t **device)
Public RADPx-OS kernel API entry point.
void rad_vfs_closedir(rad_dir_t dir)
Public RADPx-OS kernel API entry point.
struct rad_tty_termios rad_tty_termios_t
POSIX-shaped terminal attributes stored by RADPx-OS TTY devices.
void * rad_memory_alloc(size_t size)
Allocate kernel-managed memory.
rad_status_t rad_pty_read_master(rad_pty_t pty, void *buffer, size_t size, size_t *bytes_read)
Public RADPx-OS kernel API entry point.
void rad_task_yield(void)
Public RADPx-OS kernel API entry point.
rad_status_t rad_audio_configure(rad_device_t device, const rad_audio_format_t *format)
Public RADPx-OS kernel API entry point.
int32_t rad_socket_shutdown(int32_t fd, int how)
Public RADPx-OS kernel API entry point.
uint64_t rad_task_current_id(void)
Public RADPx-OS kernel API entry point.
void rad_scheduler_yield_from_irq(void)
Public RADPx-OS kernel API entry point.
rad_status_t rad_block_read(rad_device_t device, uint64_t sector, uint32_t sector_count, void *buffer)
Public RADPx-OS kernel API entry point.
size_t rad_spi_list_devices(rad_spi_device_info_t *devices, size_t capacity)
Public RADPx-OS kernel API entry point.
size_t rad_tree_list(rad_tree_node_info_t *nodes, size_t capacity)
Public RADPx-OS kernel API entry point.
rad_status_t rad_irq_unregister(uint32_t irq)
Public RADPx-OS kernel API entry point.
size_t rad_process_list(rad_process_info_t *processes, size_t capacity)
Public RADPx-OS kernel API entry point.
struct rad_timer_source_ops rad_timer_source_ops_t
Public data structure for rad_timer_source_ops.
rad_status_t rad_program_spawn(rad_program_t program, int argc, const char **argv, rad_task_t *task)
Public RADPx-OS kernel API entry point.
rad_status_t rad_process_mark_exec(int32_t pid, const char *path)
Public RADPx-OS kernel API entry point.
struct rad_posix_timeval rad_posix_timeval_t
Public data structure for rad_posix_timeval.
void rad_wait_queue_destroy(rad_wait_queue_t queue)
Public RADPx-OS kernel API entry point.
size_t rad_task_list(rad_task_info_t *tasks, size_t capacity)
Public RADPx-OS kernel API entry point.
size_t rad_tree_get_property_u32_array(rad_tree_node_t node, const char *name, uint32_t *values, size_t capacity)
Public RADPx-OS kernel API entry point.
rad_process_state
Public enumeration for rad_process_state.
Definition: radkernel.h:248
@ RAD_PROCESS_WAITING
RAD_PROCESS_WAITING.
Definition: radkernel.h:250
@ RAD_PROCESS_RUNNING
RAD_PROCESS_RUNNING.
Definition: radkernel.h:249
@ RAD_PROCESS_ZOMBIE
RAD_PROCESS_ZOMBIE.
Definition: radkernel.h:251
struct rad_display_mode rad_display_mode_t
Public data structure for rad_display_mode.
struct rad_core_info rad_core_info_t
Public data structure for rad_core_info.
rad_status_t rad_device_unregister(const char *name)
Public RADPx-OS kernel API entry point.
struct rad_dma_controller_config rad_dma_controller_config_t
Public data structure for rad_dma_controller_config.
size_t rad_overlay_list(rad_overlay_info_t *overlays, size_t capacity)
Public RADPx-OS kernel API entry point.
rad_status_t rad_block_write(rad_device_t device, uint64_t sector, uint32_t sector_count, const void *buffer)
Public RADPx-OS kernel API entry point.
rad_status_t rad_work_submit(const char *name, rad_work_handler_t handler, void *context)
Public RADPx-OS kernel API entry point.
struct rad_compositor_ipc_damage rad_compositor_ipc_damage_t
Public data structure for rad_compositor_ipc_damage.
rad_status_t rad_framebuffer_clear(rad_framebuffer_t framebuffer, uint32_t color)
Public RADPx-OS kernel API entry point.
struct rad_memory_stats rad_memory_stats_t
Public data structure for rad_memory_stats.
void(* rad_task_entry_t)(void *context)
Public callback typedef used by the RADPx-OS API.
Definition: radkernel.h:1334
rad_status_t rad_vfs_write(rad_file_t file, const void *buffer, size_t size, size_t *bytes_written)
Public RADPx-OS kernel API entry point.
enum rad_module_state rad_module_state_t
Public enumeration for rad_module_state.
struct rad_boot_info rad_boot_info_t
Public data structure for rad_boot_info.
struct rad_i2c_device rad_i2c_device_t
Forward-declared public type rad_i2c_device_t backed by rad_i2c_device.
Definition: radkernel.h:1035
rad_status_t rad_net_configure(const rad_net_stack_config_t *config)
Public RADPx-OS kernel API entry point.
uint64_t rad_realtime_micros(void)
Public RADPx-OS kernel API entry point.
struct rad_credentials rad_credentials_t
Public data structure for process credentials.
rad_status_t rad_timer_schedule_oneshot(uint64_t delay_micros)
Public RADPx-OS kernel API entry point.
#define RAD_FRAMEBUFFER_MAX_MODES
Public constant or ioctl helper.
Definition: radkernel.h:116
rad_status_t rad_framebuffer_get_info(rad_framebuffer_t framebuffer, rad_framebuffer_info_t *info)
Public RADPx-OS kernel API entry point.
rad_status_t rad_tty_flush(rad_tty_t tty, uint32_t queues)
Public RADPx-OS kernel API entry point.
struct rad_vfs_backend_ops rad_vfs_backend_ops_t
Public data structure for rad_vfs_backend_ops.
#define RAD_BOOT_MAX_STRING
Public constant or ioctl helper.
Definition: radkernel.h:87
void * rad_shm_kernel_pointer(int32_t fd)
Public RADPx-OS kernel API entry point.
enum rad_dma_request_id rad_dma_request_id_t
Public enumeration for rad_dma_request_id.
int rad_kernel_is_shutdown_requested(void)
Public RADPx-OS kernel API entry point.
#define RAD_BOOT_MAX_MEMORY_REGIONS
Public constant or ioctl helper.
Definition: radkernel.h:86
rad_status_t rad_framebuffer_open(const char *name, rad_framebuffer_t *framebuffer)
Public RADPx-OS kernel API entry point.
rad_status_t rad_serial_configure(rad_device_t device, const rad_serial_config_t *config)
Public RADPx-OS kernel API entry point.
rad_status_t rad_irq_resource_disable(const rad_irq_resource_t *resource)
Public RADPx-OS kernel API entry point.
rad_status_t rad_irq_resource_register_handler(const rad_irq_resource_t *resource, const char *name, rad_irq_handler_t handler, void *context)
Public RADPx-OS kernel API entry point.
struct rad_tty_handle * rad_tty_t
Opaque handle type rad_tty_t backed by rad_tty_handle.
Definition: radkernel.h:1365
rad_status_t rad_i2c_device_get_irq(const rad_i2c_device_t *device, size_t index, rad_irq_resource_t *resource)
Public RADPx-OS kernel API entry point.
int32_t rad_shm_unlink(const char *name)
Public RADPx-OS kernel API entry point.
rad_status_t rad_pty_read_slave(rad_pty_t pty, void *buffer, size_t size, size_t *bytes_read)
Public RADPx-OS kernel API entry point.
rad_status_t rad_input_queue_create(const char *name, size_t capacity, rad_input_queue_t *queue)
Public RADPx-OS kernel API entry point.
int32_t rad_socket_bind(int32_t fd, const rad_sockaddr_in_t *address, size_t address_length)
Public RADPx-OS kernel API entry point.
rad_status_t rad_timer_cancel_oneshot(void)
Public RADPx-OS kernel API entry point.
struct rad_program_handle * rad_program_t
Opaque handle type rad_program_t backed by rad_program_handle.
Definition: radkernel.h:1363
rad_status_t rad_tty_set_mode(rad_tty_t tty, uint32_t mode)
Public RADPx-OS kernel API entry point.
rad_status_t rad_dma_wait(rad_dma_channel_t channel, uint32_t timeout_ms)
Public RADPx-OS kernel API entry point.
rad_status_t rad_i2c_bus_open(uint32_t bus_id, rad_i2c_bus_t *bus)
Public RADPx-OS kernel API entry point.
const char * rad_kernel_backend_name(void)
Return the active backend name string.
rad_status_t rad_irq_domain_unregister(const char *tree_path)
Public RADPx-OS kernel API entry point.
struct rad_task_info rad_task_info_t
Public data structure for rad_task_info.
rad_status_t rad_tty_get_termios(rad_tty_t tty, rad_tty_termios_t *termios)
Public RADPx-OS kernel API entry point.
rad_status_t rad_vfs_unmount(const char *mount_point)
Public RADPx-OS kernel API entry point.
rad_scheduler_mode
Public enumeration for rad_scheduler_mode.
Definition: radkernel.h:593
@ RAD_SCHEDULER_COOPERATIVE
RAD_SCHEDULER_COOPERATIVE.
Definition: radkernel.h:594
@ RAD_SCHEDULER_PREEMPTIVE
RAD_SCHEDULER_PREEMPTIVE.
Definition: radkernel.h:595
int rad_early_printk(const char *format,...)
Public RADPx-OS kernel API entry point.
struct rad_sd_config rad_sd_config_t
Public data structure for rad_sd_config.
struct rad_framebuffer_present rad_framebuffer_present_t
Public data structure for rad_framebuffer_present.
int32_t rad_fd_open(const char *path, uint32_t flags)
Public RADPx-OS kernel API entry point.
struct rad_perf_counter_info rad_perf_counter_info_t
Public data structure for rad_perf_counter_info.
void rad_process_set_current_pid(int32_t pid)
Public RADPx-OS kernel API entry point.
rad_service_state
Public enumeration for rad_service_state.
Definition: radkernel.h:1162
@ RAD_SERVICE_REGISTERED
RAD_SERVICE_REGISTERED.
Definition: radkernel.h:1163
@ RAD_SERVICE_RUNNING
RAD_SERVICE_RUNNING.
Definition: radkernel.h:1165
@ RAD_SERVICE_CONFIGURED
RAD_SERVICE_CONFIGURED.
Definition: radkernel.h:1164
@ RAD_SERVICE_FAILED
RAD_SERVICE_FAILED.
Definition: radkernel.h:1166
@ RAD_SERVICE_STOPPED
RAD_SERVICE_STOPPED.
Definition: radkernel.h:1167
struct rad_input_queue_handle * rad_input_queue_t
Opaque handle type rad_input_queue_t backed by rad_input_queue_handle.
Definition: radkernel.h:1355
struct rad_service_info rad_service_info_t
Public data structure for rad_service_info.
rad_status_t rad_dma_controller_unregister(const char *name)
Public RADPx-OS kernel API entry point.
#define RAD_SHM_NAME_MAX
Public constant or ioctl helper.
Definition: radkernel.h:117
rad_input_key
Public enumeration for rad_input_key.
Definition: radkernel.h:337
@ RAD_INPUT_KEY_UNKNOWN
RAD_INPUT_KEY_UNKNOWN.
Definition: radkernel.h:338
@ RAD_INPUT_KEY_UP
RAD_INPUT_KEY_UP.
Definition: radkernel.h:343
@ RAD_INPUT_KEY_RIGHT_SHIFT
RAD_INPUT_KEY_RIGHT_SHIFT.
Definition: radkernel.h:354
@ RAD_INPUT_KEY_LEFT_ALT
RAD_INPUT_KEY_LEFT_ALT.
Definition: radkernel.h:357
@ RAD_INPUT_KEY_RIGHT_CTRL
RAD_INPUT_KEY_RIGHT_CTRL.
Definition: radkernel.h:356
@ RAD_INPUT_KEY_END
RAD_INPUT_KEY_END.
Definition: radkernel.h:348
@ RAD_INPUT_KEY_TAB
RAD_INPUT_KEY_TAB.
Definition: radkernel.h:342
@ RAD_INPUT_KEY_PAGE_UP
RAD_INPUT_KEY_PAGE_UP.
Definition: radkernel.h:349
@ RAD_INPUT_KEY_BACKSPACE
RAD_INPUT_KEY_BACKSPACE.
Definition: radkernel.h:341
@ RAD_INPUT_KEY_LEFT_CTRL
RAD_INPUT_KEY_LEFT_CTRL.
Definition: radkernel.h:355
@ RAD_INPUT_KEY_RIGHT_ALT
RAD_INPUT_KEY_RIGHT_ALT.
Definition: radkernel.h:358
@ RAD_INPUT_KEY_ENTER
RAD_INPUT_KEY_ENTER.
Definition: radkernel.h:340
@ RAD_INPUT_KEY_INSERT
RAD_INPUT_KEY_INSERT.
Definition: radkernel.h:351
@ RAD_INPUT_KEY_DELETE
RAD_INPUT_KEY_DELETE.
Definition: radkernel.h:352
@ RAD_INPUT_KEY_ESCAPE
RAD_INPUT_KEY_ESCAPE.
Definition: radkernel.h:339
@ RAD_INPUT_KEY_RIGHT
RAD_INPUT_KEY_RIGHT.
Definition: radkernel.h:346
@ RAD_INPUT_KEY_DOWN
RAD_INPUT_KEY_DOWN.
Definition: radkernel.h:344
@ RAD_INPUT_KEY_LEFT
RAD_INPUT_KEY_LEFT.
Definition: radkernel.h:345
@ RAD_INPUT_KEY_HOME
RAD_INPUT_KEY_HOME.
Definition: radkernel.h:347
@ RAD_INPUT_KEY_PAGE_DOWN
RAD_INPUT_KEY_PAGE_DOWN.
Definition: radkernel.h:350
@ RAD_INPUT_KEY_LEFT_SHIFT
RAD_INPUT_KEY_LEFT_SHIFT.
Definition: radkernel.h:353
@ RAD_INPUT_KEY_CAPS_LOCK
RAD_INPUT_KEY_CAPS_LOCK.
Definition: radkernel.h:359
void(* rad_irq_handler_t)(uint32_t irq, void *context)
Public callback typedef used by the RADPx-OS API.
Definition: radkernel.h:1342
#define RAD_IRQ_NAME_MAX
Public constant or ioctl helper.
Definition: radkernel.h:111
int rad_early_vprintk(const char *format, va_list args)
Public RADPx-OS kernel API entry point.
rad_status_t rad_process_clone_fds(int32_t parent_pid, int32_t child_pid)
Public RADPx-OS kernel API entry point.
int32_t rad_process_tcsetpgrp(int32_t fd, int32_t pgid)
Public RADPx-OS kernel API entry point.
rad_status_t rad_tree_get_property_string(rad_tree_node_t node, const char *name, char *buffer, size_t size)
Public RADPx-OS kernel API entry point.
rad_gid_t rad_process_getegid(void)
Public RADPx-OS kernel API entry point.
rad_status_t rad_wait_queue_wake_all(rad_wait_queue_t queue)
Public RADPx-OS kernel API entry point.
enum rad_log_level rad_log_level_t
Public enumeration for rad_log_level.
struct rad_scheduler_info rad_scheduler_info_t
Public data structure for rad_scheduler_info.
intptr_t rad_net_receive(rad_device_t device, void *data, size_t length)
Public RADPx-OS kernel API entry point.
struct rad_event_handle * rad_event_t
Opaque handle type rad_event_t backed by rad_event_handle.
Definition: radkernel.h:1351
rad_status_t rad_irq_domain_find(const char *tree_path, rad_irq_domain_t *domain)
Public RADPx-OS kernel API entry point.
rad_status_t rad_i2c_controller_unregister(uint32_t bus_id)
Public RADPx-OS kernel API entry point.
void rad_task_sleep_us(uint32_t microseconds)
Public RADPx-OS kernel API entry point.
int32_t rad_process_fork_from_arch_frame(void *trap_frame)
Public RADPx-OS kernel API entry point.
rad_vfs_open_flags
Public enumeration for rad_vfs_open_flags.
Definition: radkernel.h:269
@ RAD_VFS_READ
RAD_VFS_READ.
Definition: radkernel.h:270
@ RAD_VFS_WRITE
RAD_VFS_WRITE.
Definition: radkernel.h:271
@ RAD_VFS_DIRECTORY
RAD_VFS_DIRECTORY.
Definition: radkernel.h:275
@ RAD_VFS_CREATE
RAD_VFS_CREATE.
Definition: radkernel.h:272
@ RAD_VFS_APPEND
RAD_VFS_APPEND.
Definition: radkernel.h:274
@ RAD_VFS_TRUNCATE
RAD_VFS_TRUNCATE.
Definition: radkernel.h:273
rad_status_t rad_net_device_register(const char *name, const rad_device_ops_t *ops)
Public RADPx-OS kernel API entry point.
rad_status_t rad_task_create_config(rad_task_t *task, const rad_task_config_t *config, rad_task_entry_t entry, void *context)
Public RADPx-OS kernel API entry point.
rad_status_t rad_tty_read(rad_tty_t tty, void *buffer, size_t size, size_t *bytes_read)
Public RADPx-OS kernel API entry point.
rad_status_t rad_terminal_execute(const char *line, rad_terminal_write_t write, void *write_context)
Public RADPx-OS kernel API entry point.
void rad_mutex_destroy(rad_mutex_t mutex)
Public RADPx-OS kernel API entry point.
rad_display_output_type
Public enumeration for rad_display_output_type.
Definition: radkernel.h:416
@ RAD_DISPLAY_OUTPUT_BCM283X_MAILBOX
RAD_DISPLAY_OUTPUT_BCM283X_MAILBOX.
Definition: radkernel.h:422
@ RAD_DISPLAY_OUTPUT_GRUB
RAD_DISPLAY_OUTPUT_GRUB.
Definition: radkernel.h:419
@ RAD_DISPLAY_OUTPUT_SPI_PANEL
RAD_DISPLAY_OUTPUT_SPI_PANEL.
Definition: radkernel.h:421
@ RAD_DISPLAY_OUTPUT_MEMORY
RAD_DISPLAY_OUTPUT_MEMORY.
Definition: radkernel.h:417
@ RAD_DISPLAY_OUTPUT_CIRCLE
RAD_DISPLAY_OUTPUT_CIRCLE.
Definition: radkernel.h:418
@ RAD_DISPLAY_OUTPUT_RP2350_HSTX
RAD_DISPLAY_OUTPUT_RP2350_HSTX.
Definition: radkernel.h:420
struct rad_kernel_config rad_kernel_config_t
Public data structure for rad_kernel_config.
rad_status_t rad_net_link_info(rad_device_t device, rad_net_link_info_t *info)
Public RADPx-OS kernel API entry point.
enum rad_status rad_status_t
Public enumeration for rad_status.
rad_status_t rad_work_poll(size_t budget, size_t *ran)
Public RADPx-OS kernel API entry point.
rad_status_t rad_device_open(const char *name, rad_device_t *device)
Public RADPx-OS kernel API entry point.
rad_status_t rad_service_configure_tree(rad_tree_node_t node)
Public RADPx-OS kernel API entry point.
int32_t rad_socket_getsockopt(int32_t fd, int level, int option, void *value, size_t *value_length)
Public RADPx-OS kernel API entry point.
void rad_vfs_close(rad_file_t file)
Public RADPx-OS kernel API entry point.
enum rad_input_event_type rad_input_event_type_t
Public enumeration for rad_input_event_type.
uint64_t rad_perf_now_cycles(void)
Public RADPx-OS kernel API entry point.
rad_status_t rad_program_load(const char *path, rad_program_t *program)
Public RADPx-OS kernel API entry point.
rad_status_t rad_device_read(rad_device_t device, void *buffer, size_t size, size_t *bytes_read)
Public RADPx-OS kernel API entry point.
rad_status_t rad_framebuffer_set_mode(rad_framebuffer_t framebuffer, uint32_t mode_index)
Public RADPx-OS kernel API entry point.
#define RAD_DRIVER_NAME_MAX
Public constant or ioctl helper.
Definition: radkernel.h:104
struct rad_i2c_controller_config rad_i2c_controller_config_t
Public data structure for rad_i2c_controller_config.
struct rad_socket_info rad_socket_info_t
Public data structure for rad_socket_info.
struct rad_i2c_bus_handle * rad_i2c_bus_t
Opaque handle type rad_i2c_bus_t backed by rad_i2c_bus_handle.
Definition: radkernel.h:1033
enum rad_tty_mode_flags rad_tty_mode_flags_t
Public enumeration for rad_tty_mode_flags.
struct rad_spi_driver rad_spi_driver_t
Public data structure for rad_spi_driver.
enum rad_pixel_format rad_pixel_format_t
Public enumeration for rad_pixel_format.
rad_input_modifier_flags
Public enumeration for rad_input_modifier_flags.
Definition: radkernel.h:363
@ RAD_INPUT_MOD_CAPS_LOCK
RAD_INPUT_MOD_CAPS_LOCK.
Definition: radkernel.h:368
@ RAD_INPUT_MOD_META
RAD_INPUT_MOD_META.
Definition: radkernel.h:367
@ RAD_INPUT_MOD_CTRL
RAD_INPUT_MOD_CTRL.
Definition: radkernel.h:365
@ RAD_INPUT_MOD_ALT
RAD_INPUT_MOD_ALT.
Definition: radkernel.h:366
@ RAD_INPUT_MOD_SHIFT
RAD_INPUT_MOD_SHIFT.
Definition: radkernel.h:364
rad_status_t rad_tty_get_mode(rad_tty_t tty, uint32_t *mode)
Public RADPx-OS kernel API entry point.
size_t rad_perf_counter_list(rad_perf_counter_info_t *counters, size_t capacity)
Public RADPx-OS kernel API entry point.
rad_status_t rad_boot_info_get(rad_boot_info_t *boot_info)
Public RADPx-OS kernel API entry point.
struct rad_spi_controller_ops rad_spi_controller_ops_t
Public data structure for rad_spi_controller_ops.
struct rad_boot_memory_region rad_boot_memory_region_t
Public data structure for rad_boot_memory_region.
rad_status_t rad_vfs_mount_provider(const char *mount_point, const rad_vfs_backend_ops_t *ops)
Public RADPx-OS kernel API entry point.
struct rad_ntp_status rad_ntp_status_t
Public data structure for rad_ntp_status.
struct rad_service_descriptor rad_service_descriptor_t
Public data structure for rad_service_descriptor.
rad_uid_t rad_process_getuid(void)
Public RADPx-OS kernel API entry point.
void rad_kernel_shutdown(void)
Public RADPx-OS kernel API entry point.
int32_t rad_fd_poll(rad_pollfd_t *fds, size_t count, int32_t timeout_ms)
Public RADPx-OS kernel API entry point.
size_t rad_timer_list(rad_timer_source_info_t *timers, size_t capacity)
Public RADPx-OS kernel API entry point.
const char * rad_boot_arg_get(const char *key)
Return a boot argument value by key, or nullptr when absent.
struct rad_vfs_dirent rad_vfs_dirent_t
Public data structure for rad_vfs_dirent.
struct rad_framebuffer_display_info rad_framebuffer_display_info_t
Public data structure for rad_framebuffer_display_info.
enum rad_scheduler_mode rad_scheduler_mode_t
Public enumeration for rad_scheduler_mode.
size_t rad_i2c_list_devices(rad_i2c_device_info_t *devices, size_t capacity)
Public RADPx-OS kernel API entry point.
rad_status_t rad_i2c_device_open(uint32_t bus_id, uint8_t address, rad_i2c_device_t **device)
Public RADPx-OS kernel API entry point.
struct rad_ntp_query rad_ntp_query_t
Public data structure for rad_ntp_query.
struct rad_device_ops rad_device_ops_t
Public data structure for rad_device_ops.
struct rad_tty_window_size rad_tty_window_size_t
Public data structure for rad_tty_window_size.
struct rad_service_config rad_service_config_t
Public data structure for rad_service_config.
rad_status_t rad_spi_bus_open(uint32_t bus_id, rad_spi_bus_t *bus)
Public RADPx-OS kernel API entry point.
struct rad_program_info rad_program_info_t
Public data structure for rad_program_info.
struct rad_irq_domain_config rad_irq_domain_config_t
Public data structure for rad_irq_domain_config.
rad_status_t rad_service_stop(const char *name)
Public RADPx-OS kernel API entry point.
struct rad_spi_transfer rad_spi_transfer_t
Public data structure for rad_spi_transfer.
void rad_memory_free(void *pointer)
Public RADPx-OS kernel API entry point.
rad_status_t rad_task_join(rad_task_t task)
Public RADPx-OS kernel API entry point.
Public data structure for rad_block_info.
Definition: radkernel.h:658
uint32_t size
Public structure field.
Definition: radkernel.h:659
uint32_t reserved
Public structure field.
Definition: radkernel.h:663
uint32_t sector_size
Public structure field.
Definition: radkernel.h:660
uint32_t flags
Public structure field.
Definition: radkernel.h:662
uint64_t sector_count
Public structure field.
Definition: radkernel.h:661
Public data structure for rad_block_request.
Definition: radkernel.h:667
uint64_t sector
Public structure field.
Definition: radkernel.h:669
uint32_t size
Public structure field.
Definition: radkernel.h:668
uint32_t sector_count
Public structure field.
Definition: radkernel.h:670
void * buffer
Public structure field.
Definition: radkernel.h:671
Public data structure for rad_boot_arg.
Definition: radkernel.h:462
char key[RAD_BOOT_MAX_STRING]
Public structure field.
Definition: radkernel.h:463
char value[RAD_BOOT_MAX_STRING]
Public structure field.
Definition: radkernel.h:464
Public data structure for rad_boot_handoff.
Definition: radkernel.h:494
uintptr_t local_interrupt_base
Public structure field.
Definition: radkernel.h:509
uint32_t flags
Public structure field.
Definition: radkernel.h:498
uintptr_t initrd_pointer
Public structure field.
Definition: radkernel.h:506
uint32_t entry_el
Public structure field.
Definition: radkernel.h:513
uintptr_t kernel_entry
Public structure field.
Definition: radkernel.h:502
uint32_t parked_core_mask
Public structure field.
Definition: radkernel.h:515
uint32_t version
Public structure field.
Definition: radkernel.h:496
uintptr_t arm_memory_base
Public structure field.
Definition: radkernel.h:510
uintptr_t kernel_image_base
Public structure field.
Definition: radkernel.h:500
uintptr_t mailbox_base
Public structure field.
Definition: radkernel.h:508
uint32_t core_count
Public structure field.
Definition: radkernel.h:514
uint32_t board_id
Public structure field.
Definition: radkernel.h:512
uint32_t magic
Public structure field.
Definition: radkernel.h:495
uintptr_t kernel_image_size
Public structure field.
Definition: radkernel.h:501
uintptr_t fdt_pointer
Public structure field.
Definition: radkernel.h:505
rad_boot_info_t boot
Public structure field.
Definition: radkernel.h:499
uint32_t size
Public structure field.
Definition: radkernel.h:497
uintptr_t peripheral_base
Public structure field.
Definition: radkernel.h:507
uintptr_t stack_size
Public structure field.
Definition: radkernel.h:504
char payload_name[RAD_BOOT_MAX_STRING]
Public structure field.
Definition: radkernel.h:516
uintptr_t stack_base
Public structure field.
Definition: radkernel.h:503
uintptr_t arm_memory_size
Public structure field.
Definition: radkernel.h:511
Public data structure for rad_boot_info.
Definition: radkernel.h:477
char console_device[RAD_BOOT_MAX_STRING]
Public structure field.
Definition: radkernel.h:482
uintptr_t fdt_pointer
Public structure field.
Definition: radkernel.h:484
char sd_mode[RAD_BOOT_MAX_STRING]
Public structure field.
Definition: radkernel.h:483
uint32_t version
Public structure field.
Definition: radkernel.h:479
char board[RAD_BOOT_MAX_STRING]
Public structure field.
Definition: radkernel.h:481
uint32_t arg_count
Public structure field.
Definition: radkernel.h:489
rad_boot_arg_t args[RAD_BOOT_MAX_ARGS]
Public structure field.
Definition: radkernel.h:490
uint32_t boot_flags
Public structure field.
Definition: radkernel.h:486
uint32_t memory_region_count
Public structure field.
Definition: radkernel.h:487
rad_boot_memory_region_t memory_regions[RAD_BOOT_MAX_MEMORY_REGIONS]
Public structure field.
Definition: radkernel.h:488
char backend[RAD_BOOT_MAX_STRING]
Public structure field.
Definition: radkernel.h:480
uint32_t size
Public structure field.
Definition: radkernel.h:478
uintptr_t initrd_pointer
Public structure field.
Definition: radkernel.h:485
Public data structure for rad_boot_memory_region.
Definition: radkernel.h:468
uint64_t size
Public structure field.
Definition: radkernel.h:470
uint32_t flags
Public structure field.
Definition: radkernel.h:472
uint32_t type
Public structure field.
Definition: radkernel.h:471
uint64_t base
Public structure field.
Definition: radkernel.h:469
char name[RAD_BOOT_MAX_STRING]
Public structure field.
Definition: radkernel.h:473
Public data structure for rad_compositor_ipc_damage.
Definition: radkernel.h:1013
uint32_t size
Public structure field.
Definition: radkernel.h:1014
int32_t height
Public structure field.
Definition: radkernel.h:1019
uint32_t flags
Public structure field.
Definition: radkernel.h:1020
int32_t y
Public structure field.
Definition: radkernel.h:1017
int32_t x
Public structure field.
Definition: radkernel.h:1016
int32_t width
Public structure field.
Definition: radkernel.h:1018
uint32_t surface_id
Public structure field.
Definition: radkernel.h:1015
Public data structure for rad_compositor_ipc_surface.
Definition: radkernel.h:999
int32_t x
Public structure field.
Definition: radkernel.h:1005
uint32_t width
Public structure field.
Definition: radkernel.h:1002
uint32_t stride_pixels
Public structure field.
Definition: radkernel.h:1004
uint32_t height
Public structure field.
Definition: radkernel.h:1003
uint32_t size
Public structure field.
Definition: radkernel.h:1000
int32_t y
Public structure field.
Definition: radkernel.h:1006
int32_t z
Public structure field.
Definition: radkernel.h:1007
int32_t shm_fd
Public structure field.
Definition: radkernel.h:1001
uint32_t surface_id
Public structure field.
Definition: radkernel.h:1009
uint32_t flags
Public structure field.
Definition: radkernel.h:1008
Public data structure for rad_core_info.
Definition: radkernel.h:585
uint32_t worker_running_mask
Public structure field.
Definition: radkernel.h:589
uint32_t detected_cores
Public structure field.
Definition: radkernel.h:586
uint32_t service_core
Public structure field.
Definition: radkernel.h:588
uint32_t worker_cores
Public structure field.
Definition: radkernel.h:587
Public data structure for process credentials.
Definition: radkernel.h:289
rad_gid_t gid
Real group ID.
Definition: radkernel.h:292
rad_uid_t euid
Effective user ID.
Definition: radkernel.h:291
rad_gid_t egid
Effective group ID.
Definition: radkernel.h:293
rad_uid_t uid
Real user ID.
Definition: radkernel.h:290
Public data structure for rad_device_ops.
Definition: radkernel.h:889
rad_status_t(* write)(void *context, const void *buffer, size_t size, size_t *bytes_written)
Public callback slot.
Definition: radkernel.h:892
void * context
Public structure field.
Definition: radkernel.h:890
rad_status_t(* read)(void *context, void *buffer, size_t size, size_t *bytes_read)
Public callback slot.
Definition: radkernel.h:891
rad_status_t(* ioctl)(void *context, uint32_t request, void *argument)
Public callback slot.
Definition: radkernel.h:893
Public data structure for userspace directory enumeration.
Definition: radkernel.h:839
uint8_t type
Public structure field: 1=file, 2=directory.
Definition: radkernel.h:840
char name[256]
Public structure field.
Definition: radkernel.h:841
Public data structure for rad_display_mode.
Definition: radkernel.h:942
rad_pixel_format_t pixel_format
Public structure field.
Definition: radkernel.h:947
uint32_t width
Public structure field.
Definition: radkernel.h:943
uint32_t refresh_hz
Public structure field.
Definition: radkernel.h:945
uint32_t stride_bytes
Public structure field.
Definition: radkernel.h:946
uint32_t height
Public structure field.
Definition: radkernel.h:944
Public data structure for rad_dma_backend_ops.
Definition: radkernel.h:1096
rad_status_t(* request)(void *context, rad_dma_request_id_t request_id, void **backend_channel)
Public callback slot.
Definition: radkernel.h:1098
rad_status_t(* submit)(void *context, void *backend_channel, const rad_dma_transfer_t *transfer)
Public callback slot.
Definition: radkernel.h:1100
void * context
Public structure field.
Definition: radkernel.h:1097
rad_status_t(* cancel)(void *context, void *backend_channel)
Public callback slot.
Definition: radkernel.h:1102
rad_status_t(* wait)(void *context, void *backend_channel, uint32_t timeout_ms)
Public callback slot.
Definition: radkernel.h:1101
void(* release)(void *context, void *backend_channel)
Public callback slot.
Definition: radkernel.h:1099
Public data structure for rad_dma_channel_info.
Definition: radkernel.h:1282
char controller[RAD_DRIVER_NAME_MAX]
Public structure field.
Definition: radkernel.h:1283
uint32_t index
Public structure field.
Definition: radkernel.h:1284
int active
Public structure field.
Definition: radkernel.h:1287
uint32_t request_id
Public structure field.
Definition: radkernel.h:1285
int allocated
Public structure field.
Definition: radkernel.h:1286
Public data structure for rad_dma_controller_config.
Definition: radkernel.h:1106
const char * name
Public structure field.
Definition: radkernel.h:1108
uint32_t size
Public structure field.
Definition: radkernel.h:1107
uint32_t channel_count
Public structure field.
Definition: radkernel.h:1109
Public data structure for rad_dma_transfer.
Definition: radkernel.h:1085
rad_dma_transfer_type_t type
Public structure field.
Definition: radkernel.h:1087
const void * source
Public structure field.
Definition: radkernel.h:1089
uint32_t flags
Public structure field.
Definition: radkernel.h:1092
uintptr_t peripheral_address
Public structure field.
Definition: radkernel.h:1091
rad_dma_request_id_t request_id
Public structure field.
Definition: radkernel.h:1088
void * destination
Public structure field.
Definition: radkernel.h:1090
uint32_t size
Public structure field.
Definition: radkernel.h:1086
Public data structure for rad_driver_info.
Definition: radkernel.h:1223
char name[RAD_DRIVER_NAME_MAX]
Public structure field.
Definition: radkernel.h:1224
char role[RAD_DRIVER_NAME_MAX]
Public structure field.
Definition: radkernel.h:1227
char compatible[RAD_COMPATIBLE_MAX]
Public structure field.
Definition: radkernel.h:1226
char bus[RAD_DRIVER_NAME_MAX]
Public structure field.
Definition: radkernel.h:1225
Public data structure for rad_framebuffer_config.
Definition: radkernel.h:964
rad_framebuffer_info_t info
Public structure field.
Definition: radkernel.h:967
uint32_t size
Public structure field.
Definition: radkernel.h:965
uint32_t mode_count
Public structure field.
Definition: radkernel.h:970
const char * name
Public structure field.
Definition: radkernel.h:966
uint32_t preferred_mode
Public structure field.
Definition: radkernel.h:971
rad_display_output_type_t output_type
Public structure field.
Definition: radkernel.h:968
const char * connector
Public structure field.
Definition: radkernel.h:969
int primary
Public structure field.
Definition: radkernel.h:973
rad_display_mode_t modes[RAD_FRAMEBUFFER_MAX_MODES]
Public structure field.
Definition: radkernel.h:972
Public data structure for rad_framebuffer_display_info.
Definition: radkernel.h:977
char name[RAD_FRAMEBUFFER_NAME_MAX]
Public structure field.
Definition: radkernel.h:979
rad_display_output_type_t output_type
Public structure field.
Definition: radkernel.h:981
uint32_t mode_count
Public structure field.
Definition: radkernel.h:983
uint32_t size
Public structure field.
Definition: radkernel.h:978
rad_display_mode_t modes[RAD_FRAMEBUFFER_MAX_MODES]
Public structure field.
Definition: radkernel.h:986
uint32_t current_mode
Public structure field.
Definition: radkernel.h:985
char connector[RAD_DISPLAY_CONNECTOR_MAX]
Public structure field.
Definition: radkernel.h:982
uint32_t preferred_mode
Public structure field.
Definition: radkernel.h:984
int primary
Public structure field.
Definition: radkernel.h:987
rad_framebuffer_info_t framebuffer
Public structure field.
Definition: radkernel.h:980
Public data structure for rad_framebuffer_info.
Definition: radkernel.h:924
uint32_t width
Public structure field.
Definition: radkernel.h:926
uint32_t stride_bytes
Public structure field.
Definition: radkernel.h:928
rad_pixel_format_t pixel_format
Public structure field.
Definition: radkernel.h:929
void * pixels
Public structure field.
Definition: radkernel.h:930
uint32_t height
Public structure field.
Definition: radkernel.h:927
uint32_t size
Public structure field.
Definition: radkernel.h:925
Public data structure for rad_framebuffer_ops.
Definition: radkernel.h:951
rad_status_t(* blank)(void *context, int blanked)
Public callback slot.
Definition: radkernel.h:956
rad_status_t(* flush)(void *context, const rad_framebuffer_rect_t *rect)
Public callback slot.
Definition: radkernel.h:953
rad_status_t(* set_mode)(void *context, const rad_display_mode_t *mode)
Public callback slot.
Definition: radkernel.h:955
uint64_t(* get_vsync_counter)(void *context)
Public callback slot.
Definition: radkernel.h:957
void * context
Public structure field.
Definition: radkernel.h:952
rad_status_t(* present)(void *context, const rad_framebuffer_present_t *present)
Public callback slot.
Definition: radkernel.h:954
Public data structure for rad_framebuffer_present.
Definition: radkernel.h:934
void * pixels
Public structure field.
Definition: radkernel.h:936
rad_framebuffer_rect_t rect
Public structure field.
Definition: radkernel.h:938
uint32_t stride_bytes
Public structure field.
Definition: radkernel.h:937
uint32_t size
Public structure field.
Definition: radkernel.h:935
Public data structure for rad_framebuffer_rect.
Definition: radkernel.h:916
uint32_t height
Public structure field.
Definition: radkernel.h:920
uint32_t width
Public structure field.
Definition: radkernel.h:919
uint32_t x
Public structure field.
Definition: radkernel.h:917
uint32_t y
Public structure field.
Definition: radkernel.h:918
Public data structure for rad_i2c_controller_config.
Definition: radkernel.h:1044
uint32_t clock_hz
Public structure field.
Definition: radkernel.h:1049
uint8_t sda_gpio
Public structure field.
Definition: radkernel.h:1050
const char * name
Public structure field.
Definition: radkernel.h:1047
uint32_t bus_id
Public structure field.
Definition: radkernel.h:1046
const char * tree_path
Public structure field.
Definition: radkernel.h:1048
uint8_t scl_gpio
Public structure field.
Definition: radkernel.h:1051
uint32_t size
Public structure field.
Definition: radkernel.h:1045
Public data structure for rad_i2c_controller_ops.
Definition: radkernel.h:1038
void * context
Public structure field.
Definition: radkernel.h:1039
rad_status_t(* transfer)(void *context, const rad_i2c_transfer_t *transfer)
Public callback slot.
Definition: radkernel.h:1040
Public data structure for rad_i2c_device_info.
Definition: radkernel.h:1254
char path[RAD_TREE_MAX_PATH]
Public structure field.
Definition: radkernel.h:1259
int bound
Public structure field.
Definition: radkernel.h:1262
rad_irq_resource_t irqs[RAD_IRQ_MAX_RESOURCES]
Public structure field.
Definition: radkernel.h:1258
char compatible[RAD_COMPATIBLE_MAX]
Public structure field.
Definition: radkernel.h:1260
uint8_t address
Public structure field.
Definition: radkernel.h:1256
uint32_t bus_id
Public structure field.
Definition: radkernel.h:1255
char driver[RAD_DRIVER_NAME_MAX]
Public structure field.
Definition: radkernel.h:1261
uint32_t irq_count
Public structure field.
Definition: radkernel.h:1257
Public data structure for rad_i2c_driver.
Definition: radkernel.h:1055
void(* remove)(void *context, rad_i2c_device_t *device)
Public callback slot.
Definition: radkernel.h:1061
void * context
Public structure field.
Definition: radkernel.h:1059
const char * name
Public structure field.
Definition: radkernel.h:1057
const char * compatible
Public structure field.
Definition: radkernel.h:1058
rad_status_t(* probe)(void *context, rad_i2c_device_t *device)
Public callback slot.
Definition: radkernel.h:1060
uint32_t size
Public structure field.
Definition: radkernel.h:1056
Public data structure for rad_i2c_transfer.
Definition: radkernel.h:1024
size_t read_size
Public structure field.
Definition: radkernel.h:1029
size_t write_size
Public structure field.
Definition: radkernel.h:1027
uint8_t * read_data
Public structure field.
Definition: radkernel.h:1028
const uint8_t * write_data
Public structure field.
Definition: radkernel.h:1026
uint8_t address
Public structure field.
Definition: radkernel.h:1025
Public data structure for rad_ipv4_address.
Definition: radkernel.h:690
uint8_t bytes[4]
Public structure field.
Definition: radkernel.h:691
Public data structure for rad_irq_domain_config.
Definition: radkernel.h:1234
const char * name
Public structure field.
Definition: radkernel.h:1236
uint32_t interrupt_base
Public structure field.
Definition: radkernel.h:1238
uint32_t size
Public structure field.
Definition: radkernel.h:1235
uint32_t line_count
Public structure field.
Definition: radkernel.h:1239
const char * tree_path
Public structure field.
Definition: radkernel.h:1237
uint32_t interrupt_cells
Public structure field.
Definition: radkernel.h:1240
Public data structure for rad_irq_info.
Definition: radkernel.h:1291
char name[RAD_IRQ_NAME_MAX]
Public structure field.
Definition: radkernel.h:1293
int registered
Public structure field.
Definition: radkernel.h:1294
int enabled
Public structure field.
Definition: radkernel.h:1295
uint64_t count
Public structure field.
Definition: radkernel.h:1296
uint32_t irq
Public structure field.
Definition: radkernel.h:1292
uint64_t unhandled_count
Public structure field.
Definition: radkernel.h:1297
Public data structure for rad_irq_resource.
Definition: radkernel.h:1244
char controller_path[RAD_TREE_MAX_PATH]
Public structure field.
Definition: radkernel.h:1250
rad_irq_trigger_t trigger
Public structure field.
Definition: radkernel.h:1248
char domain[RAD_IRQ_DOMAIN_NAME_MAX]
Public structure field.
Definition: radkernel.h:1249
uint32_t irq
Public structure field.
Definition: radkernel.h:1245
uint32_t flags
Public structure field.
Definition: radkernel.h:1247
uint32_t line
Public structure field.
Definition: radkernel.h:1246
Public data structure for rad_kernel_config.
Definition: radkernel.h:456
const char * backend_name
Public structure field.
Definition: radkernel.h:457
const void * boot_info
Public structure field.
Definition: radkernel.h:458
Public data structure for rad_log_entry.
Definition: radkernel.h:1396
rad_log_level_t level
Public structure field.
Definition: radkernel.h:1399
uint64_t time_millis
Public structure field.
Definition: radkernel.h:1398
uint64_t sequence
Public structure field.
Definition: radkernel.h:1397
char message[RAD_LOG_MESSAGE_MAX]
Public structure field.
Definition: radkernel.h:1401
char category[RAD_LOG_CATEGORY_MAX]
Public structure field.
Definition: radkernel.h:1400
Public data structure for rad_mac_address.
Definition: radkernel.h:685
uint8_t bytes[6]
Public structure field.
Definition: radkernel.h:686
Public data structure for rad_memory_stats.
Definition: radkernel.h:520
uint64_t bytes_live
Public structure field.
Definition: radkernel.h:525
uint64_t peak_bytes_live
Public structure field.
Definition: radkernel.h:526
uint64_t bytes_freed
Public structure field.
Definition: radkernel.h:524
uint64_t frees
Public structure field.
Definition: radkernel.h:522
uint64_t allocations
Public structure field.
Definition: radkernel.h:521
uint64_t bytes_allocated
Public structure field.
Definition: radkernel.h:523
Public data structure for rad_module_descriptor.
Definition: radkernel.h:1143
uint32_t size
Public structure field.
Definition: radkernel.h:1144
const char * compatible
Public structure field.
Definition: radkernel.h:1147
rad_status_t(* init)(void *context)
Public callback slot.
Definition: radkernel.h:1148
void(* exit)(void *context)
Public callback slot.
Definition: radkernel.h:1149
void * context
Public structure field.
Definition: radkernel.h:1150
const char * bus
Public structure field.
Definition: radkernel.h:1146
const char * name
Public structure field.
Definition: radkernel.h:1145
Public data structure for rad_module_info.
Definition: radkernel.h:1171
int32_t last_status
Public structure field.
Definition: radkernel.h:1176
char name[RAD_MODULE_NAME_MAX]
Public structure field.
Definition: radkernel.h:1172
char bus[RAD_DRIVER_NAME_MAX]
Public structure field.
Definition: radkernel.h:1173
char compatible[RAD_COMPATIBLE_MAX]
Public structure field.
Definition: radkernel.h:1174
rad_module_state_t state
Public structure field.
Definition: radkernel.h:1175
Public data structure for rad_net_link_info.
Definition: radkernel.h:702
uint32_t mtu
Public structure field.
Definition: radkernel.h:705
uint32_t size
Public structure field.
Definition: radkernel.h:703
uint64_t rx_packets
Public structure field.
Definition: radkernel.h:708
rad_mac_address_t mac
Public structure field.
Definition: radkernel.h:704
int link_up
Public structure field.
Definition: radkernel.h:706
uint64_t tx_packets
Public structure field.
Definition: radkernel.h:707
Public data structure for rad_net_packet.
Definition: radkernel.h:695
size_t length
Public structure field.
Definition: radkernel.h:698
void * data
Public structure field.
Definition: radkernel.h:697
uint32_t size
Public structure field.
Definition: radkernel.h:696
Public data structure for rad_net_stack_config.
Definition: radkernel.h:733
rad_ipv4_address_t ipv4
Runtime IPv4 address assigned to the stack.
Definition: radkernel.h:735
uint16_t flags
Reserved for future DHCP/link policy flags.
Definition: radkernel.h:740
rad_ipv4_address_t gateway
Runtime default gateway.
Definition: radkernel.h:737
rad_ipv4_address_t ntp_server
Runtime default NTP/SNTP server address.
Definition: radkernel.h:738
uint32_t size
Public structure field.
Definition: radkernel.h:734
uint16_t ntp_port
Runtime default NTP/SNTP UDP port.
Definition: radkernel.h:739
rad_ipv4_address_t netmask
Runtime IPv4 netmask.
Definition: radkernel.h:736
Public data structure for rad_net_stack_info.
Definition: radkernel.h:712
uint16_t arp_entries
Number of valid ARP cache entries.
Definition: radkernel.h:719
uint64_t arp_rx
ARP frames received by the stack.
Definition: radkernel.h:722
rad_ipv4_address_t netmask
Static IPv4 netmask.
Definition: radkernel.h:715
uint64_t ethernet_tx
Ethernet frames transmitted by the stack.
Definition: radkernel.h:721
uint64_t icmp_tx
ICMP packets transmitted by the stack.
Definition: radkernel.h:729
uint16_t ntp_port
Default NTP/SNTP UDP port.
Definition: radkernel.h:718
uint64_t udp_tx
UDP datagrams transmitted by the stack.
Definition: radkernel.h:727
rad_ipv4_address_t ipv4
Static IPv4 address assigned to the stack.
Definition: radkernel.h:714
uint64_t ipv4_rx
IPv4 packets accepted by the stack.
Definition: radkernel.h:724
uint64_t icmp_rx
ICMP packets accepted by the stack.
Definition: radkernel.h:728
uint64_t udp_rx
UDP datagrams accepted by the stack.
Definition: radkernel.h:726
uint64_t ethernet_rx
Ethernet frames received by the stack.
Definition: radkernel.h:720
uint64_t arp_tx
ARP frames transmitted by the stack.
Definition: radkernel.h:723
uint32_t size
Public structure field.
Definition: radkernel.h:713
rad_ipv4_address_t gateway
Static default gateway.
Definition: radkernel.h:716
uint64_t ipv4_tx
IPv4 packets transmitted by the stack.
Definition: radkernel.h:725
rad_ipv4_address_t ntp_server
Default NTP/SNTP server address.
Definition: radkernel.h:717
Public data structure for rad_ntp_query.
Definition: radkernel.h:756
rad_ipv4_address_t server
NTP/SNTP server to query; zero uses default.
Definition: radkernel.h:758
uint32_t size
Public structure field.
Definition: radkernel.h:757
rad_ntp_status_t status
Result status after the query.
Definition: radkernel.h:761
uint16_t port
UDP port to query; zero uses default.
Definition: radkernel.h:759
uint16_t timeout_ms
Timeout in milliseconds; zero uses a small default.
Definition: radkernel.h:760
Public data structure for rad_ntp_status.
Definition: radkernel.h:744
uint16_t port
Last queried UDP port.
Definition: radkernel.h:747
uint16_t valid
Nonzero when last_unix_seconds contains a valid sample.
Definition: radkernel.h:748
uint32_t size
Public structure field.
Definition: radkernel.h:745
int64_t offset_millis
Sample offset against the current kernel clock.
Definition: radkernel.h:750
uint64_t queries
Number of NTP/SNTP requests sent.
Definition: radkernel.h:751
uint64_t last_unix_seconds
Last sampled Unix timestamp.
Definition: radkernel.h:749
rad_ipv4_address_t server
Last queried NTP/SNTP server.
Definition: radkernel.h:746
uint64_t responses
Number of valid NTP/SNTP responses received.
Definition: radkernel.h:752
Public data structure for rad_overlay_info.
Definition: radkernel.h:640
uint32_t node_count
Public structure field.
Definition: radkernel.h:643
char name[RAD_TREE_MAX_PROPERTY_NAME]
Public structure field.
Definition: radkernel.h:641
uint32_t property_count
Public structure field.
Definition: radkernel.h:644
char source[RAD_TREE_MAX_PATH]
Public structure field.
Definition: radkernel.h:642
Public data structure for rad_perf_counter_info.
Definition: radkernel.h:530
char name[RAD_PERF_NAME_MAX]
Public structure field.
Definition: radkernel.h:531
uint64_t value
Public structure field.
Definition: radkernel.h:532
POSIX-style poll descriptor used by RADPx-OS userland.
Definition: radkernel.h:805
int16_t revents
Returned RAD_POLL* event mask.
Definition: radkernel.h:808
int16_t events
Requested RAD_POLL* event mask.
Definition: radkernel.h:807
int32_t fd
File descriptor.
Definition: radkernel.h:806
Public data structure for rad_posix_timeval.
Definition: radkernel.h:799
int64_t tv_usec
Public structure field.
Definition: radkernel.h:801
int64_t tv_sec
Public structure field.
Definition: radkernel.h:800
Public data structure for rad_process_arch_ops.
Definition: radkernel.h:825
uint32_t size
Public structure field.
Definition: radkernel.h:826
int32_t(* fork_from_frame)(void *context, void *trap_frame)
Public callback slot.
Definition: radkernel.h:828
void(* process_reaped)(void *context, int32_t pid, int32_t status)
Public callback slot.
Definition: radkernel.h:829
void * context
Public structure field.
Definition: radkernel.h:827
Public data structure for rad_process_info.
Definition: radkernel.h:812
rad_credentials_t credentials
Process credentials.
Definition: radkernel.h:820
int32_t exit_code
Public structure field.
Definition: radkernel.h:818
int32_t exited
Public structure field.
Definition: radkernel.h:817
char path[128]
Public structure field.
Definition: radkernel.h:821
int32_t process_group_id
POSIX process group ID.
Definition: radkernel.h:815
rad_process_state_t state
Public structure field.
Definition: radkernel.h:819
int32_t pid
Public structure field.
Definition: radkernel.h:813
int32_t session_id
POSIX session ID.
Definition: radkernel.h:816
int32_t parent_pid
Public structure field.
Definition: radkernel.h:814
Public data structure for rad_program_info.
Definition: radkernel.h:879
rad_program_state_t state
Public structure field.
Definition: radkernel.h:883
uint64_t id
Public structure field.
Definition: radkernel.h:880
char path[128]
Public structure field.
Definition: radkernel.h:881
uint64_t task_id
Public structure field.
Definition: radkernel.h:884
int exit_code
Public structure field.
Definition: radkernel.h:885
char name[64]
Public structure field.
Definition: radkernel.h:882
Public data structure for rad_scheduler_info.
Definition: radkernel.h:599
uint32_t exited_threads
Public structure field.
Definition: radkernel.h:606
uint32_t blocked_threads
Public structure field.
Definition: radkernel.h:604
uint32_t online_core_mask
Public structure field.
Definition: radkernel.h:611
int preemption_enabled
Public structure field.
Definition: radkernel.h:613
uint32_t ready_threads
Public structure field.
Definition: radkernel.h:603
uint64_t context_switches
Public structure field.
Definition: radkernel.h:614
uint32_t sleeping_threads
Public structure field.
Definition: radkernel.h:605
rad_scheduler_mode_t mode
Public structure field.
Definition: radkernel.h:609
uint32_t running_threads
Public structure field.
Definition: radkernel.h:602
uint32_t worker_running_mask
Public structure field.
Definition: radkernel.h:601
char arch[32]
Public structure field.
Definition: radkernel.h:610
uint32_t detected_cores
Public structure field.
Definition: radkernel.h:600
uint64_t scheduler_ticks
Public structure field.
Definition: radkernel.h:615
uint32_t process_count
Public structure field.
Definition: radkernel.h:607
uint32_t current_core
Public structure field.
Definition: radkernel.h:612
int preemption_supported
Public structure field.
Definition: radkernel.h:608
Public data structure for rad_sd_config.
Definition: radkernel.h:1317
uint8_t rx_gpio
Public structure field.
Definition: radkernel.h:1324
const char * device_name
Public structure field.
Definition: radkernel.h:1319
uint8_t sck_gpio
Public structure field.
Definition: radkernel.h:1322
const char * mount_point
Public structure field.
Definition: radkernel.h:1320
uint8_t cs_gpio
Public structure field.
Definition: radkernel.h:1325
uint8_t sdio_clk_gpio
Public structure field.
Definition: radkernel.h:1327
uint8_t spi_instance
Public structure field.
Definition: radkernel.h:1321
rad_sd_mode_t mode
Public structure field.
Definition: radkernel.h:1318
uint8_t sdio_cmd_gpio
Public structure field.
Definition: radkernel.h:1328
uint8_t card_detect_gpio
Public structure field.
Definition: radkernel.h:1330
uint8_t sdio_dat0_gpio
Public structure field.
Definition: radkernel.h:1329
uint8_t tx_gpio
Public structure field.
Definition: radkernel.h:1323
uint8_t pio_instance
Public structure field.
Definition: radkernel.h:1326
Public data structure for rad_serial_config.
Definition: radkernel.h:1308
uint8_t stop_bits
Public structure field.
Definition: radkernel.h:1311
uint8_t parity
Public structure field.
Definition: radkernel.h:1312
uint8_t flow_control
Public structure field.
Definition: radkernel.h:1313
uint32_t baud_rate
Public structure field.
Definition: radkernel.h:1309
uint8_t data_bits
Public structure field.
Definition: radkernel.h:1310
Public data structure for rad_service_config.
Definition: radkernel.h:1180
const char * pointer
Public structure field.
Definition: radkernel.h:1186
const char * keyboard
Public structure field.
Definition: radkernel.h:1185
const char * display
Public structure field.
Definition: radkernel.h:1184
const char * backend
Public structure field.
Definition: radkernel.h:1183
int order
Public structure field.
Definition: radkernel.h:1189
int autostart
Public structure field.
Definition: radkernel.h:1188
const char * terminal
Public structure field.
Definition: radkernel.h:1187
const char * tree_path
Public structure field.
Definition: radkernel.h:1182
uint32_t size
Public structure field.
Definition: radkernel.h:1181
Public data structure for rad_service_descriptor.
Definition: radkernel.h:1193
uint32_t size
Public structure field.
Definition: radkernel.h:1194
rad_status_t(* start)(void *context, const rad_service_config_t *config)
Public callback slot.
Definition: radkernel.h:1199
const char * capability
Public structure field.
Definition: radkernel.h:1197
const char * name
Public structure field.
Definition: radkernel.h:1195
const char * compatible
Public structure field.
Definition: radkernel.h:1196
void * context
Public structure field.
Definition: radkernel.h:1202
rad_status_t(* poll)(void *context)
Public callback slot.
Definition: radkernel.h:1201
void(* stop)(void *context)
Public callback slot.
Definition: radkernel.h:1200
int default_order
Public structure field.
Definition: radkernel.h:1198
Public data structure for rad_service_info.
Definition: radkernel.h:1206
int order
Public structure field.
Definition: radkernel.h:1218
char terminal[RAD_TREE_MAX_VALUE]
Public structure field.
Definition: radkernel.h:1215
int32_t last_status
Public structure field.
Definition: radkernel.h:1219
rad_service_state_t state
Public structure field.
Definition: radkernel.h:1216
char tree_path[RAD_TREE_MAX_PATH]
Public structure field.
Definition: radkernel.h:1210
char backend[RAD_TREE_MAX_VALUE]
Public structure field.
Definition: radkernel.h:1211
char display[RAD_TREE_MAX_VALUE]
Public structure field.
Definition: radkernel.h:1212
char pointer[RAD_TREE_MAX_VALUE]
Public structure field.
Definition: radkernel.h:1214
char capability[RAD_SERVICE_CAPABILITY_MAX]
Public structure field.
Definition: radkernel.h:1209
char keyboard[RAD_TREE_MAX_VALUE]
Public structure field.
Definition: radkernel.h:1213
char name[RAD_SERVICE_NAME_MAX]
Public structure field.
Definition: radkernel.h:1207
char compatible[RAD_SERVICE_COMPATIBLE_MAX]
Public structure field.
Definition: radkernel.h:1208
int autostart
Public structure field.
Definition: radkernel.h:1217
Public data structure for rad_shm_info.
Definition: radkernel.h:991
size_t page_count
Public structure field.
Definition: radkernel.h:995
uint32_t size
Public structure field.
Definition: radkernel.h:992
size_t byte_size
Public structure field.
Definition: radkernel.h:994
char name[RAD_SHM_NAME_MAX]
Public structure field.
Definition: radkernel.h:993
Public data structure for rad_sockaddr_in.
Definition: radkernel.h:765
uint8_t zero[8]
Public structure field.
Definition: radkernel.h:769
rad_ipv4_address_t address
Public structure field.
Definition: radkernel.h:768
uint16_t family
Public structure field.
Definition: radkernel.h:766
uint16_t port
Public structure field.
Definition: radkernel.h:767
Public data structure for rad_socket_info.
Definition: radkernel.h:786
int type
Public structure field.
Definition: radkernel.h:789
int domain
Public structure field.
Definition: radkernel.h:788
uint16_t local_port
Public structure field.
Definition: radkernel.h:792
rad_tcp_state_t tcp_state
Public structure field.
Definition: radkernel.h:791
uint32_t size
Public structure field.
Definition: radkernel.h:787
rad_ipv4_address_t local_address
Public structure field.
Definition: radkernel.h:794
rad_ipv4_address_t remote_address
Public structure field.
Definition: radkernel.h:795
int protocol
Public structure field.
Definition: radkernel.h:790
uint16_t remote_port
Public structure field.
Definition: radkernel.h:793
Public data structure for rad_spi_controller_config.
Definition: radkernel.h:1120
uint8_t sck_gpio
Public structure field.
Definition: radkernel.h:1126
uint32_t clock_hz
Public structure field.
Definition: radkernel.h:1125
const char * tree_path
Public structure field.
Definition: radkernel.h:1124
const char * name
Public structure field.
Definition: radkernel.h:1123
uint8_t cs_gpio
Public structure field.
Definition: radkernel.h:1129
uint32_t size
Public structure field.
Definition: radkernel.h:1121
uint8_t tx_gpio
Public structure field.
Definition: radkernel.h:1127
uint8_t rx_gpio
Public structure field.
Definition: radkernel.h:1128
uint32_t bus_id
Public structure field.
Definition: radkernel.h:1122
Public data structure for rad_spi_controller_ops.
Definition: radkernel.h:1113
void * context
Public structure field.
Definition: radkernel.h:1114
rad_status_t(* transfer_dma)(void *context, const rad_spi_device_t *device, const rad_spi_transfer_t *transfer, rad_dma_channel_t tx_channel, rad_dma_channel_t rx_channel)
Public callback slot.
Definition: radkernel.h:1116
rad_status_t(* transfer)(void *context, const rad_spi_device_t *device, const rad_spi_transfer_t *transfer)
Public callback slot.
Definition: radkernel.h:1115
Public data structure for rad_spi_device_info.
Definition: radkernel.h:1266
char path[RAD_TREE_MAX_PATH]
Public structure field.
Definition: radkernel.h:1275
uint32_t irq_count
Public structure field.
Definition: radkernel.h:1273
uint32_t bus_id
Public structure field.
Definition: radkernel.h:1267
rad_irq_resource_t irqs[RAD_IRQ_MAX_RESOURCES]
Public structure field.
Definition: radkernel.h:1274
int bound
Public structure field.
Definition: radkernel.h:1278
uint32_t clock_hz
Public structure field.
Definition: radkernel.h:1269
uint8_t bits_per_word
Public structure field.
Definition: radkernel.h:1271
uint8_t cs
Public structure field.
Definition: radkernel.h:1268
char driver[RAD_DRIVER_NAME_MAX]
Public structure field.
Definition: radkernel.h:1277
uint8_t transfer_mode
Public structure field.
Definition: radkernel.h:1272
char compatible[RAD_COMPATIBLE_MAX]
Public structure field.
Definition: radkernel.h:1276
uint8_t mode
Public structure field.
Definition: radkernel.h:1270
Public data structure for rad_spi_driver.
Definition: radkernel.h:1133
void(* remove)(void *context, rad_spi_device_t *device)
Public callback slot.
Definition: radkernel.h:1139
uint32_t size
Public structure field.
Definition: radkernel.h:1134
const char * name
Public structure field.
Definition: radkernel.h:1135
const char * compatible
Public structure field.
Definition: radkernel.h:1136
void * context
Public structure field.
Definition: radkernel.h:1137
rad_status_t(* probe)(void *context, rad_spi_device_t *device)
Public callback slot.
Definition: radkernel.h:1138
Public data structure for rad_spi_transfer.
Definition: radkernel.h:1065
uint8_t * rx_data
Public structure field.
Definition: radkernel.h:1067
uint8_t bits_per_word
Public structure field.
Definition: radkernel.h:1071
uint8_t transfer_mode
Public structure field.
Definition: radkernel.h:1073
uint8_t mode
Public structure field.
Definition: radkernel.h:1070
uint8_t cs
Public structure field.
Definition: radkernel.h:1072
size_t size
Public structure field.
Definition: radkernel.h:1068
const uint8_t * tx_data
Public structure field.
Definition: radkernel.h:1066
uint32_t speed_hz
Public structure field.
Definition: radkernel.h:1069
Public data structure for rad_task_config.
Definition: radkernel.h:575
size_t stack_size
Public structure field.
Definition: radkernel.h:578
void * user_context
Public structure field.
Definition: radkernel.h:581
int priority
Public structure field.
Definition: radkernel.h:580
uint32_t size
Public structure field.
Definition: radkernel.h:576
const char * name
Public structure field.
Definition: radkernel.h:577
int target_core
Public structure field.
Definition: radkernel.h:579
Public data structure for rad_task_info.
Definition: radkernel.h:561
int target_core
Public structure field.
Definition: radkernel.h:567
int priority
Public structure field.
Definition: radkernel.h:569
char name[64]
Public structure field.
Definition: radkernel.h:563
size_t stack_size
Public structure field.
Definition: radkernel.h:570
int running
Public structure field.
Definition: radkernel.h:564
int current_core
Public structure field.
Definition: radkernel.h:568
int finished
Public structure field.
Definition: radkernel.h:565
uint64_t id
Public structure field.
Definition: radkernel.h:562
rad_task_state_t state
Public structure field.
Definition: radkernel.h:566
int detached
Public structure field.
Definition: radkernel.h:571
Public data structure for rad_timer_source_config.
Definition: radkernel.h:536
uint32_t frequency_hz
Public structure field.
Definition: radkernel.h:539
uint32_t size
Public structure field.
Definition: radkernel.h:537
int supports_oneshot
Public structure field.
Definition: radkernel.h:540
const char * name
Public structure field.
Definition: radkernel.h:538
Public data structure for rad_timer_source_info.
Definition: radkernel.h:552
int active
Public structure field.
Definition: radkernel.h:556
uint32_t frequency_hz
Public structure field.
Definition: radkernel.h:554
char name[RAD_TIMER_NAME_MAX]
Public structure field.
Definition: radkernel.h:553
uint64_t ticks
Public structure field.
Definition: radkernel.h:557
int supports_oneshot
Public structure field.
Definition: radkernel.h:555
Public data structure for rad_timer_source_ops.
Definition: radkernel.h:544
void * context
Public structure field.
Definition: radkernel.h:545
rad_status_t(* schedule_oneshot)(void *context, uint64_t delay_micros)
Public callback slot.
Definition: radkernel.h:547
rad_status_t(* cancel_oneshot)(void *context)
Public callback slot.
Definition: radkernel.h:548
rad_status_t(* start_periodic)(void *context, uint32_t frequency_hz)
Public callback slot.
Definition: radkernel.h:546
Public data structure for rad_tree_node_info.
Definition: radkernel.h:631
char parent[RAD_TREE_MAX_PATH]
Public structure field.
Definition: radkernel.h:634
char module[RAD_TREE_MAX_PROPERTY_NAME]
Public structure field.
Definition: radkernel.h:635
int bound
Public structure field.
Definition: radkernel.h:636
char name[RAD_TREE_MAX_PROPERTY_NAME]
Public structure field.
Definition: radkernel.h:633
char path[RAD_TREE_MAX_PATH]
Public structure field.
Definition: radkernel.h:632
POSIX-shaped terminal attributes stored by RADPx-OS TTY devices.
Definition: radkernel.h:1385
uint32_t output_flags
Public structure field.
Definition: radkernel.h:1387
uint32_t input_flags
Public structure field.
Definition: radkernel.h:1386
uint8_t control_chars[RAD_TTY_NCCS]
Public structure field.
Definition: radkernel.h:1392
uint32_t local_flags
Public structure field.
Definition: radkernel.h:1389
uint32_t control_flags
Public structure field.
Definition: radkernel.h:1388
uint32_t output_speed
Public structure field.
Definition: radkernel.h:1391
uint32_t input_speed
Public structure field.
Definition: radkernel.h:1390
Public data structure for rad_tty_window_size.
Definition: radkernel.h:1370
uint16_t y_pixels
Public structure field.
Definition: radkernel.h:1374
uint16_t rows
Public structure field.
Definition: radkernel.h:1371
uint16_t columns
Public structure field.
Definition: radkernel.h:1372
uint16_t x_pixels
Public structure field.
Definition: radkernel.h:1373
Public data structure for rad_usb_host_info.
Definition: radkernel.h:675
uint32_t size
Public structure field.
Definition: radkernel.h:676
rad_usb_controller_type_t controller
Public structure field.
Definition: radkernel.h:677
uint32_t flags
Public structure field.
Definition: radkernel.h:681
uint32_t device_count
Public structure field.
Definition: radkernel.h:678
uint32_t hid_keyboard_count
Public structure field.
Definition: radkernel.h:679
uint32_t hid_mouse_count
Public structure field.
Definition: radkernel.h:680
Public data structure for rad_vfs_backend_ops.
Definition: radkernel.h:848
rad_status_t(* chmod)(void *context, const char *path, uint32_t mode)
Public callback slot.
Definition: radkernel.h:867
rad_status_t(* link)(void *context, const char *old_path, const char *new_path)
Public callback slot.
Definition: radkernel.h:866
rad_status_t(* truncate)(void *context, const char *path, uint64_t size)
Public callback slot.
Definition: radkernel.h:863
rad_status_t(* mkdir)(void *context, const char *path)
Public callback slot.
Definition: radkernel.h:858
rad_status_t(* list)(void *context, const char *path, rad_vfs_list_callback_t callback, void *callback_context)
Public callback slot.
Definition: radkernel.h:857
rad_status_t(* remove)(void *context, const char *path)
Public callback slot.
Definition: radkernel.h:859
rad_status_t(* symlink)(void *context, const char *target, const char *link_path)
Public callback slot.
Definition: radkernel.h:865
void * context
Public structure field.
Definition: radkernel.h:849
rad_status_t(* rename)(void *context, const char *old_path, const char *new_path)
Public callback slot.
Definition: radkernel.h:860
rad_status_t(* write)(void *file, const void *buffer, size_t size, size_t *bytes_written)
Public callback slot.
Definition: radkernel.h:852
rad_status_t(* seek)(void *file, int64_t offset, rad_seek_origin_t origin)
Public callback slot.
Definition: radkernel.h:853
void(* close)(void *file)
Public callback slot.
Definition: radkernel.h:855
rad_status_t(* open)(void *context, const char *path, uint32_t flags, void **file)
Public callback slot.
Definition: radkernel.h:850
uint64_t(* tell)(void *file)
Public callback slot.
Definition: radkernel.h:854
rad_status_t(* fsync)(void *file)
Public callback slot.
Definition: radkernel.h:862
rad_status_t(* readlink)(void *context, const char *path, char *buffer, size_t size)
Public callback slot.
Definition: radkernel.h:864
rad_status_t(* stat)(void *context, const char *path, rad_vfs_stat_t *stat)
Public callback slot.
Definition: radkernel.h:856
rad_status_t(* read)(void *file, void *buffer, size_t size, size_t *bytes_read)
Public callback slot.
Definition: radkernel.h:851
rad_status_t(* rmdir)(void *context, const char *path)
Public callback slot.
Definition: radkernel.h:861
Public data structure for rad_vfs_dirent.
Definition: radkernel.h:833
char name[96]
Public structure field.
Definition: radkernel.h:834
rad_vfs_stat_t stat
Public structure field.
Definition: radkernel.h:835
Public data structure for rad_vfs_stat.
Definition: radkernel.h:648
uint64_t mtime_millis
Public structure field.
Definition: radkernel.h:654
int is_directory
Public structure field.
Definition: radkernel.h:650
uint64_t size
Public structure field.
Definition: radkernel.h:649
rad_uid_t uid
Owning user ID.
Definition: radkernel.h:652
rad_gid_t gid
Owning group ID.
Definition: radkernel.h:653
uint32_t mode
Public structure field.
Definition: radkernel.h:651