ae2f_docs
Loading...
Searching...
No Matches
Ftx.core.h
Go to the documentation of this file.
1/**
2 * @file Ftx.core.h
3 * */
4
5#ifndef ae2f_Futex_core_h
6#define ae2f_Futex_core_h
7
8#include <time.h>
9
10#include "./Ftx-WIN.h"
11#include "./Ftx-_linux.h"
12#include "./Ftx-POSIX.h"
13
14
15/**
16 * @enum ae2f_eSysFtxWait
17 * @brief Guaranteed not to be duplicated.
18 * @see _ae2f_SysFtxWait
19 * */
20typedef enum {
21 /** @brief Succesful */
23
24 /** @brief timeout */
25 ae2f_SysFtxWait_TMOUT
26 ae2f_Sys_WIN(= ERROR_TIMEOUT)
27 ae2f_Sys__linux(= ETIMEDOUT)
28 ae2f_SysFtx_POSIX(= ETIMEDOUT)
29 ,
30
31 /** @brief Invalid pointer to ae2f_SysFtxEl_t. */
32 ae2f_SysFtxWait_PTRINVAL
34
35 /** @brief Invalid arguments (or not initialised) */
36 ae2f_SysFtxWait_INVAL
38 ae2f_SysFtx_POSIX(=EINVAL),
39
40 /** @brief Value expected did not match */
41 ae2f_SysFtxWait_MISMATCH
42 ae2f_Sys__linux(= EAGAIN),
43
44 /** @brief Interrupted by a user */
45 ae2f_SysFtxWait_INTERRUPTED
46 ae2f_Sys__linux(= EINTR),
47
48 /** @brief Target system does not support this */
49 ae2f_SysFtxWait_NO_IMP
50 ae2f_Sys__linux(= ENOSYS),
51
52 /** @brief Mutex is uncoverable */
53 ae2f_SysFtxWait_MTXNCOVERABLE
54 ae2f_SysFtx_POSIX(= ENOTRECOVERABLE),
55
56 /** @brief Mutex's owner is dead */
57 ae2f_SysFtxWait_MTXOWNDEAD
58 ae2f_SysFtx_POSIX(= EOWNERDEAD),
59
60 /** @brief Current system already has mutex. */
61 ae2f_SysFtxWait_MTXBLK
62 ae2f_SysFtx_POSIX(= EDEADLK),
63
64 /** @brief Mutex is not owned by this thread */
65 ae2f_SysFtxWait_MTXNOWN
66 N_ae2f_Sys_WIN(= EPERM)
67} ae2f_eSysFtxWait;
68
69/**
70 * @enum ae2f_eSysFtxWake
71 * */
72typedef enum {
73 ae2f_SysFtxWake_GOOD = 0,
74
75 /** @brief Invalid pointer to uaddr */
76 ae2f_SysFtxWake_PTRINVAL
77 N_ae2f_Sys_WIN(= EFAULT),
78
79 /** @brief Not initialised */
80 ae2f_SysFtxWake_INVAL
81 ae2f_Sys__linux(= EINVAL),
82
83 /** @brief Implementation is not included on your system */
84 ae2f_SysFtxWake_NO_IMP
85 ae2f_Sys__linux(= ENOSYS),
86
87 /** @brief Mutex is uncoverable */
88 ae2f_SysFtxWake_MTXNCOVERABLE
89 ae2f_SysFtx_POSIX(= ENOTRECOVERABLE),
90
91 /** @brief Mutex's owner is dead */
92 ae2f_SysFtxWake_MTXOWNDEAD
93 ae2f_SysFtx_POSIX(= EOWNERDEAD),
94
95 /** @brief Current system already has mutex. */
96 ae2f_SysFtxWake_MTXBLK
97 ae2f_SysFtx_POSIX(= EDEADLK),
98
99 /** @brief Mutex is not owned by this thread */
100 ae2f_SysFtxWake_MTXNOWN
101 N_ae2f_Sys_WIN(= EPERM)
102
103} ae2f_eSysFtxWake;
104
105#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_SysFtx_POSIX(a)
Definition Ftx.h:16
#define ae2f_MAC(a)
A hint for creating a macro from void-returning function.
Definition Macro.h:17
#define ae2f_Sys_WIN
System does not support this version. <ae2f_SysInetMk::prm_VerReq>.
Definition Sys.h:18
char ae2f_Sys_unused_t
Type which is unused.
Definition Sys.h:89
#define ae2f_SysHosted(a)
Definition Sys.h:9
#define N_ae2f_Sys_WIN
Mutex is not owned by this thread.
Definition Sys.h:55
#define ae2f_Sys__linux
Value expected did not match.
Definition Sys.h:15
#define ae2f_SysNHosted(a)
Definition Sys.h:10