diff options
author | kmacy <kmacy@FreeBSD.org> | 2006-11-29 05:18:19 +0000 |
---|---|---|
committer | kmacy <kmacy@FreeBSD.org> | 2006-11-29 05:18:19 +0000 |
commit | 1eddb5f0f6e5d7ccf7c7b94f14b117d5780e7f1c (patch) | |
tree | 62ac0376d1ddd00a3b184fa42ecbd747b9d33248 /sys/sparc64 | |
parent | 4e25808d336770e4a9f599a8a34f086a70b9f0f5 (diff) | |
download | FreeBSD-src-1eddb5f0f6e5d7ccf7c7b94f14b117d5780e7f1c.zip FreeBSD-src-1eddb5f0f6e5d7ccf7c7b94f14b117d5780e7f1c.tar.gz |
- Explicitly name the fields in pcb that we use to store trap state for later
retrieval, rather than using pad
- save the fault address in sfar for use by the alignment fixup handler
- mask off the trap number, so the context id doesn't confuse the UT_MAX
comparison
This change fixes alignment fixup handling which is needed for traceroute
to work in spite of its copious unaligned accesses
Diffstat (limited to 'sys/sparc64')
-rw-r--r-- | sys/sparc64/sparc64/genassym.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/sys/sparc64/sparc64/genassym.c b/sys/sparc64/sparc64/genassym.c index 142a03a..3bc1f86 100644 --- a/sys/sparc64/sparc64/genassym.c +++ b/sys/sparc64/sparc64/genassym.c @@ -231,6 +231,11 @@ ASSYM(PC_PMAP, offsetof(struct pcpu, pc_curpmap)); ASSYM(PC_TSBWBUF, offsetof(struct pcpu, pc_tsbwbuf)); ASSYM(PCB_KSTACK, offsetof(struct pcb, pcb_kstack)); +ASSYM(PCB_TSTATE, offsetof(struct pcb, pcb_tstate)); +ASSYM(PCB_TPC, offsetof(struct pcb, pcb_tpc)); +ASSYM(PCB_TNPC, offsetof(struct pcb, pcb_tnpc)); +ASSYM(PCB_TT, offsetof(struct pcb, pcb_tt)); +ASSYM(PCB_SFAR, offsetof(struct pcb, pcb_sfar)); ASSYM(INTR_REPORT_SIZE, INTR_REPORT_SIZE); ASSYM(PM_TSB_MISS_COUNT, offsetof(struct pmap, pm_tsb_miss_count)); ASSYM(PM_TSB_CAP_MISS_COUNT, offsetof(struct pmap, pm_tsb_cap_miss_count)); |