diff options
author | jkim <jkim@FreeBSD.org> | 2010-08-02 18:12:30 +0000 |
---|---|---|
committer | jkim <jkim@FreeBSD.org> | 2010-08-02 18:12:30 +0000 |
commit | 936982be27175a0e0a9c3143403f58284dc59b88 (patch) | |
tree | 62fc41499bf6ec06de4d63f528e8b20eeb7fb067 /sys/amd64 | |
parent | 28966cf21c34e2307be68e8f87cdbbb387e7db9e (diff) | |
download | FreeBSD-src-936982be27175a0e0a9c3143403f58284dc59b88.zip FreeBSD-src-936982be27175a0e0a9c3143403f58284dc59b88.tar.gz |
Rearrange struct pcb. r177532 (CVS r1.64 of pcb.h) moved pcb_flags to make
better use of cache lines by placing it before pcb_save (now pcb_user_save),
which is moved to the end of pcb since r210777.
Diffstat (limited to 'sys/amd64')
-rw-r--r-- | sys/amd64/amd64/genassym.c | 2 | ||||
-rw-r--r-- | sys/amd64/include/pcb.h | 18 |
2 files changed, 10 insertions, 10 deletions
diff --git a/sys/amd64/amd64/genassym.c b/sys/amd64/amd64/genassym.c index c7d4c2c..d6ebec5 100644 --- a/sys/amd64/amd64/genassym.c +++ b/sys/amd64/amd64/genassym.c @@ -135,7 +135,6 @@ ASSYM(PCB_RIP, offsetof(struct pcb, pcb_rip)); ASSYM(PCB_FSBASE, offsetof(struct pcb, pcb_fsbase)); ASSYM(PCB_GSBASE, offsetof(struct pcb, pcb_gsbase)); ASSYM(PCB_KGSBASE, offsetof(struct pcb, pcb_kgsbase)); -ASSYM(PCB_FLAGS, offsetof(struct pcb, pcb_flags)); ASSYM(PCB_CR0, offsetof(struct pcb, pcb_cr0)); ASSYM(PCB_CR2, offsetof(struct pcb, pcb_cr2)); ASSYM(PCB_CR3, offsetof(struct pcb, pcb_cr3)); @@ -146,6 +145,7 @@ ASSYM(PCB_DR2, offsetof(struct pcb, pcb_dr2)); ASSYM(PCB_DR3, offsetof(struct pcb, pcb_dr3)); ASSYM(PCB_DR6, offsetof(struct pcb, pcb_dr6)); ASSYM(PCB_DR7, offsetof(struct pcb, pcb_dr7)); +ASSYM(PCB_FLAGS, offsetof(struct pcb, pcb_flags)); ASSYM(PCB_ONFAULT, offsetof(struct pcb, pcb_onfault)); ASSYM(PCB_GS32SD, offsetof(struct pcb, pcb_gs32sd)); ASSYM(PCB_TSSP, offsetof(struct pcb, pcb_tssp)); diff --git a/sys/amd64/include/pcb.h b/sys/amd64/include/pcb.h index 4cc0240..1f4ff22 100644 --- a/sys/amd64/include/pcb.h +++ b/sys/amd64/include/pcb.h @@ -55,15 +55,6 @@ struct pcb { register_t pcb_fsbase; register_t pcb_gsbase; register_t pcb_kgsbase; - u_long pcb_flags; -#define PCB_DBREGS 0x02 /* process using debug registers */ -#define PCB_KERNFPU 0x04 /* kernel uses fpu */ -#define PCB_FPUINITDONE 0x08 /* fpu state is initialized */ -#define PCB_USERFPUINITDONE 0x10 /* fpu user 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 */ - register_t pcb_cr0; register_t pcb_cr2; register_t pcb_cr3; @@ -75,6 +66,15 @@ struct pcb { register_t pcb_dr6; register_t pcb_dr7; + u_long pcb_flags; +#define PCB_DBREGS 0x02 /* process using debug registers */ +#define PCB_KERNFPU 0x04 /* kernel uses fpu */ +#define PCB_FPUINITDONE 0x08 /* fpu state is initialized */ +#define PCB_USERFPUINITDONE 0x10 /* fpu user 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 */ + uint16_t pcb_initial_fpucw; caddr_t pcb_onfault; /* copyin/out fault recovery */ |