xref: /original-bsd/sys/vax/vax/Locore.c (revision 6c57d260)
1 /*	Locore.c	4.11	81/05/15	*/
2 
3 #include "dz.h"
4 
5 #include "../h/param.h"
6 #include "../h/systm.h"
7 #include "../h/dir.h"
8 #include "../h/user.h"
9 #include "../h/pte.h"
10 #include "../h/vm.h"
11 #include "../h/tty.h"
12 #include "../h/proc.h"
13 #include "../h/buf.h"
14 #include "../h/ubavar.h"
15 #include "../h/ubareg.h"
16 #include "../h/nexus.h"
17 #include "../h/msgbuf.h"
18 
19 /*
20  * Pseudo file for lint to show what is used/defined in locore.s.
21  */
22 
23 struct	scb scb;
24 int	(*UNIvec[128])();
25 struct	rpb rpb;
26 int	intstack[3*128];
27 
28 int	masterpaddr;		/* p_addr of current process on master cpu */
29 
30 struct	user u;
31 
32 doadump() { dumpsys(); }
33 
34 Xmba3int() { }
35 Xmba2int() { }
36 Xmba1int() { }
37 Xmba0int() { }
38 
39 lowinit()
40 {
41 
42 	/*
43 	 * Pseudo-uses of globals.
44 	 */
45 	lowinit();
46 	intstack[0] = intstack[1];
47 	rpb = rpb;
48 	scb = scb;
49 	maxmem = physmem = freemem = 0;
50 	u = u;
51 	fixctlrmask();
52 	main(0);
53 
54 	/*
55 	 * Routines called from interrupt vectors.
56 	 */
57 	panic("Machine check");
58 	printf("Write timeout");
59 	(*UNIvec[0])();
60 	ubaerror(0, (struct uba_hd *)0, 0, 0, (struct uba_regs *)0);
61 	cnrint(0);
62 	cnxint(0);
63 	consdin();
64 	consdout();
65 #if NDZ > 0
66 	dzdma();
67 #endif
68 	hardclock((caddr_t)0, 0);
69 	softclock((caddr_t)0, 0);
70 	trap(0, 0, (unsigned)0, 0, 0);
71 	syscall(0, 0, (unsigned)0, 0, 0);
72 
73 	if (vmemall((struct pte *)0, 0, (struct proc *)0, 0))
74 		return;		/* use value */
75 	if (forceclose((dev_t)0))
76 		return;		/* use value */
77 	machinecheck((caddr_t)0);
78 	memerr();
79 	boothowto = 0;
80 }
81 
82 consdin() { }
83 consdout() { }
84 #if NDZ > 0
85 dzdma() { dzxint((struct tty *)0); }
86 #endif
87 
88 int	catcher[256];
89 int	cold = 1;
90 
91 Xustray() { }
92 
93 struct	pte Sysmap[6*NPTEPG];
94 char	Sysbase[6*NPTEPG*NBPG];
95 int	umbabeg;
96 struct	pte Nexmap[16][16];
97 struct	nexus nexus[MAXNNEXUS];
98 struct	pte UMEMmap[4][16];
99 char	umem[4][16*NBPG];
100 int	umbaend;
101 struct	pte Usrptmap[USRPTSIZE];
102 struct	pte usrpt[USRPTSIZE*NPTEPG];
103 struct	pte Forkmap[UPAGES];
104 struct	user forkutl;
105 struct	pte Xswapmap[UPAGES];
106 struct	user xswaputl;
107 struct	pte Xswap2map[UPAGES];
108 struct	user xswap2utl;
109 struct	pte Swapmap[UPAGES];
110 struct	user swaputl;
111 struct	pte Pushmap[UPAGES];
112 struct	user pushutl;
113 struct	pte Vfmap[UPAGES];
114 struct	user vfutl;
115 struct	pte CMAP1;
116 char	CADDR1[NBPG];
117 struct	pte CMAP2;
118 char	CADDR2[NBPG];
119 struct	pte mmap[1];
120 char	vmmap[NBPG];
121 struct	pte msgbufmap[CLSIZE];
122 struct	msgbuf msgbuf;
123 struct	pte camap[32];
124 int	cabase;
125 #ifdef unneeded
126 char	caspace[32*NBPG];
127 #endif
128 int	calimit;
129 
130 /*ARGSUSED*/
131 badaddr(addr, len) caddr_t addr; int len; { return (0); }
132 
133 /*ARGSUSED*/
134 addupc(pc, prof, n) int pc; struct uprof *prof; { }
135 
136 /*ARGSUSED*/
137 copyin(udaddr, kaddr, n) caddr_t udaddr, kaddr; unsigned n; { return (0); }
138 
139 /*ARGSUSED*/
140 copyout(kaddr, udaddr, n) caddr_t kaddr, udaddr; unsigned n; { return (0); }
141 
142 /*ARGSUSED*/
143 setjmp(lp) label_t lp; { return (0); }
144 
145 /*ARGSUSED*/
146 longjmp(lp) label_t lp; { /*NOTREACHED*/ }
147 
148 /*ARGSUSED*/
149 setrq(p) struct proc *p; { }
150 
151 /*ARGSUSED*/
152 remrq(p) struct proc *p; { }
153 
154 swtch() { if (whichqs) whichqs = 0; }
155 
156 /*ARGSUSED*/
157 resume(pcbpf) unsigned pcbpf; { }
158 
159 /*ARGSUSED*/
160 fubyte(base) caddr_t base; { return (0); }
161 
162 /*ARGSUSED*/
163 subyte(base, i) caddr_t base; { return (0); }
164 
165 /*ARGSUSED*/
166 suibyte(base, i) caddr_t base; { return (0); }
167 
168 /*ARGSUSED*/
169 fuword(base) caddr_t base; { return (0); }
170 
171 /*ARGSUSED*/
172 fuiword(base) caddr_t base; { return (0); }
173 
174 /*ARGSUSED*/
175 suword(base, i) caddr_t base; { return (0); }
176 
177 /*ARGSUSED*/
178 suiword(base, i) caddr_t base; { return (0); }
179 
180 /*ARGSUSED*/
181 copyseg(udaddr, pf) caddr_t udaddr; unsigned pf; {
182     CMAP1 = CMAP1; CADDR1[0] = CADDR1[0];
183 }
184 
185 /*ARGSUSED*/
186 clearseg(pf) unsigned pf; { CMAP2 = CMAP2; CADDR2[0] = CADDR2[0]; }
187 
188 /*ARGSUSED*/
189 useracc(udaddr, bcnt, rw) caddr_t udaddr; unsigned bcnt; { return (0); }
190 
191 /*ARGSUSED*/
192 kernacc(addr, bcnt, rw) caddr_t addr; unsigned bcnt; { return (0); }
193 
194 /*VARARGS1*/
195 /*ARGSUSED*/
196 mtpr(reg, value) int reg, value; { }
197 
198 /*ARGSUSED*/
199 mfpr(reg) int reg; { return (0); }
200 
201 
202 spl0() { return (0); }
203 spl4() { return (0); }
204 spl5() { return (0); }
205 spl6() { return (0); }
206 spl7() { return (0); }
207 
208 /*ARGSUSED*/
209 splx(s) int s; { }
210 
211 /*ARGSUSED*/
212 bcopy(to, from, count) caddr_t to, from; unsigned count; { ; }
213 
214 /*ARGSUSED*/
215 ffs(i) { return (0); }
216