SCCS-vsn: sys/vax/vax/Locore.c 4.11
SCCS-vsn: sys/vax/vax/locore.s 4.49
-/* Locore.c 4.10 81/05/05 */
+/* Locore.c 4.11 81/05/15 */
struct rpb rpb;
int intstack[3*128];
struct rpb rpb;
int intstack[3*128];
+int masterpaddr; /* p_addr of current process on master cpu */
+
struct user u;
doadump() { dumpsys(); }
struct user u;
doadump() { dumpsys(); }
-/* locore.s 4.48 81/05/13 */
+/* locore.s 4.49 81/05/15 */
#include "../h/mtpr.h"
#include "../h/trap.h"
#include "../h/mtpr.h"
#include "../h/trap.h"
#define _rpbmap _Sysmap+8 # scb, UNIvec, rpb, istack*4
bicl2 $PG_PROT,_rpbmap
bisl2 $PG_KW,_rpbmap
#define _rpbmap _Sysmap+8 # scb, UNIvec, rpb, istack*4
bicl2 $PG_PROT,_rpbmap
bisl2 $PG_KW,_rpbmap
- tstl _rpb_RP_FLAG # dump only once!
- bne 1f
+ tstl _rpb+RP_FLAG # dump only once!
+ bneq 1f
incl _rpb+RP_FLAG
mtpr $0,$TBIA
movl sp,erpb
incl _rpb+RP_FLAG
mtpr $0,$TBIA
movl sp,erpb
.set _Syssize,(eSysmap-_Sysmap)/4
.text
.set _Syssize,(eSysmap-_Sysmap)/4
.text
+/*
+ * Materpaddr is the p->p_addr of the running process on the master
+ * processor. When a multiprocessor system, the slave processors will have
+ * an array of spavepaddr's.
+ */
+ .globl _masterpaddr
+ .data
+_masterpaddr:
+ .long 0
+
+ .text
sw0: .asciz "swtch"
/*
* Swtch(), using fancy VAX instructions
sw0: .asciz "swtch"
/*
* Swtch(), using fancy VAX instructions
svpctx
mtpr r0,$PCBB
ldpctx
svpctx
mtpr r0,$PCBB
ldpctx
movl _u+PCB_CMAP2,_CMAP2 # yech
res0:
tstl _u+PCB_SSWAP
movl _u+PCB_CMAP2,_CMAP2 # yech
res0:
tstl _u+PCB_SSWAP