diff options
author | bde <bde@FreeBSD.org> | 1997-06-07 04:36:10 +0000 |
---|---|---|
committer | bde <bde@FreeBSD.org> | 1997-06-07 04:36:10 +0000 |
commit | 6babbddd762aaa221ade16215d4b4e93bb669f79 (patch) | |
tree | 9369720c6fe0f8bc2adda5e0852adf5a669345ef /sys/amd64/include/pcb.h | |
parent | 093956d0d4afe268c9113da9f84c22d843b9e750 (diff) | |
download | FreeBSD-src-6babbddd762aaa221ade16215d4b4e93bb669f79.zip FreeBSD-src-6babbddd762aaa221ade16215d4b4e93bb669f79.tar.gz |
Preserve %fs and %gs across context switches. This has a relatively low
cost since it is only done in cpu_switch(), not for every exception.
The extra state is kept in the pcb, and handled much like the npx state,
with similar deficiencies (the state is not preserved across signal
handlers, and error handling loses state).
Diffstat (limited to 'sys/amd64/include/pcb.h')
-rw-r--r-- | sys/amd64/include/pcb.h | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/sys/amd64/include/pcb.h b/sys/amd64/include/pcb.h index 1cbca02..c93ed87 100644 --- a/sys/amd64/include/pcb.h +++ b/sys/amd64/include/pcb.h @@ -34,7 +34,7 @@ * SUCH DAMAGE. * * from: @(#)pcb.h 5.10 (Berkeley) 5/12/91 - * $Id: pcb.h,v 1.20 1997/04/26 11:45:39 peter Exp $ + * $Id: pcb.h,v 1.21 1997/05/07 19:49:32 peter Exp $ */ #ifndef _I386_PCB_H_ @@ -64,7 +64,9 @@ struct pcb { #define FP_SOFTFP 0x01 /* process using software fltng pnt emulator */ caddr_t pcb_onfault; /* copyin/out fault recovery */ u_long pcb_mpnest; - u_long __pcb_spare[7]; /* adjust to avoid core dump size changes */ + int pcb_fs; + int pcb_gs; + u_long __pcb_spare[5]; /* adjust to avoid core dump size changes */ #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 */ |