aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrea Bastoni <bastoni@cs.unc.edu>2009-12-17 21:48:38 -0500
committerAndrea Bastoni <bastoni@cs.unc.edu>2010-05-29 17:24:41 -0400
commit07ae7efcb81f95eb8e870cad21c7ba72573af7e8 (patch)
treecdd2a83dbf6e783cb86b726d5d3305d6cb87821f
parent5306b9834e9660e370fb8430ff22d4a47b4bbdf5 (diff)
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
-rw-r--r--arch/x86/include/asm/hw_irq.h1
-rw-r--r--arch/x86/include/asm/unistd_32.h2
-rw-r--r--arch/x86/include/asm/unistd_64.h4
-rw-r--r--include/litmus/unistd_32.h (renamed from include/litmus/unistd.h)2
-rw-r--r--include/litmus/unistd_64.h37
5 files changed, 44 insertions, 2 deletions
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);
112extern void smp_reschedule_interrupt(struct pt_regs *); 112extern void smp_reschedule_interrupt(struct pt_regs *);
113extern void smp_call_function_interrupt(struct pt_regs *); 113extern void smp_call_function_interrupt(struct pt_regs *);
114extern void smp_call_function_single_interrupt(struct pt_regs *); 114extern void smp_call_function_single_interrupt(struct pt_regs *);
115extern void smp_pull_timers_interrupt(struct pt_regs *);
115#ifdef CONFIG_X86_32 116#ifdef CONFIG_X86_32
116extern void smp_invalidate_interrupt(struct pt_regs *); 117extern void smp_invalidate_interrupt(struct pt_regs *);
117#else 118#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 @@
345 345
346#define __NR_LITMUS 337 346#define __NR_LITMUS 337
347 347
348#include "litmus/unistd.h" 348#include "litmus/unistd_32.h"
349 349
350#ifdef __KERNEL__ 350#ifdef __KERNEL__
351 351
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)
662#define __NR_perf_event_open 298 662#define __NR_perf_event_open 298
663__SYSCALL(__NR_perf_event_open, sys_perf_event_open) 663__SYSCALL(__NR_perf_event_open, sys_perf_event_open)
664 664
665#define __NR_LITMUS 299
666
667#include "litmus/unistd_64.h"
668
665#ifndef __NO_STUBS 669#ifndef __NO_STUBS
666#define __ARCH_WANT_OLD_READDIR 670#define __ARCH_WANT_OLD_READDIR
667#define __ARCH_WANT_OLD_STAT 671#define __ARCH_WANT_OLD_STAT
diff --git a/include/litmus/unistd.h b/include/litmus/unistd_32.h
index 6fec5364adaf..dbddc6523f8e 100644
--- a/include/litmus/unistd.h
+++ b/include/litmus/unistd_32.h
@@ -7,7 +7,7 @@
7 7
8#define __NR_set_rt_task_param __LSC(0) 8#define __NR_set_rt_task_param __LSC(0)
9#define __NR_get_rt_task_param __LSC(1) 9#define __NR_get_rt_task_param __LSC(1)
10#define __NR_sleep_next_period __LSC(2) 10#define __NR_complete_job __LSC(2)
11#define __NR_od_open __LSC(3) 11#define __NR_od_open __LSC(3)
12#define __NR_od_close __LSC(4) 12#define __NR_od_close __LSC(4)
13#define __NR_fmlp_down __LSC(5) 13#define __NR_fmlp_down __LSC(5)
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 @@
1/*
2 * included from arch/x86/include/asm/unistd_64.h
3 *
4 * LITMUS^RT syscalls with "relative" numbers
5 */
6#define __LSC(x) (__NR_LITMUS + x)
7
8#define __NR_set_rt_task_param __LSC(0)
9__SYSCALL(__NR_set_rt_task_param, sys_set_rt_task_param)
10#define __NR_get_rt_task_param __LSC(1)
11__SYSCALL(__NR_get_rt_task_param, sys_get_rt_task_param)
12#define __NR_complete_job __LSC(2)
13__SYSCALL(__NR_complete_job, sys_complete_job)
14#define __NR_od_open __LSC(3)
15__SYSCALL(__NR_od_open, sys_od_open)
16#define __NR_od_close __LSC(4)
17__SYSCALL(__NR_od_close, sys_od_close)
18#define __NR_fmlp_down __LSC(5)
19__SYSCALL(__NR_fmlp_down, sys_fmlp_down)
20#define __NR_fmlp_up __LSC(6)
21__SYSCALL(__NR_fmlp_up, sys_fmlp_up)
22#define __NR_srp_down __LSC(7)
23__SYSCALL(__NR_srp_down, sys_srp_down)
24#define __NR_srp_up __LSC(8)
25__SYSCALL(__NR_srp_up, sys_srp_up)
26#define __NR_query_job_no __LSC(9)
27__SYSCALL(__NR_query_job_no, sys_query_job_no)
28#define __NR_wait_for_job_release __LSC(10)
29__SYSCALL(__NR_wait_for_job_release, sys_wait_for_job_release)
30#define __NR_wait_for_ts_release __LSC(11)
31__SYSCALL(__NR_wait_for_ts_release, sys_wait_for_ts_release)
32#define __NR_release_ts __LSC(12)
33__SYSCALL(__NR_release_ts, sys_release_ts)
34#define __NR_null_call __LSC(13)
35__SYSCALL(__NR_null_call, sys_null_call)
36
37#define NR_litmus_syscalls 14