summaryrefslogtreecommitdiffstats
path: root/mdk-stage1/dietlibc/syscalls.h
blob: 5e9782ee9bb6e11d61be38ea97866cc907baad80 (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
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