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