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....