|
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