diff options
author | jb <jb@FreeBSD.org> | 2006-10-26 21:42:22 +0000 |
---|---|---|
committer | jb <jb@FreeBSD.org> | 2006-10-26 21:42:22 +0000 |
commit | f82c7997354f95e680341bb8e10136ded5fd15eb (patch) | |
tree | 2136d90e7e60f4ef25fe147499787d0e6a155b82 /sys/arm | |
parent | b3e38fbc69f126c6cc49a0a6e45096d6c01b7c43 (diff) | |
download | FreeBSD-src-f82c7997354f95e680341bb8e10136ded5fd15eb.zip FreeBSD-src-f82c7997354f95e680341bb8e10136ded5fd15eb.tar.gz |
Make KSE a kernel option, turned on by default in all GENERIC
kernel configs except sun4v (which doesn't process signals properly
with KSE).
Reviewed by: davidxu@
Diffstat (limited to 'sys/arm')
-rw-r--r-- | sys/arm/arm/trap.c | 6 | ||||
-rw-r--r-- | sys/arm/at91/kb920x_machdep.c | 4 | ||||
-rw-r--r-- | sys/arm/conf/EP80219 | 1 | ||||
-rw-r--r-- | sys/arm/conf/IQ31244 | 1 | ||||
-rw-r--r-- | sys/arm/conf/KB920X | 1 | ||||
-rw-r--r-- | sys/arm/conf/SIMICS | 1 | ||||
-rw-r--r-- | sys/arm/conf/SKYEYE | 1 | ||||
-rw-r--r-- | sys/arm/sa11x0/assabet_machdep.c | 4 | ||||
-rw-r--r-- | sys/arm/xscale/i80321/ep80219_machdep.c | 4 | ||||
-rw-r--r-- | sys/arm/xscale/i80321/iq31244_machdep.c | 4 |
10 files changed, 27 insertions, 0 deletions
diff --git a/sys/arm/arm/trap.c b/sys/arm/arm/trap.c index b50b6b7..884d540 100644 --- a/sys/arm/arm/trap.c +++ b/sys/arm/arm/trap.c @@ -263,8 +263,10 @@ data_abort_handler(trapframe_t *tf) td->td_frame = tf; if (td->td_ucred != td->td_proc->p_ucred) cred_update_thread(td); +#ifdef KSE if (td->td_pflags & TDP_SA) thread_user_enter(td); +#endif } /* Grab the current pcb */ @@ -730,8 +732,10 @@ prefetch_abort_handler(trapframe_t *tf) td->td_frame = tf; if (td->td_ucred != td->td_proc->p_ucred) cred_update_thread(td); +#ifdef KSE if (td->td_proc->p_flag & P_SA) thread_user_enter(td); +#endif } fault_pc = tf->tf_pc; if (td->td_md.md_spinlock_count == 0) { @@ -1005,8 +1009,10 @@ swi_handler(trapframe_t *frame) td->td_frame = frame; td->td_pticks = 0; +#ifdef KSE if (td->td_proc->p_flag & P_SA) thread_user_enter(td); +#endif /* * Make sure the program counter is correctly aligned so we * don't take an alignment fault trying to read the opcode. diff --git a/sys/arm/at91/kb920x_machdep.c b/sys/arm/at91/kb920x_machdep.c index f3452a5..0467792 100644 --- a/sys/arm/at91/kb920x_machdep.c +++ b/sys/arm/at91/kb920x_machdep.c @@ -456,7 +456,11 @@ initarm(void *arg, void *arg2) undefined_handler_address = (u_int)undefinedinstruction_bounce; undefined_init(); +#ifdef KSE proc_linkup(&proc0, &ksegrp0, &thread0); +#else + proc_linkup(&proc0, &thread0); +#endif thread0.td_kstack = kernelstack.pv_va; thread0.td_pcb = (struct pcb *) (thread0.td_kstack + KSTACK_PAGES * PAGE_SIZE) - 1; diff --git a/sys/arm/conf/EP80219 b/sys/arm/conf/EP80219 index 14308aa..fd3493c 100644 --- a/sys/arm/conf/EP80219 +++ b/sys/arm/conf/EP80219 @@ -59,6 +59,7 @@ options KBD_INSTALL_CDEV # install a CDEV entry in /dev options GEOM_GPT # GUID Partition Tables. options GEOM_MBR # DOS/MBR partitioning options GEOM_LABEL # Providers labelization. +options KSE # KSE support options BOOTP options BOOTP_NFSROOT diff --git a/sys/arm/conf/IQ31244 b/sys/arm/conf/IQ31244 index 8cbb079..17495ff 100644 --- a/sys/arm/conf/IQ31244 +++ b/sys/arm/conf/IQ31244 @@ -61,6 +61,7 @@ options BOOTP_NFSV3 options BOOTP_WIRED_TO=em0 options BOOTP_COMPAT #options PREEMPTION +options KSE # KSE support device genclock device loop device ether diff --git a/sys/arm/conf/KB920X b/sys/arm/conf/KB920X index a865cce8..33f5aaa 100644 --- a/sys/arm/conf/KB920X +++ b/sys/arm/conf/KB920X @@ -60,6 +60,7 @@ options MUTEX_NOINLINE options RWLOCK_NOINLINE options NO_FFS_SNAPSHOT options NO_SWAPPING +options KSE # KSE support device genclock device random device pty diff --git a/sys/arm/conf/SIMICS b/sys/arm/conf/SIMICS index ab24a09..8eeda57 100644 --- a/sys/arm/conf/SIMICS +++ b/sys/arm/conf/SIMICS @@ -53,6 +53,7 @@ options SYSVSHM #SYSV-style shared memory options SYSVMSG #SYSV-style message queues options SYSVSEM #SYSV-style semaphores options _KPOSIX_PRIORITY_SCHEDULING #Posix P1003_1B real-time extensions +options KSE # KSE support device genclock device loop device ether diff --git a/sys/arm/conf/SKYEYE b/sys/arm/conf/SKYEYE index 8a52f94..ad66fa4 100644 --- a/sys/arm/conf/SKYEYE +++ b/sys/arm/conf/SKYEYE @@ -58,6 +58,7 @@ options SYSVMSG #SYSV-style message queues options SYSVSEM #SYSV-style semaphores options _KPOSIX_PRIORITY_SCHEDULING #Posix P1003_1B real-time extensions options KBD_INSTALL_CDEV # install a CDEV entry in /dev +options KSE # KSE support device genclock device loop device ether diff --git a/sys/arm/sa11x0/assabet_machdep.c b/sys/arm/sa11x0/assabet_machdep.c index b5d6eb3..42a177f 100644 --- a/sys/arm/sa11x0/assabet_machdep.c +++ b/sys/arm/sa11x0/assabet_machdep.c @@ -423,7 +423,11 @@ initarm(void *arg, void *arg2) /* Set stack for exception handlers */ +#ifdef KSE proc_linkup(&proc0, &ksegrp0, &thread0); +#else + proc_linkup(&proc0, &thread0); +#endif thread0.td_kstack = kernelstack.pv_va; thread0.td_pcb = (struct pcb *) (thread0.td_kstack + KSTACK_PAGES * PAGE_SIZE) - 1; diff --git a/sys/arm/xscale/i80321/ep80219_machdep.c b/sys/arm/xscale/i80321/ep80219_machdep.c index 59bd7ca3..72ba79b 100644 --- a/sys/arm/xscale/i80321/ep80219_machdep.c +++ b/sys/arm/xscale/i80321/ep80219_machdep.c @@ -429,7 +429,11 @@ initarm(void *arg, void *arg2) undefined_handler_address = (u_int)undefinedinstruction_bounce; undefined_init(); +#ifdef KSE proc_linkup(&proc0, &ksegrp0, &thread0); +#else + proc_linkup(&proc0, &thread0); +#endif thread0.td_kstack = kernelstack.pv_va; thread0.td_pcb = (struct pcb *) (thread0.td_kstack + KSTACK_PAGES * PAGE_SIZE) - 1; diff --git a/sys/arm/xscale/i80321/iq31244_machdep.c b/sys/arm/xscale/i80321/iq31244_machdep.c index 16c22d4..3c8279a 100644 --- a/sys/arm/xscale/i80321/iq31244_machdep.c +++ b/sys/arm/xscale/i80321/iq31244_machdep.c @@ -427,7 +427,11 @@ initarm(void *arg, void *arg2) undefined_handler_address = (u_int)undefinedinstruction_bounce; undefined_init(); +#ifdef KSE proc_linkup(&proc0, &ksegrp0, &thread0); +#else + proc_linkup(&proc0, &thread0); +#endif thread0.td_kstack = kernelstack.pv_va; thread0.td_pcb = (struct pcb *) (thread0.td_kstack + KSTACK_PAGES * PAGE_SIZE) - 1; |