aboutsummaryrefslogtreecommitdiff
path: root/system/i386/syscalls.h
blob: 41c21db9694e0084a4e2b9304b9e3f817777b98c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <asm/unistd.h>

#define syscall(name,sym) \
.text; \
.type sym,@function; \
.global sym; \
sym: \
.ifle __NR_##name-255; \
	movb $__NR_##name,%al; \
	jmp __unified_syscall; \
.else; \
	movw $__NR_##name,%ax; \
	jmp __unified_syscall_256; \
.endif; \
.Lend##sym: ; \
.size sym,.Lend##sym-sym

#define syscall_weak(name,wsym,sym) \
.text; \
.type wsym,@function; \
.weak wsym; \
wsym: ; \
.type sym,@function; \
.global sym; \
sym: \
.ifle __NR_##name-255; \
	movb $__NR_##name,%al; \
	jmp __unified_syscall; \
.else; \
	movw $__NR_##name,%ax; \
	jmp __unified_syscall_256; \
.endif; \
.Lend##sym: ; \
.size sym,.Lend##sym-sym