summaryrefslogtreecommitdiffstats
path: root/sys/amd64/include/pcb.h
diff options
context:
space:
mode:
authorluoqi <luoqi@FreeBSD.org>1999-04-28 01:04:33 +0000
committerluoqi <luoqi@FreeBSD.org>1999-04-28 01:04:33 +0000
commitaf7e9be5cce9a2ceb819f00b3f58014d23ab57cd (patch)
tree0e70c0e764f072d43041acca8ac52e30616dced3 /sys/amd64/include/pcb.h
parent0f4a245030e7f1acb03f8de0822a58b188fc0d28 (diff)
downloadFreeBSD-src-af7e9be5cce9a2ceb819f00b3f58014d23ab57cd.zip
FreeBSD-src-af7e9be5cce9a2ceb819f00b3f58014d23ab57cd.tar.gz
Enable vmspace sharing on SMP. Major changes are,
- %fs register is added to trapframe and saved/restored upon kernel entry/exit. - Per-cpu pages are no longer mapped at the same virtual address. - Each cpu now has a separate gdt selector table. A new segment selector is added to point to per-cpu pages, per-cpu global variables are now accessed through this new selector (%fs). The selectors in gdt table are rearranged for cache line optimization. - fask_vfork is now on as default for both UP and SMP. - Some aio code cleanup. Reviewed by: Alan Cox <alc@cs.rice.edu> John Dyson <dyson@iquest.net> Julian Elischer <julian@whistel.com> Bruce Evans <bde@zeta.org.au> David Greenman <dg@root.com>
Diffstat (limited to 'sys/amd64/include/pcb.h')
-rw-r--r--sys/amd64/include/pcb.h8
1 files changed, 5 insertions, 3 deletions
diff --git a/sys/amd64/include/pcb.h b/sys/amd64/include/pcb.h
index d76217f..9ab0856 100644
--- a/sys/amd64/include/pcb.h
+++ b/sys/amd64/include/pcb.h
@@ -34,7 +34,7 @@
* SUCH DAMAGE.
*
* from: @(#)pcb.h 5.10 (Berkeley) 5/12/91
- * $Id: pcb.h,v 1.25 1997/10/10 12:40:09 peter Exp $
+ * $Id: pcb.h,v 1.26 1998/02/03 21:27:50 bde Exp $
*/
#ifndef _I386_PCB_H_
@@ -43,6 +43,7 @@
/*
* Intel 386 process control block
*/
+#include <machine/globals.h>
#include <machine/npx.h>
struct pcb {
@@ -64,14 +65,13 @@ struct pcb {
#else
u_long pcb_mpnest_dontuse;
#endif
- int pcb_fs;
int pcb_gs;
#ifdef VM86
struct pcb_ext *pcb_ext; /* optional pcb extension */
#else
struct pcb_ext *pcb_ext_dontuse;
#endif
- u_long __pcb_spare[1]; /* adjust to avoid core dump size changes */
+ u_long __pcb_spare[2]; /* adjust to avoid core dump size changes */
};
/*
@@ -83,7 +83,9 @@ struct md_coredump {
#ifdef KERNEL
+#ifndef curpcb
extern struct pcb *curpcb; /* our current running pcb */
+#endif
void savectx __P((struct pcb *));
#endif
OpenPOWER on IntegriCloud