aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBjoern B. Brandenburg <bbb@cs.unc.edu>2009-12-08 12:18:38 -0500
committerBjoern B. Brandenburg <bbb@cs.unc.edu>2009-12-08 12:47:35 -0500
commitd51bd45799b03ebc04a82602a709e150ea9fae28 (patch)
tree59cfd1acd8aa4693ebb64aef1685d0a319a03c91
parent54d16459d3022f25e99ba0319d886870b1bc449a (diff)
add sparc64 arch-dependent bits
-rw-r--r--arch/sparc64/Kconfig2
-rw-r--r--arch/sparc64/kernel/smp.c6
-rw-r--r--arch/sparc64/kernel/systbls.S20
-rw-r--r--include/asm-sparc64/feather_trace.h11
-rw-r--r--include/asm-sparc64/unistd.h6
5 files changed, 43 insertions, 2 deletions
diff --git a/arch/sparc64/Kconfig b/arch/sparc64/Kconfig
index 10b212a1f9f5..8d90b5a63749 100644
--- a/arch/sparc64/Kconfig
+++ b/arch/sparc64/Kconfig
@@ -471,3 +471,5 @@ source "security/Kconfig"
471source "crypto/Kconfig" 471source "crypto/Kconfig"
472 472
473source "lib/Kconfig" 473source "lib/Kconfig"
474
475source "litmus/Kconfig"
diff --git a/arch/sparc64/kernel/smp.c b/arch/sparc64/kernel/smp.c
index c39944927f1a..55f1ebd74fa7 100644
--- a/arch/sparc64/kernel/smp.c
+++ b/arch/sparc64/kernel/smp.c
@@ -46,6 +46,9 @@
46#include <asm/ldc.h> 46#include <asm/ldc.h>
47#include <asm/hypervisor.h> 47#include <asm/hypervisor.h>
48 48
49#include <litmus/litmus.h>
50#include <litmus/trace.h>
51
49extern void calibrate_delay(void); 52extern void calibrate_delay(void);
50 53
51int sparc64_multi_core __read_mostly; 54int sparc64_multi_core __read_mostly;
@@ -1033,6 +1036,8 @@ void smp_receive_signal(int cpu)
1033void smp_receive_signal_client(int irq, struct pt_regs *regs) 1036void smp_receive_signal_client(int irq, struct pt_regs *regs)
1034{ 1037{
1035 clear_softint(1 << irq); 1038 clear_softint(1 << irq);
1039 set_tsk_need_resched(current);
1040 TS_SEND_RESCHED_END;
1036} 1041}
1037 1042
1038void smp_new_mmu_context_version_client(int irq, struct pt_regs *regs) 1043void smp_new_mmu_context_version_client(int irq, struct pt_regs *regs)
@@ -1413,6 +1418,7 @@ void __init smp_cpus_done(unsigned int max_cpus)
1413 1418
1414void smp_send_reschedule(int cpu) 1419void smp_send_reschedule(int cpu)
1415{ 1420{
1421 TS_SEND_RESCHED_START(cpu);
1416 smp_receive_signal(cpu); 1422 smp_receive_signal(cpu);
1417} 1423}
1418 1424
diff --git a/arch/sparc64/kernel/systbls.S b/arch/sparc64/kernel/systbls.S
index 06d10907d8ce..96a74d3ab11a 100644
--- a/arch/sparc64/kernel/systbls.S
+++ b/arch/sparc64/kernel/systbls.S
@@ -82,6 +82,13 @@ sys_call_table32:
82 .word compat_sys_set_mempolicy, compat_sys_kexec_load, compat_sys_move_pages, sys_getcpu, compat_sys_epoll_pwait 82 .word compat_sys_set_mempolicy, compat_sys_kexec_load, compat_sys_move_pages, sys_getcpu, compat_sys_epoll_pwait
83/*310*/ .word compat_sys_utimensat, compat_sys_signalfd, compat_sys_timerfd, sys_eventfd, compat_sys_fallocate 83/*310*/ .word compat_sys_utimensat, compat_sys_signalfd, compat_sys_timerfd, sys_eventfd, compat_sys_fallocate
84 84
85/*LITMUS, 315*/
86 .word sys_set_rt_task_param, sys_get_rt_task_param, sys_complete_job, sys_od_open, sys_od_close
87/*320*/
88 .word sys_fmlp_down, sys_fmlp_up, sys_srp_down, sys_srp_up, sys_query_job_no
89/*325*/ .word sys_wait_for_job_release, sys_wait_for_ts_release, sys_release_ts
90
91
85#endif /* CONFIG_COMPAT */ 92#endif /* CONFIG_COMPAT */
86 93
87 /* Now the 64-bit native Linux syscall table. */ 94 /* Now the 64-bit native Linux syscall table. */
@@ -154,6 +161,12 @@ sys_call_table:
154 .word sys_set_mempolicy, sys_kexec_load, sys_move_pages, sys_getcpu, sys_epoll_pwait 161 .word sys_set_mempolicy, sys_kexec_load, sys_move_pages, sys_getcpu, sys_epoll_pwait
155/*310*/ .word sys_utimensat, sys_signalfd, sys_timerfd, sys_eventfd, sys_fallocate 162/*310*/ .word sys_utimensat, sys_signalfd, sys_timerfd, sys_eventfd, sys_fallocate
156 163
164/*LITMUS, 315*/
165 .word sys_set_rt_task_param, sys_get_rt_task_param, sys_complete_job, sys_od_open, sys_od_close
166/*320*/
167 .word sys_fmlp_down, sys_fmlp_up, sys_srp_down, sys_srp_up, sys_query_job_no
168/*325*/ .word sys_wait_for_job_release, sys_wait_for_ts_release, sys_release_ts, sys_null_call
169
157#if defined(CONFIG_SUNOS_EMUL) || defined(CONFIG_SOLARIS_EMUL) || \ 170#if defined(CONFIG_SUNOS_EMUL) || defined(CONFIG_SOLARIS_EMUL) || \
158 defined(CONFIG_SOLARIS_EMUL_MODULE) 171 defined(CONFIG_SOLARIS_EMUL_MODULE)
159 /* Now the 32-bit SunOS syscall table. */ 172 /* Now the 32-bit SunOS syscall table. */
@@ -271,6 +284,11 @@ sunos_sys_table:
271 .word sunos_nosys, sunos_nosys, sunos_nosys 284 .word sunos_nosys, sunos_nosys, sunos_nosys
272 .word sunos_nosys 285 .word sunos_nosys
273/*310*/ .word sunos_nosys, sunos_nosys, sunos_nosys 286/*310*/ .word sunos_nosys, sunos_nosys, sunos_nosys
274 .word sunos_nosys, sunos_nosys 287 .word sunos_nosys, sunos_nosys, sunos_nosys
288 .word sunos_nosys, sunos_nosys, sunos_nosys
289 .word sunos_nosys
290/*320*/ .word sunos_nosys, sunos_nosys, sunos_nosys
291 .word sunos_nosys, sunos_nosys, sunos_nosys
292 .word sunos_nosys, sunos_nosys, sunos_nosys
275 293
276#endif 294#endif
diff --git a/include/asm-sparc64/feather_trace.h b/include/asm-sparc64/feather_trace.h
new file mode 100644
index 000000000000..869a3e003628
--- /dev/null
+++ b/include/asm-sparc64/feather_trace.h
@@ -0,0 +1,11 @@
1#ifndef _ARCH_FEATHER_TRACE_H
2#define _ARCH_FEATHER_TRACE_H
3
4#include <asm/timex.h>
5
6static inline unsigned long long ft_timestamp(void)
7{
8 return get_cycles();
9}
10
11#endif
diff --git a/include/asm-sparc64/unistd.h b/include/asm-sparc64/unistd.h
index cb751b4d0f56..ebebde69c34d 100644
--- a/include/asm-sparc64/unistd.h
+++ b/include/asm-sparc64/unistd.h
@@ -333,7 +333,11 @@
333#define __NR_eventfd 313 333#define __NR_eventfd 313
334#define __NR_fallocate 314 334#define __NR_fallocate 314
335 335
336#define NR_SYSCALLS 315 336#define __NR_LITMUS 315
337
338#include "litmus/unistd.h"
339
340#define NR_SYSCALLS 315 + NR_litmus_syscalls
337 341
338#ifdef __KERNEL__ 342#ifdef __KERNEL__
339/* sysconf options, for SunOS compatibility */ 343/* sysconf options, for SunOS compatibility */