ae2f_docs
Loading...
Searching...
No Matches
Ftx-_linux.def.c
1
2/**
3 * @file Futex-_linux.auto.h
4 * */
5#ifndef ae2f_Sys_Futex_linux__auto_h
6
7#define _ae2f_SysFtxEl__linux int
8#include <ae2f/Sys/Ftx-_linux.h>
9#define ae2f_Sys_Futex_linux__auto_h
10
11
12#include <ae2f/Sys/Ftx.core.h>
13#include <ae2f/Macro.h>
14#include <ae2f/Cast.h>
15#include <errno.h>
16
17#if ae2f_Sys__linux(!)0
18
19/**
20 * @brief
21 * @retval ae2f_eSysFtxWait
22 * */
23ae2f_MAC((unused_0, )) ae2f_SysFtxWait_imp__linux(
24 ae2f_eSysFtxWait ret_err,
25 ae2f_SysFtxEl_t* const prm_uaddr,
26 const int prm_val,
27 const struct timespec * const pprm_time_opt
28 )
29{
30 (ret_err) = syscall(SYS_futex, prm_uaddr, FUTEX_WAIT, prm_val, pprm_time_opt, NULL, 0) == -1 ?
31 ae2f_static_cast(ae2f_eSysFtxWait, (errno)) :
33 ;
34}
35
36ae2f_MAC() ae2f_SysFtxWake__linux(
37 ae2f_eSysFtxWake ret_err,
38 ae2f_SysFtxEl_t* const prm_uaddr,
39 const int prm_numthrd
40 )
41{
42 (ret_err) = ae2f_static_cast(
43 ae2f_eSysFtxWake
44 , syscall(SYS_futex, prm_uaddr, FUTEX_WAKE, prm_numthrd, NULL, NULL, 0)
45 );
46}
47
48ae2f_MAC() ae2f_SysFtxWakeOne__linux(ae2f_eSysFtxWake ret_err, ae2f_SysFtxEl_t* const prm_uaddr) {
49 _ae2f_SysFtxWake__linux(ret_err, prm_uaddr, 1);
50}
51
52#endif
53#endif
#define ae2f_static_cast(t, v)
static_cast for C++
Definition Cast.h:28
@ ae2f_SysFtxWait_GOOD
Succesful.
Definition Ftx.core.h:22
_ae2f_SysFtxEl_t ae2f_SysFtxEl_t
Futex address element type.
Definition Ftx.h:28
#define ae2f_MAC(a)
A hint for creating a macro from void-returning function.
Definition Macro.h:17
#define ae2f_Sys__linux
Value expected did not match.
Definition Sys.h:15