Go to the source code of this file.
|
#define | SYS_ify(syscall_name) __NR_##syscall_name |
|
#define | INLINE_SYSCALL(name, nr, args...) |
|
#define | INTERNAL_SYSCALL(name, err, nr, args...) |
|
#define | INTERNAL_SYSCALL_NCS(name, err, nr, args...) |
|
#define | INTERNAL_SYSCALL_DECL(err) do { } while (0) |
|
#define | INTERNAL_SYSCALL_ERROR_P(val, err) ((unsigned int) (val) >= 0xfffff001u) |
|
#define | INTERNAL_SYSCALL_ERRNO(val, err) (-(val)) |
|
#define | LOADARGS_0 |
|
#define | LOADARGS_1 |
|
#define | LOADARGS_2 |
|
#define | LOADARGS_3 |
|
#define | LOADARGS_4 |
|
#define | LOADARGS_5 |
|
#define | RESTOREARGS_0 |
|
#define | RESTOREARGS_1 |
|
#define | RESTOREARGS_2 |
|
#define | RESTOREARGS_3 |
|
#define | RESTOREARGS_4 |
|
#define | RESTOREARGS_5 |
|
#define | ASMFMT_0() |
|
#define | ASMFMT_1(arg1) , "b" (arg1) |
|
#define | ASMFMT_2(arg1, arg2) , "b" (arg1), "c" (arg2) |
|
#define | ASMFMT_3(arg1, arg2, arg3) , "b" (arg1), "c" (arg2), "d" (arg3) |
|
#define | ASMFMT_4(arg1, arg2, arg3, arg4) , "b" (arg1), "c" (arg2), "d" (arg3), "S" (arg4) |
|
#define | ASMFMT_5(arg1, arg2, arg3, arg4, arg5) , "b" (arg1), "c" (arg2), "d" (arg3), "S" (arg4), "D" (arg5) |
|
#define | EXTRAVAR_0 |
|
#define | EXTRAVAR_1 |
|
#define | EXTRAVAR_2 |
|
#define | EXTRAVAR_3 |
|
#define | EXTRAVAR_4 |
|
#define | EXTRAVAR_5 |
|
#define | PTR_MANGLE(var) |
|
#define | PTR_DEMANGLE(var) PTR_MANGLE (var) |
|
|
| asm (".L__X'%ebx = 1\n\t"".L__X'%ecx = 2\n\t"".L__X'%edx = 2\n\t"".L__X'%eax = 3\n\t"".L__X'%esi = 3\n\t"".L__X'%edi = 3\n\t"".L__X'%ebp = 3\n\t"".L__X'%esp = 3\n\t"".macro bpushl name reg\n\t"".if 1 - \\name\n\t"".if 2 - \\name\n\t""error\n\t"".else\n\t""xchgl \\reg, %ebx\n\t"".endif\n\t"".endif\n\t"".endm\n\t"".macro bpopl name reg\n\t"".if 1 - \\name\n\t"".if 2 - \\name\n\t""error\n\t"".else\n\t""xchgl \\reg, %ebx\n\t"".endif\n\t"".endif\n\t"".endm\n\t") |
|
#define ASMFMT_1 |
( |
|
arg1) | |
, "b" (arg1) |
#define ASMFMT_2 |
( |
|
arg1, |
|
|
|
arg2 |
|
) |
| , "b" (arg1), "c" (arg2) |
#define ASMFMT_3 |
( |
|
arg1, |
|
|
|
arg2, |
|
|
|
arg3 |
|
) |
| , "b" (arg1), "c" (arg2), "d" (arg3) |
#define ASMFMT_4 |
( |
|
arg1, |
|
|
|
arg2, |
|
|
|
arg3, |
|
|
|
arg4 |
|
) |
| , "b" (arg1), "c" (arg2), "d" (arg3), "S" (arg4) |
#define ASMFMT_5 |
( |
|
arg1, |
|
|
|
arg2, |
|
|
|
arg3, |
|
|
|
arg4, |
|
|
|
arg5 |
|
) |
| , "b" (arg1), "c" (arg2), "d" (arg3), "S" (arg4), "D" (arg5) |
#define INLINE_SYSCALL |
( |
|
name, |
|
|
|
nr, |
|
|
|
args... |
|
) |
| |
Value:({ \
{ \
resultvar = 0xffffffff; \
} \
(int) resultvar; })
Definition at line 345 of file sysdep-i386.h.
#define INTERNAL_SYSCALL |
( |
|
name, |
|
|
|
err, |
|
|
|
nr, |
|
|
|
args... |
|
) |
| |
Value:({ \
register unsigned int resultvar; \
EXTRAVAR_##nr \
asm volatile ( \
LOADARGS_##nr \
"movl %1, %%eax\n\t" \
"int $0x80\n\t" \
RESTOREARGS_##nr \
: "=a" (resultvar) \
: "i" (__NR_##name) ASMFMT_##nr(args) : "memory", "cc"); \
(int) resultvar; })
Definition at line 416 of file sysdep-i386.h.
#define INTERNAL_SYSCALL_DECL |
( |
|
err) | |
do { } while (0) |
#define INTERNAL_SYSCALL_ERRNO |
( |
|
val, |
|
|
|
err |
|
) |
| (-(val)) |
#define INTERNAL_SYSCALL_ERROR_P |
( |
|
val, |
|
|
|
err |
|
) |
| ((unsigned int) (val) >= 0xfffff001u) |
#define INTERNAL_SYSCALL_NCS |
( |
|
name, |
|
|
|
err, |
|
|
|
nr, |
|
|
|
args... |
|
) |
| |
Value:({ \
register unsigned int resultvar; \
EXTRAVAR_##nr \
asm volatile ( \
LOADARGS_##nr \
"int $0x80\n\t" \
RESTOREARGS_##nr \
: "=a" (resultvar) \
: "0" (name) ASMFMT_##nr(args) : "memory", "cc"); \
(int) resultvar; })
Definition at line 428 of file sysdep-i386.h.
#define PTR_MANGLE |
( |
|
var) | |
|
Value:asm ("xorl %%gs:%c2, %0" \
: "=r" (var) \
: "0" (var), \
pointer_guard)))
Definition at line 575 of file sysdep-i386.h.
#define SYS_ify |
( |
|
syscall_name) | |
__NR_##syscall_name |
asm |
( |
".L__X'% |
ebx = 1\n\t"".L__X'%ecx = 2\n\t"".L__X'%edx = 2\n\t"".L__X'%eax = 3\n\t"".L__X'%esi = 3\n\t"".L__X'%edi = 3\n\t"".L__X'%ebp = 3\n\t"".L__X'%esp = 3\n\t"".macro bpushl name reg\n\t"".if 1 - \\name\n\t"".if 2 - \\name\n\t""error\n\t"".else\n\t""xchgl \\reg , |
|
|
%ebx\n\t"".endif\n\t"".endif\n\t"".endm\n\t"".macro bpopl name reg\n\t"".if 1-\\name\n\t"".if 2-\\name\n\t""error\n\t"".else\n\t""xchgl\\ |
reg, |
|
|
%ebx\n\t"".endif\n\t"".endif\n\t"".endm\n\t" |
|
|
) |
| |