1use core::ffi::c_void;
2
3#[derive(Copy, Clone, Debug, Eq, PartialEq)]
5pub enum FreeRtosError {
6 OutOfMemory,
7 QueueSendTimeout,
8 QueueReceiveTimeout,
9 MutexTimeout,
10 Timeout,
11 QueueFull,
12 StringConversionError,
13 TaskNotFound,
14 InvalidQueueSize,
15 ProcessorHasShutDown,
16}
17
18pub type FreeRtosVoidPtr = *const c_void;
19pub type FreeRtosMutVoidPtr = *mut c_void;
20pub type FreeRtosCharPtr = *const u8;
21pub type FreeRtosChar = u8;
22
23pub type FreeRtosBaseType = i32;
24pub type FreeRtosUBaseType = u32;
25pub type FreeRtosTickType = u32;
26pub type FreeRtosEventBitsType = u32;
27pub type FreeRtosBaseTypeMutPtr = *mut FreeRtosBaseType;
28
29pub type FreeRtosTaskHandle = *const c_void;
30pub type FreeRtosQueueHandle = *const c_void;
31pub type FreeRtosSemaphoreHandle = *const c_void;
32pub type FreeRtosEventGroupHandle = *const c_void;
33pub type FreeRtosTaskFunction = *const c_void;
34pub type FreeRtosTimerHandle = *const c_void;
35pub type FreeRtosTimerCallback = *const c_void;
36#[allow(dead_code)]
37pub type FreeRtosStackType = *const c_void;
38
39pub type FreeRtosUnsignedLong = u32;
40pub type FreeRtosUnsignedShort = u16;
41
42#[derive(Copy, Clone, Debug)]
43#[repr(C)]
44pub struct FreeRtosTaskStatusFfi {
45 pub handle: FreeRtosTaskHandle,
46 pub task_name: FreeRtosCharPtr,
47 pub task_number: FreeRtosUBaseType,
48 pub task_state: FreeRtosTaskState,
49 pub current_priority: FreeRtosUBaseType,
50 pub base_priority: FreeRtosUBaseType,
51 pub run_time_counter: FreeRtosUnsignedLong,
52 pub stack_base: FreeRtosCharPtr,
53 pub stack_high_water_mark: FreeRtosUnsignedShort,
54}
55
56#[derive(Copy, Clone, Debug)]
57#[repr(u8)]
58pub enum FreeRtosTaskState {
59 Running = 0,
61 Ready = 1,
63 Blocked = 2,
65 Suspended = 3,
67 Deleted = 4,
69}