search for: __syscall_entry

Displaying 4 results from an estimated 4 matches for "__syscall_entry".

2014 Jan 25
0
[klibc:master] i386: use the vdso for system calls on i386
...eletions(-) diff --git a/usr/klibc/arch/i386/socketcall.S b/usr/klibc/arch/i386/socketcall.S index a40cc02..44e2004 100644 --- a/usr/klibc/arch/i386/socketcall.S +++ b/usr/klibc/arch/i386/socketcall.S @@ -32,7 +32,7 @@ __socketcall_common: #endif movl $__NR_socketcall,%eax - int $0x80 + call *__syscall_entry #ifdef _REGPARM addl $6*4, %esp diff --git a/usr/klibc/arch/i386/syscall.S b/usr/klibc/arch/i386/syscall.S index 0dd363b..b7814e8 100644 --- a/usr/klibc/arch/i386/syscall.S +++ b/usr/klibc/arch/i386/syscall.S @@ -37,7 +37,7 @@ __syscall_common: #endif .globl __syscall_common_tail __syscall...
2014 Apr 09
0
[klibc:master] Move architecture-specific initialization to arch/
...0000..111d130 --- /dev/null +++ b/usr/klibc/arch/i386/archinit.c @@ -0,0 +1,18 @@ +/* + * arch/i386/archinit.c + * + * Architecture-specific libc initialization + */ + +#include <stdint.h> +#include <klibc/compiler.h> +#include <elf.h> +#include <sys/auxv.h> + +extern void (*__syscall_entry)(int, ...); + +void __libc_archinit(void) +{ + if (__auxval[AT_SYSINFO]) + __syscall_entry = (void (*)(int, ...)) __auxval[AT_SYSINFO]; +} diff --git a/usr/klibc/libc_init.c b/usr/klibc/libc_init.c index 1c6180b..c54d022 100644 --- a/usr/klibc/libc_init.c +++ b/usr/klibc/libc_init.c @@ -25,6 +25,7...
2015 Nov 05
0
[klibc:master] Inline __arch_libcinit()
...bc/archinit.h index 111d130..8995ebf 100644 --- a/usr/klibc/arch/i386/archinit.c +++ b/usr/include/arch/i386/klibc/archinit.h @@ -1,5 +1,5 @@ /* - * arch/i386/archinit.c + * arch/i386/include/klibc/archinit.h * * Architecture-specific libc initialization */ @@ -11,7 +11,7 @@ extern void (*__syscall_entry)(int, ...); -void __libc_archinit(void) +static inline void __libc_archinit(void) { if (__auxval[AT_SYSINFO]) __syscall_entry = (void (*)(int, ...)) __auxval[AT_SYSINFO]; diff --git a/usr/include/klibc/sysconfig.h b/usr/include/klibc/sysconfig.h index ab947c0..c91d5b8 100644 --- a/usr/inclu...
2016 Jan 06
0
[klibc:master] i386: remove special handling of socketcall
...ub passes the socketcall # on stack - -#ifdef _REGPARM - pushl 16(%esp) # Arg 6 - pushl 16(%esp) # Arg 5 - pushl 16(%esp) # Arg 4 - pushl %ecx - pushl %edx - pushl %eax - movl %esp,%ecx -#else - leal 8(%esp),%ecx # Arguments already contiguous on-stack -#endif - - movl $__NR_socketcall,%eax - call *__syscall_entry - -#ifdef _REGPARM - addl $6*4, %esp -#endif - - cmpl $-4095,%eax # Error return? - - popl %ebx - - jb 1f - - negl %eax - movl %eax,errno - orl $-1,%eax # Return -1 -1: - ret - - .size __socketcall_common,.-__socketcall_common - -#endif diff --git a/usr/klibc/socketcalls.pl b/usr/klibc/socketcalls....