]> git.pld-linux.org Git - packages/util-vserver.git/blob - util-vserver-0.30.210-shiny10.patch
- typo
[packages/util-vserver.git] / util-vserver-0.30.210-shiny10.patch
1 diff -Nurp util-vserver-0.30.210.orig/lib/syscall-alternative.h util-vserver-0.30.210.shiny10/lib/syscall-alternative.h
2 --- util-vserver-0.30.210.orig/lib/syscall-alternative.h        2005-10-28 18:33:50.000000000 +0200
3 +++ util-vserver-0.30.210.shiny10/lib/syscall-alternative.h     2006-04-02 21:07:52.000000000 +0200
4 @@ -1,9 +1,7 @@
5 -  // from http://vserver.13thfloor.at/Experimental/SYSCALL/syscall_shiny7.h
6 -
7  #ifndef        __SYSCALL_NEW_H
8  #define        __SYSCALL_NEW_H
9  
10 -/*     Copyright (C) 2005 Herbert Pötzl
11 +/*     Copyright (C) 2005-2006 Herbert Pötzl
12  
13                 global config options
14  
15 @@ -39,12 +37,13 @@
16         __sysc_rcon(n)          ... syscall register constraint
17         __sysc_regs             ... list of input regs for clobber
18         __sysc_type             ... register type
19 +       __sysc_aout             ... asm code output constraint
20  
21                 if all else fails
22  
23         __sc_asmload(n,N,...)   ... asm code to prepare arguments
24         __sc_asmsysc(n,N)       ... asm code to execute syscall
25 -       __sc_asmsave(n,r,e)     ... asm code to store results
26 +       __sc_asmsave(n)         ... asm code to store results
27  
28  */
29  
30 @@ -243,7 +242,8 @@
31         sret:   r0(r28)
32         serr:   (sret >= (unsigned)-EMAXERRNO)
33         call:   ble  0x100(%%sr2, %%r0)
34 -       clob:   r1, r2, r4, r20, r29, r31, memory
35 +       clob:   r1, r2, (r4), r20, r29, r31, memory
36 +       picr:   pr(r19)
37  */
38  
39  #define        __sysc_max_err  4095
40 @@ -253,13 +253,21 @@
41         ("r26", "r25", "r24", "r23", "r22", "r21")
42  
43  #define        __sysc_cmd_sys  "ble 0x100(%%sr2,%%r0)"
44 -#define        __sysc_cmd_fin  "ldi %0,%%r20"
45  
46 -#define        __sysc_clobber  __sysc_regs,                                    \
47 -       "r1", "r2", "r4", "r20", "r29", "r31", "memory"
48 +#define        __sysc_pre(n)                                                   \
49 +       __pasm(n,1,1,   "copy %%r19, %%r4"      ,                       )
50  
51 -#warning syscall arch hppa not tested yet
52 +#define        __sysc_fin(n)                                                   \
53 +       __casm(n,1,1,   "ldi %0,%%r20"          ,                       )\
54 +       __pasm(n,1,1,   "copy %%r4, %%r19"      ,                       )
55  
56 +#ifndef        __PIC__
57 +#define        __sysc_clobber  __sysc_regs,                                    \
58 +       "r1", "r2", "r20", "r29", "r31", "memory"
59 +#else
60 +#define        __sysc_clobber  __sysc_regs,                                    \
61 +       "r1", "r2", "r4", "r20", "r29", "r31", "memory"
62 +#endif
63  
64  
65  /*     *****************************************
66 @@ -277,6 +285,7 @@
67         sret:   r0(eax)
68         serr:   (sret >= (unsigned)-EMAXERRNO)
69         call:   int 0x80
70 +       picr:   pr(ebx)
71         clob:   memory
72  */
73  
74 @@ -301,15 +310,18 @@
75         __casm(n,6,1,   "pushl  %%ebp"          ,                       )\
76         ""::__sc_iregs(n,__VA_ARGS__):__sysc_clobber)
77  
78 +#define        __sc_asmsave(n)
79 +
80  #define        __sysc_pre(n)                                                   \
81         __casm(n,6,1,   "movl   %%eax,%%ebp"    ,                       )\
82 -       __casm(n,0,1,   "movl   %0,%%eax"       ,                       )\
83 +       __casm(n,0,1,   "movl   %1,%%eax"       ,                       )\
84  
85  #define        __sysc_fin(n)                                                   \
86         __casm(n,6,1,   "popl   %%ebp"          ,                       )\
87         __pasm(n,1,1,   "popl   %%ebx"          ,                       )\
88  
89 -#define        __sysc_clobber  __sysc_regs, "eax", "memory"
90 +#define        __sysc_aout     "=a"(__res)
91 +#define        __sysc_clobber  __sysc_regs, "memory"
92  
93  
94  /*     *****************************************
95 @@ -399,8 +411,43 @@
96  
97  #elif  defined(__mips__)
98  
99 -#error syscall arch mips not implemented yet
100 +/*     The ABIO32 calling convention uses a0-a3  to pass the first
101 +       four arguments, the rest is passed on the userspace stack.  The 5th arg
102 +       starts at 16($sp).
103 +
104 +       ABIN32 and ABI64 pass 6 args in a0-a3, t0-t1.
105 +
106 +       scnr:   id(v0)
107 +       args:   a1(a0), a2(a1), a3(a2), a4(a3), a5(16($sp)), a6(20($sp))
108 +       sret:   r0(v0)
109 +       serr:   e0(a3)
110 +       call:   syscall
111 +       clob:   at, v0, t0-t7, t8-t9
112 +*/
113 +
114 +#define        __sysc_reg_cid  "v0"
115 +#define        __sysc_reg_ret  "v0"
116 +#define        __sysc_reg_err  "a3"
117 +#define        __sysc_cmd_sys  "syscall"
118 +
119 +#define        __sysc_reg(n) __arg_##n\
120 +       ("a0","a1","a2","a3", "t0", "t1")
121  
122 +#define        __sysc_clobber "$1", "$3", "$8", "$9", "$10", "$11", "$12",     \
123 +       "$13", "$14", "$15", "$24", "$25", "memory"
124 +
125 +#if _MIPS_SIM == _ABIO32
126 +#define        __sysc_pre(n)                                                   \
127 +       __casm(n,5,1,"addiu $sp,$sp,-32",)                              \
128 +       __casm(n,6,1,"sw $9,20($sp)",)                                  \
129 +       __casm(n,5,1,"sw $8, 16($sp)",)
130 +#define        __sysc_fin(n)                                                   \
131 +       __casm(n,5,1,"addiu $sp,$sp,32",)
132 +#elif (_MIPS_SIM == _ABIN32) || (_MIPS_SIM == _ABI64)
133 +#warning syscall arch mips with ABI N32 and 64 not tested yet
134 +#else
135 +#error unknown mips ABI version
136 +#endif
137  
138  
139  /*     *****************************************
140 @@ -651,6 +698,7 @@
141  #define        __sysc_clobber  __sysc_regs,                                    \
142         "cc", "r11", "rcx", "memory"
143  
144 +#define        __sysc_aout     "=a"(__res)
145  
146  #else
147  #error unknown kernel arch
148 @@ -834,7 +882,7 @@
149  #define        __sc_inp_def(n,value)
150  #endif
151  
152 -#ifndef        __sysc_save
153 +#if    !defined(__sysc_save) && !defined(__sysc_aout)
154  #define        __sc_res_def(n,r)       __sc_asm_reg(n, r);
155  #else
156  #define        __sc_res_def(n,r)       __sc_reg(n);
157 @@ -865,7 +913,6 @@
158  #endif
159  
160  
161 -
162  #ifdef __sc_complex    /* complex result */
163  
164  #ifndef        __sysc_errc
165 @@ -918,6 +965,7 @@
166         return (type)(res)
167  #endif
168  
169 +
170  #define        __sc_results                                                    \
171         __sc_res_def(__res, __sysc_reg_res)
172  
173 @@ -939,8 +987,13 @@
174         __casm(n,3,0,"%3 ",) __casm(n,4,0,"%4 ",) __casm(n,5,0,"%5 ",)  \
175         __casm(n,6,0,"%6 ",) "*/"
176  
177 +#ifdef __sysc_aout
178 +#define        __sc_dummy_save(n)
179 +#define __sc_asmsave(n)
180 +#else
181  #define        __sc_dummy_save(n)      "/* gcc dummy save "                    \
182         __casm(n,0,0,"%0 ",) __casm(n,1,0,"%1 ",) "*/"
183 +#endif
184  
185  #define        __comment(name)         "\t/* kernel sys_"                      \
186         #name "[" __stringify(__sc_id(name)) "] */"
187 @@ -1006,10 +1059,14 @@
188  #endif
189  #endif
190  
191 +#ifndef        __sysc_aout
192 +#define        __sysc_aout
193 +#endif
194 +
195  #ifndef        __sc_asmsysc
196  #define        __sc_asmsysc(n,N)       __sc_asm_vol(                           \
197         __casm(n,0,0,   __sc_cmds(n,N)          ,                       )\
198 -       ::"i"(__sc_id(N)) : __sysc_clobber)
199 +       :__sysc_aout:"i"(__sc_id(N)) : __sysc_clobber)
200  #endif
201  
202  #ifndef        __sc_asmsave
203 @@ -1031,33 +1088,33 @@
204  
205  
206  
207 -#define _syscall0(type, name)                                          \
208 +#define        _syscall0(type, name)                                           \
209  type name(void)                                                                \
210  __sc_body(0, type, name, *)
211  
212 -#define _syscall1(type, name, type1, arg1)                             \
213 +#define        _syscall1(type, name, type1, arg1)                              \
214  type name(type1 arg1)                                                  \
215  __sc_body(1, type, name, arg1)
216  
217 -#define _syscall2(type, name, type1, arg1, type2, arg2)                        \
218 +#define        _syscall2(type, name, type1, arg1, type2, arg2)                 \
219  type name(type1 arg1, type2 arg2)                                      \
220  __sc_body(2, type, name, arg1, arg2)
221  
222 -#define _syscall3(type, name, type1, arg1, type2, arg2, type3, arg3)   \
223 +#define        _syscall3(type, name, type1, arg1, type2, arg2, type3, arg3)    \
224  type name(type1 arg1, type2 arg2, type3 arg3)                          \
225  __sc_body(3, type, name, arg1, arg2, arg3)
226  
227 -#define _syscall4(type, name, type1, arg1, type2, arg2, type3, arg3,   \
228 +#define        _syscall4(type, name, type1, arg1, type2, arg2, type3, arg3,    \
229                               type4, arg4)                              \
230  type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4)              \
231  __sc_body(4, type, name, arg1, arg2, arg3, arg4)
232  
233 -#define _syscall5(type, name, type1, arg1, type2, arg2, type3, arg3,   \
234 -                             type4, arg4, type5, arg5)                 \
235 +#define        _syscall5(type, name, type1, arg1, type2, arg2, type3, arg3,    \
236 +                             type4, arg4, type5, arg5)                 \
237  type name(type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5)  \
238  __sc_body(5, type, name, arg1, arg2, arg3, arg4, arg5)
239  
240 -#define _syscall6(type, name, type1, arg1, type2, arg2, type3, arg3,   \
241 +#define        _syscall6(type, name, type1, arg1, type2, arg2, type3, arg3,    \
242                         type4, arg4, type5, arg5, type6, arg6)          \
243  type name(type1 arg1, type2 arg2, type3 arg3,                          \
244           type4 arg4, type5 arg5, type6 arg6)                           \
This page took 0.109209 seconds and 3 git commands to generate.