diff options
author | Konstantin Belousov <kib@FreeBSD.org> | 2008-07-30 11:30:55 +0000 |
---|---|---|
committer | Konstantin Belousov <kib@FreeBSD.org> | 2008-07-30 11:30:55 +0000 |
commit | 8f4a1f3a83890bf356cb7e72ce7ab652267d5a86 (patch) | |
tree | 4dc6b207d6260804b2d05dffc793c7d0907eeccd /sys/amd64/include/pcb.h | |
parent | 2209e8f1591179302901e50d7f6b0cad9953ccdb (diff) | |
download | src-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.h | 1 |
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 */ |