summaryrefslogtreecommitdiffstats
path: root/sys/amd64/include/pcb.h
diff options
context:
space:
mode:
authorkib <kib@FreeBSD.org>2008-07-30 11:30:55 +0000
committerkib <kib@FreeBSD.org>2008-07-30 11:30:55 +0000
commit19bf5e280722ebf99ad48917f4b8d0af5dbd14e1 (patch)
tree4dc6b207d6260804b2d05dffc793c7d0907eeccd /sys/amd64/include/pcb.h
parent13b6ce6962eaf8de9b16589dde1fa06b5947d5f8 (diff)
downloadFreeBSD-src-19bf5e280722ebf99ad48917f4b8d0af5dbd14e1.zip
FreeBSD-src-19bf5e280722ebf99ad48917f4b8d0af5dbd14e1.tar.gz
Bring back the save/restore of the %ds, %es, %fs and %gs registers for
the 32bit images on amd64. Change the semantic of the PCB_32BIT pcb flag to request the context switch code to operate on the segment registers. Its previous meaning of saving or restoring the %gs base offset is assigned to the new PCB_GS32BIT flag. FreeBSD 32bit image activator sets the PCB_32BIT flag, while Linux 32bit emulation sets PCB_32BIT | PCB_GS32BIT. Reviewed by: peter MFC after: 2 weeks
Diffstat (limited to 'sys/amd64/include/pcb.h')
-rw-r--r--sys/amd64/include/pcb.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/amd64/include/pcb.h b/sys/amd64/include/pcb.h
index 2a11598..647d5c9 100644
--- a/sys/amd64/include/pcb.h
+++ b/sys/amd64/include/pcb.h
@@ -70,6 +70,7 @@ struct pcb {
struct savefpu pcb_save;
#define PCB_DBREGS 0x02 /* process using debug registers */
#define PCB_FPUINITDONE 0x08 /* fpu state is initialized */
+#define PCB_GS32BIT 0x20 /* linux gs switch */
#define PCB_32BIT 0x40 /* process has 32 bit context (segs etc) */
#define PCB_FULLCTX 0x80 /* full context restore on sysret */
OpenPOWER on IntegriCloud