diff options
Diffstat (limited to 'arch/i386/bits')
-rw-r--r-- | arch/i386/bits/pthread.h | 6 | ||||
-rw-r--r-- | arch/i386/bits/syscall.h | 4 |
2 files changed, 6 insertions, 4 deletions
diff --git a/arch/i386/bits/pthread.h b/arch/i386/bits/pthread.h index 7690ea39..c119dc8a 100644 --- a/arch/i386/bits/pthread.h +++ b/arch/i386/bits/pthread.h @@ -7,17 +7,17 @@ struct __ptcb { static inline void __pthread_register_cancel_2(struct __ptcb *__cb) { - __asm__ __volatile__( "call __pthread_register_cancel" : : "a"(__cb) ); + __asm__ __volatile__( "call __pthread_register_cancel" : : "a"(__cb) : "ecx", "edx", "memory" ); } static inline void __pthread_unregister_cancel_2(struct __ptcb *__cb) { - __asm__ __volatile__( "call __pthread_unregister_cancel" : : "a"(__cb) ); + __asm__ __volatile__( "call __pthread_unregister_cancel" : : "a"(__cb) : "ecx", "edx", "memory" ); } static inline void __pthread_unwind_next_2(struct __ptcb *__cb) { - __asm__ __volatile__( "call __pthread_unwind_next" : : "a"(__cb) ); + __asm__ __volatile__( "call __pthread_unwind_next" : : "a"(__cb) : "ecx", "edx", "memory" ); } #define __pthread_register_cancel __pthread_register_cancel_2 diff --git a/arch/i386/bits/syscall.h b/arch/i386/bits/syscall.h index 519e2dcd..274f205c 100644 --- a/arch/i386/bits/syscall.h +++ b/arch/i386/bits/syscall.h @@ -122,7 +122,9 @@ static inline long __syscall6(long __n, long __a1, long __a2, long __a3, long __ #define __SC_sendmsg 16 #define __SC_recvmsg 17 -#define __socketcall(nm, a, b, c, d, e, f) syscall(SYS_socketcall, __SC_##nm, \ +#define __socketcall(nm,a,b,c,d,e,f) syscall(SYS_socketcall, __SC_##nm, \ + ((long [6]){ (long)a, (long)b, (long)c, (long)d, (long)e, (long)f })) +#define __socketcall_cp(nm,a,b,c,d,e,f) syscall_cp(SYS_socketcall, __SC_##nm, \ ((long [6]){ (long)a, (long)b, (long)c, (long)d, (long)e, (long)f })) #define __NR_restart_syscall 0 |