[PATCH 30/40] UAPI: Fix x86_64 system call count and generation [ver#3]

From: David Howells
Date: Thu Jul 28 2011 - 11:54:47 EST


The x86_64 system call count and system call pointer table are generated by
#undef'ing the guard on asm/unistd.h and reincluding it with the __SYSCALL()
macro suitably set.

To achieve this once the header has been split, the UAPI header guard must also
be #undef'd.

Signed-off-by: David Howells <dhowells@xxxxxxxxxx>
---

arch/x86/kernel/asm-offsets_64.c | 1 +
arch/x86/kernel/syscall_64.c | 2 ++
2 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/arch/x86/kernel/asm-offsets_64.c b/arch/x86/kernel/asm-offsets_64.c
index e72a119..8cad3e3 100644
--- a/arch/x86/kernel/asm-offsets_64.c
+++ b/arch/x86/kernel/asm-offsets_64.c
@@ -3,6 +3,7 @@
#define __NO_STUBS 1
#undef __SYSCALL
#undef _ASM_X86_UNISTD_64_H
+#undef _UAPI_ASM_X86_UNISTD_64_H
#define __SYSCALL(nr, sym) [nr] = 1,
static char syscalls[] = {
#include <asm/unistd.h>
diff --git a/arch/x86/kernel/syscall_64.c b/arch/x86/kernel/syscall_64.c
index de87d60..b659abc 100644
--- a/arch/x86/kernel/syscall_64.c
+++ b/arch/x86/kernel/syscall_64.c
@@ -9,11 +9,13 @@

#define __SYSCALL(nr, sym) extern asmlinkage void sym(void) ;
#undef _ASM_X86_UNISTD_64_H
+#undef _UAPI_ASM_X86_UNISTD_64_H
#include <asm/unistd_64.h>

#undef __SYSCALL
#define __SYSCALL(nr, sym) [nr] = sym,
#undef _ASM_X86_UNISTD_64_H
+#undef _UAPI_ASM_X86_UNISTD_64_H

typedef void (*sys_call_ptr_t)(void);


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/