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.
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
/**
|
||||
* @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 */
|
||||
Reference in New Issue
Block a user