abi/task/
semaphore.rs

1use core::ffi::{c_char, c_int};
2
3use crate::{XilaFileSystemMode, XilaFileSystemOpen};
4
5pub struct XilaSemaphore;
6
7/// This function is used to create a semaphore.
8///
9/// # Safety
10///
11/// This function is unsafe because it dereferences raw pointers.
12#[unsafe(no_mangle)]
13pub unsafe extern "C" fn xila_semaphore_open(
14    _name: *const c_char,
15    _open: XilaFileSystemOpen,
16    _mode: XilaFileSystemMode,
17    _value: isize,
18) -> *mut XilaSemaphore {
19    todo!()
20}
21
22/// This function is used to close a semaphore.
23#[unsafe(no_mangle)]
24pub extern "C" fn xila_semaphore_close(_semaphore: *mut XilaSemaphore) -> u32 {
25    let _ = _semaphore;
26    todo!()
27}
28
29/// This function is used to wait a semaphore.
30#[unsafe(no_mangle)]
31pub extern "C" fn xila_semaphore_wait(_semaphore: *mut XilaSemaphore) -> u32 {
32    todo!()
33}
34
35/// This function is used to try wait a semaphore.
36#[unsafe(no_mangle)]
37pub extern "C" fn xila_semaphore_try_wait(_semaphore: *mut XilaSemaphore) -> u32 {
38    todo!()
39}
40
41/// This function is used to post a semaphore.
42#[unsafe(no_mangle)]
43pub extern "C" fn xila_semaphore_post(_semaphore: *mut XilaSemaphore) -> u32 {
44    todo!()
45}
46
47/// This function is used to get the value of a semaphore.
48///
49/// # Safety
50///
51/// This function is unsafe because it dereferences raw pointers.
52#[unsafe(no_mangle)]
53pub unsafe extern "C" fn xila_semaphore_get_value(
54    _semaphore: *mut XilaSemaphore,
55    _value: *mut c_int,
56) -> u32 {
57    todo!()
58}
59
60/// This function is used to get the value of a semaphore.
61///
62/// # Safety
63///
64/// This function is unsafe because it dereferences raw pointers.
65#[unsafe(no_mangle)]
66pub unsafe extern "C" fn xila_semaphore_remove(_name: *const c_char) -> u32 {
67    todo!()
68}