From 07ae7efcb81f95eb8e870cad21c7ba72573af7e8 Mon Sep 17 00:00:00 2001 From: Andrea Bastoni Date: Thu, 17 Dec 2009 21:48:38 -0500 Subject: Add support for x86_64 architecture - Add syscall on x86_64 - Refactor __NR_sleep_next_period -> __NR_complete_job for both x86_32 and x86_64 --- arch/x86/include/asm/hw_irq.h | 1 + arch/x86/include/asm/unistd_32.h | 2 +- arch/x86/include/asm/unistd_64.h | 4 ++++ include/litmus/unistd.h | 23 ----------------------- include/litmus/unistd_32.h | 23 +++++++++++++++++++++++ include/litmus/unistd_64.h | 37 +++++++++++++++++++++++++++++++++++++ 6 files changed, 66 insertions(+), 24 deletions(-) delete mode 100644 include/litmus/unistd.h create mode 100644 include/litmus/unistd_32.h create mode 100644 include/litmus/unistd_64.h diff --git a/arch/x86/include/asm/hw_irq.h b/arch/x86/include/asm/hw_irq.h index 162e5f9646ed..68900e7dada8 100644 --- a/arch/x86/include/asm/hw_irq.h +++ b/arch/x86/include/asm/hw_irq.h @@ -112,6 +112,7 @@ extern asmlinkage void smp_irq_move_cleanup_interrupt(void); extern void smp_reschedule_interrupt(struct pt_regs *); extern void smp_call_function_interrupt(struct pt_regs *); extern void smp_call_function_single_interrupt(struct pt_regs *); +extern void smp_pull_timers_interrupt(struct pt_regs *); #ifdef CONFIG_X86_32 extern void smp_invalidate_interrupt(struct pt_regs *); #else diff --git a/arch/x86/include/asm/unistd_32.h b/arch/x86/include/asm/unistd_32.h index 34bc4204d373..f9b507f30d65 100644 --- a/arch/x86/include/asm/unistd_32.h +++ b/arch/x86/include/asm/unistd_32.h @@ -345,7 +345,7 @@ #define __NR_LITMUS 337 -#include "litmus/unistd.h" +#include "litmus/unistd_32.h" #ifdef __KERNEL__ diff --git a/arch/x86/include/asm/unistd_64.h b/arch/x86/include/asm/unistd_64.h index 8d3ad0adbc68..33b2003c0450 100644 --- a/arch/x86/include/asm/unistd_64.h +++ b/arch/x86/include/asm/unistd_64.h @@ -662,6 +662,10 @@ __SYSCALL(__NR_rt_tgsigqueueinfo, sys_rt_tgsigqueueinfo) #define __NR_perf_event_open 298 __SYSCALL(__NR_perf_event_open, sys_perf_event_open) +#define __NR_LITMUS 299 + +#include "litmus/unistd_64.h" + #ifndef __NO_STUBS #define __ARCH_WANT_OLD_READDIR #define __ARCH_WANT_OLD_STAT diff --git a/include/litmus/unistd.h b/include/litmus/unistd.h deleted file mode 100644 index 6fec5364adaf..000000000000 --- a/include/litmus/unistd.h +++ /dev/null @@ -1,23 +0,0 @@ -/* - * included from arch/x86/include/asm/unistd_32.h - * - * LITMUS^RT syscalls with "relative" numbers - */ -#define __LSC(x) (__NR_LITMUS + x) - -#define __NR_set_rt_task_param __LSC(0) -#define __NR_get_rt_task_param __LSC(1) -#define __NR_sleep_next_period __LSC(2) -#define __NR_od_open __LSC(3) -#define __NR_od_close __LSC(4) -#define __NR_fmlp_down __LSC(5) -#define __NR_fmlp_up __LSC(6) -#define __NR_srp_down __LSC(7) -#define __NR_srp_up __LSC(8) -#define __NR_query_job_no __LSC(9) -#define __NR_wait_for_job_release __LSC(10) -#define __NR_wait_for_ts_release __LSC(11) -#define __NR_release_ts __LSC(12) -#define __NR_null_call __LSC(13) - -#define NR_litmus_syscalls 14 diff --git a/include/litmus/unistd_32.h b/include/litmus/unistd_32.h new file mode 100644 index 000000000000..dbddc6523f8e --- /dev/null +++ b/include/litmus/unistd_32.h @@ -0,0 +1,23 @@ +/* + * included from arch/x86/include/asm/unistd_32.h + * + * LITMUS^RT syscalls with "relative" numbers + */ +#define __LSC(x) (__NR_LITMUS + x) + +#define __NR_set_rt_task_param __LSC(0) +#define __NR_get_rt_task_param __LSC(1) +#define __NR_complete_job __LSC(2) +#define __NR_od_open __LSC(3) +#define __NR_od_close __LSC(4) +#define __NR_fmlp_down __LSC(5) +#define __NR_fmlp_up __LSC(6) +#define __NR_srp_down __LSC(7) +#define __NR_srp_up __LSC(8) +#define __NR_query_job_no __LSC(9) +#define __NR_wait_for_job_release __LSC(10) +#define __NR_wait_for_ts_release __LSC(11) +#define __NR_release_ts __LSC(12) +#define __NR_null_call __LSC(13) + +#define NR_litmus_syscalls 14 diff --git a/include/litmus/unistd_64.h b/include/litmus/unistd_64.h new file mode 100644 index 000000000000..f0618e75348d --- /dev/null +++ b/include/litmus/unistd_64.h @@ -0,0 +1,37 @@ +/* + * included from arch/x86/include/asm/unistd_64.h + * + * LITMUS^RT syscalls with "relative" numbers + */ +#define __LSC(x) (__NR_LITMUS + x) + +#define __NR_set_rt_task_param __LSC(0) +__SYSCALL(__NR_set_rt_task_param, sys_set_rt_task_param) +#define __NR_get_rt_task_param __LSC(1) +__SYSCALL(__NR_get_rt_task_param, sys_get_rt_task_param) +#define __NR_complete_job __LSC(2) +__SYSCALL(__NR_complete_job, sys_complete_job) +#define __NR_od_open __LSC(3) +__SYSCALL(__NR_od_open, sys_od_open) +#define __NR_od_close __LSC(4) +__SYSCALL(__NR_od_close, sys_od_close) +#define __NR_fmlp_down __LSC(5) +__SYSCALL(__NR_fmlp_down, sys_fmlp_down) +#define __NR_fmlp_up __LSC(6) +__SYSCALL(__NR_fmlp_up, sys_fmlp_up) +#define __NR_srp_down __LSC(7) +__SYSCALL(__NR_srp_down, sys_srp_down) +#define __NR_srp_up __LSC(8) +__SYSCALL(__NR_srp_up, sys_srp_up) +#define __NR_query_job_no __LSC(9) +__SYSCALL(__NR_query_job_no, sys_query_job_no) +#define __NR_wait_for_job_release __LSC(10) +__SYSCALL(__NR_wait_for_job_release, sys_wait_for_job_release) +#define __NR_wait_for_ts_release __LSC(11) +__SYSCALL(__NR_wait_for_ts_release, sys_wait_for_ts_release) +#define __NR_release_ts __LSC(12) +__SYSCALL(__NR_release_ts, sys_release_ts) +#define __NR_null_call __LSC(13) +__SYSCALL(__NR_null_call, sys_null_call) + +#define NR_litmus_syscalls 14 -- cgit v1.2.2