]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
Split the low level trap code into trap, interrupt and syscall, its
authorjake <jake@FreeBSD.org>
Sun, 30 Sep 2001 19:41:20 +0000 (19:41 +0000)
committerjake <jake@FreeBSD.org>
Sun, 30 Sep 2001 19:41:20 +0000 (19:41 +0000)
commit9f3535edc71a604511fd344a17ed72e7e21db7a1
treec446fb1da2d1ef8797fa21ef342a308751ed91dc
parent8b63e530255f212acc985bf964eb624f206fc8d1
Split the low level trap code into trap, interrupt and syscall, its
easier and hopefully this code is done changing radically.

Don't use the mmu tlb register to address the kernel page table, nor
the 8k pointer register.  The hardware will do some of the page table
lookup by storing the the base address in an internal register and
calculating the address of the tte in the table.  However it is limited
to a 1 meg tsb, which only maps 512 megs.  The kernel page table only
has one level, so its easy to just do it by hand, which has the advantage
of supporting abitrary amounts of kvm and only costs a few more instructions.

Increase kvm to 1 gig now that its easy to do so and so we don't waste
most of a 4 meg page.

Fix some traces.  Fix more proc locking.

Call tsb_stte_promote if we get a soft fault on a mapping in the upper
levels of the tsb.  If there is an invalid or unreferenced mapping
in the primary tsb, it will be replaced.

Immediately fail for faults occuring in {f,s}uswintr.
sys/sparc64/include/intr_machdep.h
sys/sparc64/sparc64/exception.S
sys/sparc64/sparc64/exception.s
sys/sparc64/sparc64/genassym.c
sys/sparc64/sparc64/trap.c