Couple more small changes:
- Initialize proc0.p_addr just after setting up the kernel stack, to avoid getting NULL pointers in trap(). Change suggested by Gordon Ross. - Panic if main() returns. - Tidy up a couple of comments.
This commit is contained in:
parent
b7dcf10e80
commit
a72edba413
|
@ -1,4 +1,4 @@
|
||||||
/* $NetBSD: locore.s,v 1.59 1996/10/14 07:58:54 thorpej Exp $ */
|
/* $NetBSD: locore.s,v 1.60 1996/10/14 20:02:48 thorpej Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 1994, 1995 Gordon W. Ross
|
* Copyright (c) 1994, 1995 Gordon W. Ross
|
||||||
|
@ -1059,6 +1059,8 @@ Lenab1:
|
||||||
/* set kernel stack, user SP, and initial pcb */
|
/* set kernel stack, user SP, and initial pcb */
|
||||||
movl _proc0paddr,a1 | get proc0 pcb addr
|
movl _proc0paddr,a1 | get proc0 pcb addr
|
||||||
lea a1@(USPACE-4),sp | set kernel stack to end of area
|
lea a1@(USPACE-4),sp | set kernel stack to end of area
|
||||||
|
lea _proc0,a2 | initialize proc0.p_addr so that
|
||||||
|
movl a1,a2@(P_ADDR) | we don't deref NULL in trap()
|
||||||
movl #USRSTACK-4,a2
|
movl #USRSTACK-4,a2
|
||||||
movl a2,usp | init user SP
|
movl a2,usp | init user SP
|
||||||
movl a1,_curpcb | proc0 is running
|
movl a1,_curpcb | proc0 is running
|
||||||
|
@ -1079,9 +1081,9 @@ Lenab1:
|
||||||
MMUADDR(a0)
|
MMUADDR(a0)
|
||||||
orl #MMU_CEN,a0@(MMUCMD) | turn on external cache
|
orl #MMU_CEN,a0@(MMUCMD) | turn on external cache
|
||||||
Lnocache0:
|
Lnocache0:
|
||||||
/* final setup for C code */
|
/* Final setup for call to main(). */
|
||||||
jbsr _isrinit | be ready for stray ints
|
jbsr _isrinit | initialize interrupt handlers
|
||||||
jbsr _hp300_calibrate_delay | calibrate delay
|
jbsr _hp300_calibrate_delay | calibrate delay() loop
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Create a fake exception frame so that cpu_fork() can copy it.
|
* Create a fake exception frame so that cpu_fork() can copy it.
|
||||||
|
@ -1098,6 +1100,13 @@ Lnocache0:
|
||||||
|
|
||||||
jra _main | main()
|
jra _main | main()
|
||||||
|
|
||||||
|
pea Lmainreturned | Yow! Main returned!
|
||||||
|
jbsr _panic
|
||||||
|
/* NOTREACHED */
|
||||||
|
Lmainreturned:
|
||||||
|
.asciz "main() returned"
|
||||||
|
.even
|
||||||
|
|
||||||
.globl _proc_trampoline
|
.globl _proc_trampoline
|
||||||
_proc_trampoline:
|
_proc_trampoline:
|
||||||
movl a3,sp@-
|
movl a3,sp@-
|
||||||
|
|
Loading…
Reference in New Issue