abi/task/
condition_variable.rs

1use core::ffi::c_int;
2
3use crate::{XilaTime, XilaTimeClockIdentifier};
4
5use super::RawMutex;
6
7pub type XilaConditionVariable = usize;
8pub type XilaConditionVariableAttribute = usize;
9
10/// This function is used to create a condition variable.
11///
12/// # Safety
13///
14/// This function is unsafe because it dereferences raw pointers.
15#[unsafe(no_mangle)]
16pub unsafe extern "C" fn xila_condition_variable_new(
17    _condition_variable: *mut XilaConditionVariable,
18) -> u32 {
19    todo!()
20}
21
22/// This function is used to initialize a condition variable.
23///
24/// # Safety
25/// This function is unsafe because it dereferences raw pointers.
26#[unsafe(no_mangle)]
27pub unsafe extern "C" fn xila_condition_variable_initialize(
28    _condition_variable: *mut XilaConditionVariable,
29    _attribute: *const XilaConditionVariableAttribute,
30) -> u32 {
31    todo!()
32}
33
34/// This function is used to delete a condition variable.
35///
36/// # Safety
37///
38/// This function is unsafe because it dereferences raw pointers.
39#[unsafe(no_mangle)]
40pub unsafe extern "C" fn xila_condition_variable_remove(
41    _condition_variable: *mut XilaConditionVariable,
42) -> u32 {
43    todo!()
44}
45
46/// This function is used to wait a condition variable.
47///
48/// # Safety
49///
50/// This function is unsafe because it dereferences raw pointers.
51#[unsafe(no_mangle)]
52pub unsafe extern "C" fn xila_condition_variable_wait(
53    _condition_variable: *mut XilaConditionVariable,
54    _mutex: *mut RawMutex,
55) -> u32 {
56    todo!()
57}
58
59/// This function is used to try wait a condition variable.
60///
61/// # Safety
62///
63/// This function is unsafe because it dereferences raw pointers.
64#[unsafe(no_mangle)]
65pub unsafe extern "C" fn xila_condition_variable_try_wait(
66    _condition_variable: *mut XilaConditionVariable,
67    _mutex: *mut RawMutex,
68    _time: XilaTime,
69) -> u32 {
70    todo!()
71}
72
73/// This function is used to signal a condition variable.
74///
75/// # Safety
76///
77/// This function is unsafe because it dereferences raw pointers.
78#[unsafe(no_mangle)]
79pub unsafe extern "C" fn xila_condition_variable_signal(
80    _condition_variable: *mut XilaConditionVariable,
81) -> u32 {
82    todo!()
83}
84
85/// This function is used to broadcast a condition variable.
86///
87/// # Safety
88///
89/// This function is unsafe because it dereferences raw pointers.
90#[unsafe(no_mangle)]
91pub unsafe extern "C" fn xila_condition_variable_broadcast(
92    _condition_variable: *mut XilaConditionVariable,
93) -> u32 {
94    todo!()
95}
96
97/// This function is used to create a condition variable attribute.
98///
99/// # Safety
100/// This function is unsafe because it dereferences raw pointers.
101#[unsafe(no_mangle)]
102pub unsafe extern "C" fn xila_condition_variable_attribute_initialize(
103    _attribute: *mut XilaConditionVariableAttribute,
104) -> c_int {
105    todo!()
106}
107
108/// This function is used to set the clock of a condition variable attribute.
109///
110/// # Safety
111/// This function is unsafe because it dereferences raw pointers.
112#[unsafe(no_mangle)]
113pub unsafe extern "C" fn xila_condition_variable_attribute_set_clock(
114    _attribute: *mut XilaConditionVariableAttribute,
115    _clock: XilaTimeClockIdentifier,
116) -> c_int {
117    todo!()
118}
119
120/// This function is used to destroy a condition variable attribute.
121///
122/// # Safety
123/// This function is unsafe because it dereferences raw pointers.
124#[unsafe(no_mangle)]
125pub unsafe extern "C" fn xila_condition_variable_attribute_destroy(
126    _attribute: *mut XilaConditionVariableAttribute,
127) -> c_int {
128    todo!()
129}