summaryrefslogtreecommitdiffstats
path: root/sys/i386/include/pcb.h
diff options
context:
space:
mode:
authorpeter <peter@FreeBSD.org>1997-04-07 06:45:18 +0000
committerpeter <peter@FreeBSD.org>1997-04-07 06:45:18 +0000
commit237ff29ca4d094b8fbf6c41083b91ddda096ae46 (patch)
treefd98f1b7401d6d278f016d433e18da2877120fa6 /sys/i386/include/pcb.h
parent3296644b21d18262198cb75be69ec76cd65f8c2b (diff)
downloadFreeBSD-src-237ff29ca4d094b8fbf6c41083b91ddda096ae46.zip
FreeBSD-src-237ff29ca4d094b8fbf6c41083b91ddda096ae46.tar.gz
No longer use an i386tss as the basis of our pcb - it wasn't particularly
convenient and makes life difficult for my next commit. We still need an i386tss to point to for the tss slot in the gdt, so we use a common tss shared between all processes. Note that this is going to break debugging until this series of commits is finished. core dumps will change again too. :-( we really need a more modern core dump format that doesn't depend on the pcb/upages. This change makes VM86 mode harder, but the following commits will remove a lot of constraints for the VM86 system, including the possibility of extending the pcb for an IO port map etc. Obtained from: bde
Diffstat (limited to 'sys/i386/include/pcb.h')
-rw-r--r--sys/i386/include/pcb.h27
1 files changed, 12 insertions, 15 deletions
diff --git a/sys/i386/include/pcb.h b/sys/i386/include/pcb.h
index 35a61ad..ecfd8b2 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$
+ * $Id: pcb.h,v 1.18 1997/02/22 09:34:56 peter Exp $
*/
#ifndef _I386_PCB_H_
@@ -47,26 +47,23 @@
#include <machine/npx.h>
struct pcb {
- struct i386tss pcb_tss;
-#define pcb_ksp pcb_tss.tss_esp0
-#define pcb_ptd pcb_tss.tss_cr3
-#define pcb_cr3 pcb_ptd
-#define pcb_pc pcb_tss.tss_eip
-#define pcb_psl pcb_tss.tss_eflags
-#define pcb_usp pcb_tss.tss_esp
-#define pcb_fp pcb_tss.tss_ebp
-#ifdef notyet
- u_char pcb_iomap[NPORT/sizeof(u_char)]; /* i/o port bitmap */
-#endif
+ int pcb_cr3;
+ int pcb_edi;
+ int pcb_esi;
+ int pcb_ebp;
+ int pcb_esp;
+ int pcb_ebx;
+ int pcb_eip;
caddr_t pcb_ldt; /* per process (user) LDT */
int pcb_ldt_len; /* number of LDT entries */
struct save87 pcb_savefpu; /* floating point state for 287/387 */
-/*
- * Software pcb (extension)
- */
u_char pcb_flags;
#define FP_SOFTFP 0x01 /* process using software fltng pnt emulator */
caddr_t pcb_onfault; /* copyin/out fault recovery */
+#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 */
+#endif
};
/*
OpenPOWER on IntegriCloud