diff options
author | Andrea Bastoni <bastoni@cs.unc.edu> | 2009-12-17 21:48:38 -0500 |
---|---|---|
committer | Andrea Bastoni <bastoni@cs.unc.edu> | 2010-05-29 17:24:41 -0400 |
commit | 07ae7efcb81f95eb8e870cad21c7ba72573af7e8 (patch) | |
tree | cdd2a83dbf6e783cb86b726d5d3305d6cb87821f | |
parent | 5306b9834e9660e370fb8430ff22d4a47b4bbdf5 (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.h | 1 | ||||
-rw-r--r-- | arch/x86/include/asm/unistd_32.h | 2 | ||||
-rw-r--r-- | arch/x86/include/asm/unistd_64.h | 4 | ||||
-rw-r--r-- | include/litmus/unistd_32.h (renamed from include/litmus/unistd.h) | 2 | ||||
-rw-r--r-- | include/litmus/unistd_64.h | 37 |
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); | |||
112 | extern void smp_reschedule_interrupt(struct pt_regs *); | 112 | extern void smp_reschedule_interrupt(struct pt_regs *); |
113 | extern void smp_call_function_interrupt(struct pt_regs *); | 113 | extern void smp_call_function_interrupt(struct pt_regs *); |
114 | extern void smp_call_function_single_interrupt(struct pt_regs *); | 114 | extern void smp_call_function_single_interrupt(struct pt_regs *); |
115 | extern void smp_pull_timers_interrupt(struct pt_regs *); | ||
115 | #ifdef CONFIG_X86_32 | 116 | #ifdef CONFIG_X86_32 |
116 | extern void smp_invalidate_interrupt(struct pt_regs *); | 117 | extern 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 | ||