Go to the documentation of this file.
26 #define P00_IF_XEQ_(A, B) P99_IF_EQ(A, B)
27 #define P00_IF_XEQ(A, B) P00_IF_XEQ(A, B)
40 #define P00_ERRNO_LIST \
47 P99_IF_EQ(EAGAIN, EWOULDBLOCK)(AGAIN,)(AGAIN, WOULDBLOCK,) \
65 P99_IF_EQ(EDEADLK, EDEADLOCK)(DEADLK,)(DEADLK, DEADLOCK,) \
133 P99_IF_EQ(ENOTSUP, EOPNOTSUPP)(NOTSUP,)(NOTSUP, OPNOTSUPP,) \
163 #define P00_ERRNO_ELEM_(ERR, STR) P99_IF_GT(ERR, 0)([ERR] = 0,)()
164 #define P00_ERRNO_ELEM(ERR) P00_ERRNO_ELEM_(E ## ERR, "E" #ERR)
166 #define P00_ERRNO_ENUM_(ERR, NAME) P99_IF_GT(ERR, 0)(NAME)(ERR)
167 #define P00_ERRNO_ENUM(ERR) P00_ERRNO_ENUM_(E ## ERR, p00_E ## ERR)
173 p00_errno_max =
sizeof((
char[]) {
P99_SER(P00_ERRNO_ELEM, P00_ERRNO_LIST) P00_ERRNO_ELEM(OVERFLOW) }),
175 P99_SEQ(P00_ERRNO_ENUM, P00_ERRNO_LIST), P00_ERRNO_ENUM(OVERFLOW),
182 #define P00_ERRNO_CASE_(ERR, STR) case ERR: return STR
183 #define P00_ERRNO_CASE(ERR) P00_ERRNO_CASE_(E ## ERR, "E" #ERR)
200 P99_SEP(P00_ERRNO_CASE, P00_ERRNO_LIST);
201 P00_ERRNO_CASE(OVERFLOW);
A preprocessor for loop implementation and some derived list handling macros.
@ p99_errno_max
The maximum error code that we found or defined on this system.
#define P99_SER(MACRO,...)
Apply the macro MACRO to the rest of the argument list.
#define P99_SEP(MACRO,...)
Apply the macro MACRO to the rest of the argument list.
char const * p99_errno_getname(errno_t p00_err)
Return the name of an error condition.
#define p99_inline
Try to force a function always to be inlined.
#define P99_SEQ(MACRO,...)
Apply the macro MACRO to the rest of the argument list.
#define P99_CONST_FUNCTION
On architectures that support this, assert that a function is "const", i.e only depends on parameters...