|
Revision tags: perseant-exfatfs-base-20250801 netbsd-11-base netbsd-10-1-RELEASE perseant-exfatfs-base-20240630 perseant-exfatfs-base netbsd-10-0-RELEASE netbsd-10-0-RC6 netbsd-10-0-RC5 netbsd-10-0-RC4 netbsd-10-0-RC3 netbsd-10-0-RC2 thorpej-ifq-base thorpej-altq-separation-base netbsd-10-0-RC1 netbsd-10-base bouyer-sunxi-drm-base thorpej-i2c-spi-conf2-base thorpej-futex2-base thorpej-cfargs2-base thorpej-i2c-spi-conf-base
|
| #
1.53 |
|
26-Jul-2021 |
andvar |
Revert rename back to OFSET, since the name follows historical PGOFSET definition. Noted by tsutsui.
|
| #
1.52 |
|
24-Jul-2021 |
andvar |
Fix all remaining typos, mainly in comments but also in few definitions and log messages, reported by me in PR kern/54889. Also fixed some additional typos in comments, found on review of same files or typos.
|
|
Revision tags: cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base thorpej-cfargs-base thorpej-futex-base bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1 phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3 ad-namecache-base2 ad-namecache-base1 ad-namecache-base
|
| #
1.51 |
|
01-Dec-2019 |
ad |
branches: 1.51.12; sh3: make ASTs work as expected, and fix a few things in the TLB refill path. With help from uwe@ and martin@.
|
|
Revision tags: netbsd-8-3-RELEASE netbsd-9-4-RELEASE netbsd-9-3-RELEASE netbsd-9-2-RELEASE netbsd-9-1-RELEASE netbsd-8-2-RELEASE netbsd-9-0-RELEASE netbsd-9-0-RC2 netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 netbsd-8-1-RELEASE netbsd-8-1-RC1 isaki-audio2-base pgoyette-compat-merge-20190127 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728 netbsd-8-0-RELEASE phil-wifi-base pgoyette-compat-0625 netbsd-8-0-RC2 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 netbsd-8-0-RC1 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base tls-maxphys-base-20171202 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104
|
| #
1.50 |
|
02-Nov-2016 |
pgoyette |
branches: 1.50.16; * Split sys/kern/sys_process.c into three parts: 1 - ptrace(2) syscall for native emulation 2 - common ptrace(2) syscall code (shared with compat_netbsd32) 3 - support routines that are shared with PROCFS and/or KTRACE
* Add module glue for #1 and #2. Both modules will be built-in to the kernel if "options PTRACE" is included in the config file (this is the default, defined in sys/conf/std).
* Mark the ptrace(2) syscall as modular in syscalls.master (generated files will be committed shortly).
* Conditionalize all remaining portions of PTRACE code on a new kernel option PTRACE_HOOKS.
XXX Instead of PROCFS depending on 'options PTRACE', we should probably just add a procfs attribute to the sys/kern/sys_process.c file's entry in files.kern, and add PROCFS to the "#if defineds" for process_domem(). It's really confusing to have two different ways of requiring this file.
|
|
Revision tags: netbsd-7-2-RELEASE netbsd-7-1-2-RELEASE netbsd-7-1-1-RELEASE netbsd-7-1-RELEASE netbsd-7-1-RC2 netbsd-7-nhusb-base-20170116 netbsd-7-1-RC1 netbsd-7-0-2-RELEASE nick-nhusb-base-20161004 localcount-20160914 netbsd-7-nhusb-base pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 netbsd-7-0-1-RELEASE nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226 netbsd-7-0-RELEASE nick-nhusb-base-20150921 netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-7-base yamt-pagecache-base9 yamt-pagecache-tag8 netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE tls-earlyentropy-base riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE rmind-smpnet-nbase netbsd-6-1-1-RELEASE riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base rmind-smpnet-base netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 agc-symver-base netbsd-6-1-RC2 netbsd-6-1-RC1 yamt-pagecache-base8 netbsd-6-0-1-RELEASE yamt-pagecache-base7 matt-nb6-plus-nbase yamt-pagecache-base6 netbsd-6-0-RELEASE netbsd-6-0-RC2 tls-maxphys-base matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base10 yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-pre-base2 jmcneill-usbmp-base2 netbsd-6-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base rmind-uvmplock-nbase cherry-xenmp-base jym-xensuspend-nbase uebayasi-xip-base7 bouyer-quota2-nbase bouyer-quota2-base rmind-uvmplock-base jym-xensuspend-base
|
| #
1.49 |
|
04-Feb-2011 |
uwe |
branches: 1.49.14; 1.49.32; 1.49.36; Use __INTR_MASK_EXCEPTION_UNBLOCK combo.
|
| #
1.48 |
|
04-Feb-2011 |
uwe |
__EXCEPTION_ENTRY - "tst" already does logical AND, so shave off extra "mov" and "and" and just test PSL_MD bit directly.
While here - shuffle around instructions to construct PSL_MD to break dependencies.
While still here - only interrupt vector uses SSR and SPC as function args, so don't bother saving them here in r4 and r5. Other vectors don't need them and interrupt vector can just as well "stc" them directly before exceptions are enabled.
|
| #
1.47 |
|
28-Jan-2011 |
uwe |
Implement PT_STEP.
|
|
Revision tags: jruoho-x86intr-base matt-mips64-premerge-20101231
|
| #
1.46 |
|
20-Dec-2010 |
matt |
branches: 1.46.2; 1.46.4; Move counting of faults, traps, intrs, soft[intr]s, syscalls, and nswtch from uvmexp to per-cpu cpu_data and move them to 64bits. Remove unneeded includes of <uvm/uvm_extern.h> and/or <uvm/uvm.h>.
|
|
Revision tags: uebayasi-xip-base6 uebayasi-xip-base5 uebayasi-xip-base4 uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10 uebayasi-xip-base1 yamt-nfs-mp-base9 uebayasi-xip-base matt-premerge-20091211 yamt-nfs-mp-base8 yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 yamt-nfs-mp-base5 yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 nick-hppapmap-base2 nick-hppapmap-base
|
| #
1.45 |
|
23-Jan-2009 |
uwe |
branches: 1.45.6; Revert two previous revisions and just use __pmap_kernel directly again. There's no reason to pretend we don't know what kernel_pmap_ptr is.
|
| #
1.44 |
|
23-Jan-2009 |
uch |
__pmap_kernel is pointer not symbol from pmap.c 1.68. set correct address.
|
|
Revision tags: haad-dm-base2 haad-nbase2 haad-dm-base mjf-devfs2-base
|
| #
1.43 |
|
09-Dec-2008 |
pooka |
Make pmap_kernel() a MI macro for struct pmap *kernel_pmap_ptr, which is now the "API" provided by the pmap module. pmap_kernel() remains as the syntactic sugar.
Bonus cosmetics round: move all the pmap_t pointer typedefs into uvm_pmap.h.
Thanks to Greg Oster for providing cpu muscle for doing test builds.
|
|
Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 ad-audiomp2-base netbsd-5-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base wrstuden-revivesa-base
|
| #
1.42 |
|
08-Jun-2008 |
uwe |
branches: 1.42.4; 1.42.6; sh_vector_generic - reorder literals to improve locality of reference.
|
| #
1.41 |
|
08-Jun-2008 |
uwe |
Match PC address for single-stepping, program BARA = tf->tf_spc before returning from exception.
Makes single-stepping work on sh3 - without matching the address sh3 gets stuck at the instruction we are at, getting EXPEVT_BREAK before executing the instruction.
|
| #
1.40 |
|
06-Jun-2008 |
uwe |
Bah, got tf_ubc = 0 logic wrong in previous. Revert that part, it's bogus.
|
| #
1.39 |
|
06-Jun-2008 |
uwe |
Support single-stepping in DDB for sh3 too, it has different format of UBC registers.
|
|
Revision tags: yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-base2 yamt-nfs-mp-base2
|
| #
1.38 |
|
28-Apr-2008 |
martin |
branches: 1.38.2; Remove clause 3 and 4 from TNF licenses
|
|
Revision tags: yamt-pf42-baseX yamt-nfs-mp-base yamt-pf42-base ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14
|
| #
1.37 |
|
22-Mar-2008 |
uwe |
branches: 1.37.2; 1.37.4; Revert interrupt stack changes. There are some issues and, at least in the current form, they complicate implementation of fast software interrupts. I'd rather get fast softints in now and may be revisit interrupt stack later.
|
|
Revision tags: keiichi-mipv6-nbase keiichi-mipv6-base matt-armv6-nbase hpcarm-cleanup-base
|
| #
1.36 |
|
23-Feb-2008 |
uwe |
Now that __EXCEPTION_BLOCK does the right thing, preserving SR for us, we don't have to open-code it here.
|
|
Revision tags: nick-net80211-sync-base mjf-devfs-base
|
| #
1.35 |
|
14-Feb-2008 |
uwe |
branches: 1.35.2; 1.35.6; If we are returning from a nested interrupt we know we are returning to kernel so we can skip the PSL_MD check.
|
|
Revision tags: vmlocking2-base3 bouyer-xeni386-nbase bouyer-xeni386-base matt-armv6-base
|
| #
1.34 |
|
14-Dec-2007 |
uwe |
Use dedicated interrupt stack. Tested on hpcsh and landisk. This has been sitting in my tree for quite a while. While here s/top/bottom/ in a few places related to stacks to confirm to conventional terminology.
|
|
Revision tags: yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase vmlocking2-base1 jmcneill-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base jmcneill-pm-base reinoud-bufcleanup-base
|
| #
1.33 |
|
17-Oct-2007 |
garbled |
branches: 1.33.2; 1.33.4; 1.33.8; Merge the ppcoea-renovation branch to HEAD.
This branch was a major cleanup and rototill of many of the various OEA cpu based PPC ports that focused on sharing as much code as possible between the various ports to eliminate near-identical copies of files in every tree. Additionally there is a new PIC system that unifies the interface to interrupt code for all different OEA ppc arches. The work for this branch was done by a variety of people, too long to list here.
TODO: bebox still needs work to complete the transition to -renovation. ofppc still needs a bunch of work, which I will be looking at. ev64260 still needs to be renovated amigappc was not attempted.
NOTES: pmppc was removed as an arch, and moved to a evbppc target.
|
|
Revision tags: yamt-x86pmap-base3 yamt-x86pmap-base2 ppcoea-renovation-base vmlocking-base
|
| #
1.32 |
|
25-Sep-2007 |
uwe |
sh_vector_interrupt - while here, shave off a few cycles and run with exceptions disabled only the code that really needs to.
|
| #
1.31 |
|
24-Sep-2007 |
uwe |
Do RAS check in sh_vector_interrupt, don't abuse ast() for that.
|
|
Revision tags: nick-csl-alignment-base5 yamt-x86pmap-base
|
| #
1.30 |
|
20-Aug-2007 |
uwe |
branches: 1.30.2; 1.30.4; Add back comma between operands lost in s/tab/space/ cosmetics of 1.21 (as(1) doesn't mind, apparently)
|
|
Revision tags: nick-csl-alignment-base matt-mips64-base mjf-ufs-trans-base
|
| #
1.29 |
|
18-May-2007 |
uwe |
branches: 1.29.4; 1.29.8; Implement fast path TLB miss handling. Walk the page table without creating a trapframe, with exceptions disabled and using only BANK1 registers. If a valid pte is found, load it and return. Otherwise create a trapframe and proceed to the full-blown C handler.
|
|
Revision tags: yamt-idlelwp-base8 thorpej-atomic-base
|
| #
1.28 |
|
18-Mar-2007 |
uwe |
branches: 1.28.4; Don't do curupte checks if the miss address is in user space.
|
| #
1.27 |
|
17-Mar-2007 |
uwe |
Shave off few instructions when doing ldtlb.
|
| #
1.26 |
|
17-Mar-2007 |
uwe |
Cosmetic - fix local label name to match the name of the var it refers.
|
| #
1.25 |
|
16-Mar-2007 |
uwe |
Use dt to loop over md_upte in sh3_vector_tlbmiss. Saves a few instructions.
|
| #
1.24 |
|
15-Mar-2007 |
uwe |
Comment sh3_vector_tlbmiss. Same object code is generated.
|
| #
1.23 |
|
15-Mar-2007 |
uwe |
Arrange for data blocks to start on 32B cache line boundary.
|
| #
1.22 |
|
15-Mar-2007 |
uwe |
Use .L* for local labels. Misc cosmetic. Same object code is generated.
|
| #
1.21 |
|
14-Mar-2007 |
uwe |
branches: 1.21.2; s/TAB/space/ to separate instruction operands. There are quite a few cpp macros and long src operands anyway that destroy any intended "neatly lined up" effect that TAB was supposed to achieve.
White space change only, same object code is generated, but it is much easier on the eyes now.
|
|
Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 matt-nb4-arm-base netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 ad-audiomp-base post-newlock2-merge newlock2-nbase yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 yamt-splraiseipl-base2 newlock2-base netbsd-4-base
|
| #
1.20 |
|
21-Sep-2006 |
uwe |
branches: 1.20.2; 1.20.4; 1.20.8; 1.20.10; 1.20.12; Don't truncate TEA when we call tlb_exception from sh_vector_generic.
|
|
Revision tags: yamt-splraiseipl-base yamt-pdpolicy-base9 yamt-pdpolicy-base8 rpaulo-netinet-merge-pcb-base
|
| #
1.19 |
|
22-Aug-2006 |
uwe |
branches: 1.19.2; 1.19.4; Follow up to revision 1.16 (that only dealt with sh3). Pass untruncated va=TEA to tlb_exception() from sh4_vector_tlbmiss too.
|
|
Revision tags: abandoned-netbsd-4-base yamt-pdpolicy-base7 yamt-pdpolicy-base6 chap-midi-nbase gdamore-uart-base yamt-pdpolicy-base5 chap-midi-base yamt-pdpolicy-base4 yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 elad-kernelauth-base yamt-pdpolicy-base yamt-uio_vmspace-base5 simonb-timecounters-base
|
| #
1.18 |
|
08-Feb-2006 |
uwe |
branches: 1.18.2; sh3_vector_tlbmiss: don't waste perfectly good delay slots.
|
| #
1.17 |
|
08-Feb-2006 |
uwe |
While here, shave off few bytes and few cycles off of the sh3_vector_tlbmiss.
Since the registers we use are at the very end of address space, we can load their addresses as small immediate negative constants instead of loading them from memory.
|
| #
1.16 |
|
07-Feb-2006 |
uwe |
Pass untruncated va=TEA to tlb_exception(), not its VPN.
|
| #
1.15 |
|
22-Jan-2006 |
uwe |
branches: 1.15.2; 1.15.4; Use macros from <machine/asm.h>. Provide .size Provide LINTSTUBs.
|
| #
1.14 |
|
11-Dec-2005 |
christos |
branches: 1.14.2; merge ktrace-lwp.
|
|
Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 yamt-readahead-base3 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 yamt-readahead-base2 netbsd-3-0-RC2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base netbsd-3-0-RC1 yamt-vop-base3 netbsd-2-0-3-RELEASE yamt-vop-base2 thorpej-vnode-attr-base netbsd-2-1-RELEASE yamt-vop-base netbsd-2-1-RC6 netbsd-2-1-RC5 netbsd-2-1-RC4 netbsd-2-1-RC3 netbsd-2-1-RC2 netbsd-2-1-RC1 yamt-km-base4 netbsd-2-0-2-RELEASE yamt-km-base3 netbsd-3-base yamt-km-base2 yamt-km-base kent-audio2-base netbsd-2-0-1-RELEASE kent-audio1-beforemerge netbsd-2-base kent-audio1-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base ktrace-lwp-base
|
| #
1.13 |
|
24-Nov-2003 |
uwe |
branches: 1.13.16; Cosmetic: in sh_vector_generic use named label instead of numeric label for the curlwp address. Same object code is generated.
|
| #
1.12 |
|
24-Nov-2003 |
uwe |
Add __KERNEL_RCSID.
|
| #
1.11 |
|
24-Nov-2003 |
uwe |
Pass TEA to general_exception. While here add a couple of comments.
|
| #
1.10 |
|
18-Jan-2003 |
thorpej |
branches: 1.10.2; Merge the nathanw_sa branch.
|
|
Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 nathanw_sa_before_merge fvdl_fs64_base gmcgarry_ctxsw_base gmcgarry_ucred_base nathanw_sa_base kqueue-aftermerge kqueue-beforemerge netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base gehenna-devsw-base kqueue-base
|
| #
1.9 |
|
09-May-2002 |
uch |
branches: 1.9.6; rework general exception, and TLB exception handling for new pmap. all exception staffs are moved to exception.[ch]
|
| #
1.8 |
|
28-Apr-2002 |
uch |
Use "#define<tab>", white space nits.
|
| #
1.7 |
|
22-Apr-2002 |
uch |
make these compile with gcc -O0
|
| #
1.6 |
|
28-Mar-2002 |
uch |
add uvmexp.intrs++
|
| #
1.5 |
|
24-Mar-2002 |
uch |
Rework interrupt code. + Fully utilize SH SR.I[0:3] interrupt level. + software interrupt is emulated by TMU1, 2 one shot interrupt. + implement generic soft interrupts. + implement clockframe correctly.
|
|
Revision tags: eeh-devprop-base
|
| #
1.4 |
|
17-Mar-2002 |
uch |
cosmetic changes, fix comments.
|
| #
1.3 |
|
17-Mar-2002 |
uch |
kernel stack fix. old code simply P3 address converted to P1, it caused memory destruction when kernel stack grow over 1 page. new code use P3 address for kernel stack. but for the sake of debug, P1 kernel stack mode remain.
|
|
Revision tags: newlock-base ifpoll-base
|
| #
1.2 |
|
28-Feb-2002 |
uch |
branches: 1.2.2; 1.2.8; Change foo_r0_r1 macro in sh3/locore.h to foo(Rn, Rm)
|
| #
1.1 |
|
24-Feb-2002 |
uch |
Move common exception vector and scheduler code to sh3/sh3/exception_vector.S and sh3/sh3/locore_subr.S. exception vectors are installed by sh_cpu_init(). machine/locore.S contains kernel entry, interrupt handler, and some MD code.
|