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