summaryrefslogtreecommitdiffstats
path: root/sys/sparc64
diff options
context:
space:
mode:
authorkmacy <kmacy@FreeBSD.org>2006-11-29 05:18:19 +0000
committerkmacy <kmacy@FreeBSD.org>2006-11-29 05:18:19 +0000
commit1eddb5f0f6e5d7ccf7c7b94f14b117d5780e7f1c (patch)
tree62ac0376d1ddd00a3b184fa42ecbd747b9d33248 /sys/sparc64
parent4e25808d336770e4a9f599a8a34f086a70b9f0f5 (diff)
downloadFreeBSD-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.c5
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));
OpenPOWER on IntegriCloud