aboutsummaryrefslogtreecommitdiff
path: root/sys/amd64/include/pcb.h
diff options
context:
space:
mode:
authorKonstantin Belousov <kib@FreeBSD.org>2008-07-30 11:30:55 +0000
committerKonstantin Belousov <kib@FreeBSD.org>2008-07-30 11:30:55 +0000
commit8f4a1f3a83890bf356cb7e72ce7ab652267d5a86 (patch)
tree4dc6b207d6260804b2d05dffc793c7d0907eeccd /sys/amd64/include/pcb.h
parent2209e8f1591179302901e50d7f6b0cad9953ccdb (diff)
downloadsrc-8f4a1f3a83890bf356cb7e72ce7ab652267d5a86.tar.gz
src-8f4a1f3a83890bf356cb7e72ce7ab652267d5a86.zip
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
Notes
Notes: svn path=/head/; revision=180992
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 2a1159816bc8..647d5c9255be 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 */