/** * @file port_common.h * @brief Common port interface definitions */ #ifndef PORT_COMMON_H #define PORT_COMMON_H #include "kernel.h" /* Common port function declarations */ void port_common_init(void); void port_common_context_switch(TaskHandle_t current, TaskHandle_t next); uint32_t* port_common_init_stack(TaskFunction_t function, void* parameters, uint32_t* stack_top, uint32_t stack_size); void port_common_fault_handler(uint32_t fault_type, uint32_t fault_address, uint32_t fault_status); void port_enter_safe_state(void); void port_set_safe_outputs(void); void port_log_fault(void* fault_info); /* Architecture-specific functions that must be implemented */ void port_init(void); void port_start_first_task(void); void port_context_switch(uint32_t* current_context, uint32_t* next_context); uint32_t* port_initialize_task_stack(TaskFunction_t function, void* parameters, uint32_t* stack_top); void port_save_context(uint32_t* context); void port_restore_context(uint32_t* context); void port_disable_interrupts(void); void port_enable_interrupts(void); uint32_t port_get_current_exception(void); void port_service_watchdog(void); void port_yield(void); void port_yield_from_isr(void); #endif /* PORT_COMMON_H */