blob: 4f4ce61a6ad3dab6b848521c1e3d16ced68ca74f (
plain)
1
2
3
4
5
6
7
8
9
10
11
|
#include <nonstd/syscall.h>
#define SYSCALL(_name, _type, _err, _a1, _a2, _a3, _a4, _a5, _a6) \
static int _scno = -2; \
if (_scno == -2) { _scno = ((long (*)(const char *))__libc(SYSCALL_LOOKUP))(_name); } \
long _ret = __syscall(_scno, _a1, _a2, _a3, _a4, _a5, _a6); \
if (_ret < 0) { \
errno = -_ret; \
return _err; \
} \
return (_type)_ret
|