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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
|
#ifdef __ASSEMBLER__
#include <asm/unistd.h>
#else
#include <linux/unistd.h>
#endif
#ifdef __i386__
#define syscall(name,sym) \
.text; \
.global sym; \
sym: \
movb $__NR_##name,%al; \
jmp __unified_syscall
#endif
#ifdef __sparc__
#define syscall(name,sym) \
.text; \
.global sym; \
sym: \
b __unified_syscall; \
mov __NR_##name, %g1
#endif
#ifdef __powerpc__
#define syscall(name,sym) \
.text; \
.global sym; \
sym: \
li 0,__NR_##name; \
b __unified_syscall
#endif
#ifdef __mips__
#define syscall(name,sym) \
.text; \
.global sym; \
.ent sym; \
sym: \
li $2,__NR_##name; \
la $25,__unified_syscall; \
jr $25; \
.end sym
#endif
#ifdef __arm__
#define syscall(name,sym) \
.text; \
.global sym; \
sym: \
swi __NR_##name; \
b __unified_syscall
#endif
#ifdef __alpha__
#define syscall(name,sym) \
.text ; \
.align 2 ; \
.global sym ; \
.type sym,@function ; \
sym: ; \
lda $0, __NR_##name($31) ; \
br __unified_syscall
#endif
|