|
20 | 20 | * sysdeps/unix/sysv/linux/hppa/sysdep.h |
21 | 21 | */ |
22 | 22 |
|
23 | | -#ifdef PIC |
| 23 | +#ifndef DONT_USE_PIC |
24 | 24 | /* WARNING: CANNOT BE USED IN A NOP! */ |
25 | 25 | # define K_STW_ASM_PIC " copy %%r19, %%r4\n" |
26 | 26 | # define K_LDW_ASM_PIC " copy %%r4, %%r19\n" |
|
43 | 43 | across the syscall. */ |
44 | 44 |
|
45 | 45 | #define K_CALL_CLOB_REGS "%r1", "%r2", K_USING_GR4 \ |
46 | | - "%r20", "%r29", "%r31" |
| 46 | + "%r20", "%r29", "%r31" |
47 | 47 |
|
48 | 48 | #undef K_INLINE_SYSCALL |
49 | 49 | #define K_INLINE_SYSCALL(name, nr, args...) ({ \ |
|
58 | 58 | " ldi %1, %%r20\n" \ |
59 | 59 | K_LDW_ASM_PIC \ |
60 | 60 | : "=r" (__res) \ |
61 | | - : "i" (SYS_ify(name)) K_ASM_ARGS_##nr \ |
| 61 | + : "i" (name) K_ASM_ARGS_##nr \ |
62 | 62 | : "memory", K_CALL_CLOB_REGS K_CLOB_ARGS_##nr \ |
63 | 63 | ); \ |
64 | 64 | __sys_res = (long)__res; \ |
|
104 | 104 | #define K_CLOB_ARGS_1 K_CLOB_ARGS_2, "%r25" |
105 | 105 | #define K_CLOB_ARGS_0 K_CLOB_ARGS_1, "%r26" |
106 | 106 |
|
107 | | -#define _syscall0(type,name) \ |
108 | | -type name(void) \ |
109 | | -{ \ |
110 | | - return K_INLINE_SYSCALL(name, 0); \ |
111 | | -} |
112 | | - |
113 | | -#define _syscall1(type,name,type1,arg1) \ |
114 | | -type name(type1 arg1) \ |
115 | | -{ \ |
116 | | - return K_INLINE_SYSCALL(name, 1, arg1); \ |
117 | | -} |
118 | | - |
119 | | -#define _syscall2(type,name,type1,arg1,type2,arg2) \ |
120 | | -type name(type1 arg1, type2 arg2) \ |
121 | | -{ \ |
122 | | - return K_INLINE_SYSCALL(name, 2, arg1, arg2); \ |
123 | | -} |
124 | | - |
125 | | -#define _syscall3(type,name,type1,arg1,type2,arg2,type3,arg3) \ |
126 | | -type name(type1 arg1, type2 arg2, type3 arg3) \ |
127 | | -{ \ |
128 | | - return K_INLINE_SYSCALL(name, 3, arg1, arg2, arg3); \ |
129 | | -} |
130 | | - |
131 | | -#define _syscall4(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4) \ |
132 | | -type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4) \ |
133 | | -{ \ |
134 | | - return K_INLINE_SYSCALL(name, 4, arg1, arg2, arg3, arg4); \ |
135 | | -} |
136 | | - |
137 | | -/* select takes 5 arguments */ |
138 | | -#define _syscall5(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4,type5,arg5) \ |
139 | | -type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5) \ |
140 | | -{ \ |
141 | | - return K_INLINE_SYSCALL(name, 5, arg1, arg2, arg3, arg4, arg5); \ |
142 | | -} |
| 107 | +#define syscall0(name) \ |
| 108 | + K_INLINE_SYSCALL(name, 0) |
| 109 | +#define syscall1(name, arg1) \ |
| 110 | + K_INLINE_SYSCALL(name, 1, arg1) |
| 111 | +#define syscall2(name, arg1, arg2) \ |
| 112 | + K_INLINE_SYSCALL(name, 2, arg1, arg2) |
| 113 | +#define syscall3(name, arg1, arg2, arg3) \ |
| 114 | + K_INLINE_SYSCALL(name, 3, arg1, arg2, arg3) |
| 115 | +#define syscall4(name, arg1, arg2, arg3, arg4) \ |
| 116 | + K_INLINE_SYSCALL(name, 4, arg1, arg2, arg3, arg4) |
| 117 | +#define syscall5(name, arg1, arg2, arg3, arg4, arg5) \ |
| 118 | + K_INLINE_SYSCALL(name, 5, arg1, arg2, arg3, arg4, arg5) |
143 | 119 |
|
144 | 120 | #define __ARCH_WANT_NEW_STAT |
145 | 121 | #define __ARCH_WANT_STAT64 |
|
0 commit comments