aboutsummaryrefslogtreecommitdiff
path: root/sys/i386/include/pcb.h
diff options
context:
space:
mode:
authorPeter Wemm <peter@FreeBSD.org>1997-04-26 11:46:25 +0000
committerPeter Wemm <peter@FreeBSD.org>1997-04-26 11:46:25 +0000
commit477a642cee98950f11ce12c94468b0156991a8eb (patch)
tree0b1362dc59c530540630177826b3e1cee9bb08bd /sys/i386/include/pcb.h
parent539fc95753f186bdf4f6d04d86484abd3c7f59c5 (diff)
downloadsrc-477a642cee98950f11ce12c94468b0156991a8eb.tar.gz
src-477a642cee98950f11ce12c94468b0156991a8eb.zip
Man the liferafts! Here comes the long awaited SMP -> -current merge!
There are various options documented in i386/conf/LINT, there is more to come over the next few days. The kernel should run pretty much "as before" without the options to activate SMP mode. There are a handful of known "loose ends" that need to be fixed, but have been put off since the SMP kernel is in a moderately good condition at the moment. This commit is the result of the tinkering and testing over the last 14 months by many people. A special thanks to Steve Passe for implementing the APIC code!
Notes
Notes: svn path=/head/; revision=25164
Diffstat (limited to 'sys/i386/include/pcb.h')
-rw-r--r--sys/i386/include/pcb.h12
1 files changed, 11 insertions, 1 deletions
diff --git a/sys/i386/include/pcb.h b/sys/i386/include/pcb.h
index ecfd8b2c315d..73ee223404cc 100644
--- a/sys/i386/include/pcb.h
+++ b/sys/i386/include/pcb.h
@@ -34,7 +34,7 @@
* SUCH DAMAGE.
*
* from: @(#)pcb.h 5.10 (Berkeley) 5/12/91
- * $Id: pcb.h,v 1.18 1997/02/22 09:34:56 peter Exp $
+ * $Id: pcb.h,v 1.19 1997/04/07 06:45:18 peter Exp $
*/
#ifndef _I386_PCB_H_
@@ -60,6 +60,8 @@ struct pcb {
u_char pcb_flags;
#define FP_SOFTFP 0x01 /* process using software fltng pnt emulator */
caddr_t pcb_onfault; /* copyin/out fault recovery */
+ u_long pcb_mpnest;
+ u_long __pcb_spare[7]; /* adjust to avoid core dump size changes */
#if 0 /* some day we may switch between procs that have their own i386tss */
struct i386tss pcb_tss;
u_char pcb_iomap[NPORT/sizeof(u_char)]; /* i/o port bitmap */
@@ -74,7 +76,15 @@ struct md_coredump {
};
#ifdef KERNEL
+
+#include "opt_smp.h"
+#include <machine/smp.h>
+#ifdef SMP
+#define curpcb (SMPcurpcb[cpunumber()])
+#else /* !SMP */
extern struct pcb *curpcb; /* our current running pcb */
+#endif /* SMP */
+
void savectx __P((struct pcb*));
#endif