Files
root ca13734bf0 Add full automotive RTOS project
Add kernel (Cortex-M0/M3/M4, Tricore, S32K, RISC-V ports), drivers,
middleware (CAN stack, diagnostics, safety), applications, board
support, build/test tooling, and documentation.
2026-08-23 03:35:29 -04:00

29 lines
648 B
C

/**
* @file mutex.h
* @brief Mutex with priority inheritance
*/
#ifndef MUTEX_H
#define MUTEX_H
#include "kernel.h"
/* Mutex Control Block */
typedef struct {
TaskHandle_t owner;
TaskPriority_t original_priority;
uint32_t lock_count;
TaskHandle_t* waiting_tasks;
uint32_t waiting_count;
bool recursive;
} Mutex_t;
/* Mutex Functions */
KernelStatus_t mutex_create(Mutex_t* mutex, bool recursive);
KernelStatus_t mutex_lock(Mutex_t* mutex, TimeOut_t timeout);
KernelStatus_t mutex_unlock(Mutex_t* mutex);
KernelStatus_t mutex_delete(Mutex_t* mutex);
TaskHandle_t mutex_get_owner(Mutex_t* mutex);
#endif /* MUTEX_H */