diff options
author | kib <kib@FreeBSD.org> | 2008-07-30 11:30:55 +0000 |
---|---|---|
committer | kib <kib@FreeBSD.org> | 2008-07-30 11:30:55 +0000 |
commit | 19bf5e280722ebf99ad48917f4b8d0af5dbd14e1 (patch) | |
tree | 4dc6b207d6260804b2d05dffc793c7d0907eeccd /sys/amd64/include/pcb.h | |
parent | 13b6ce6962eaf8de9b16589dde1fa06b5947d5f8 (diff) | |
download | FreeBSD-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.h | 1 |
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 */ |