xref: /openbsd/regress/sys/arch/m88k/usertrap/trap.c (revision 404b540a)
1 /*	$OpenBSD: trap.c,v 1.1 2004/04/24 13:19:15 miod Exp $	*/
2 
3 /*
4  * Simple test program to check what happens when userland tries to trap.
5  * Written by Miodrag Vallat 2003 AD -- public domain
6  */
7 
8 #include <stdio.h>
9 
10 #define	TRAP(num) \
11 	case num: \
12 		__asm__ __volatile__ ("tb0 0, r0, " __STRING(num) ); \
13 		break;
14 
15 int
16 main(int argc, char *argv[])
17 {
18 	int trapnum = 503;	/* software divide by zero */
19 
20 	if (argc > 1)
21 		trapnum = atoi(argv[1]);
22 
23 	switch (trapnum) {
24 TRAP(0x000)
25 TRAP(0x001)
26 TRAP(0x002)
27 TRAP(0x003)
28 TRAP(0x004)
29 TRAP(0x005)
30 TRAP(0x006)
31 TRAP(0x007)
32 TRAP(0x008)
33 TRAP(0x009)
34 TRAP(0x00a)
35 TRAP(0x00b)
36 TRAP(0x00c)
37 TRAP(0x00d)
38 TRAP(0x00e)
39 TRAP(0x00f)
40 TRAP(0x010)
41 TRAP(0x011)
42 TRAP(0x012)
43 TRAP(0x013)
44 TRAP(0x014)
45 TRAP(0x015)
46 TRAP(0x016)
47 TRAP(0x017)
48 TRAP(0x018)
49 TRAP(0x019)
50 TRAP(0x01a)
51 TRAP(0x01b)
52 TRAP(0x01c)
53 TRAP(0x01d)
54 TRAP(0x01e)
55 TRAP(0x01f)
56 TRAP(0x020)
57 TRAP(0x021)
58 TRAP(0x022)
59 TRAP(0x023)
60 TRAP(0x024)
61 TRAP(0x025)
62 TRAP(0x026)
63 TRAP(0x027)
64 TRAP(0x028)
65 TRAP(0x029)
66 TRAP(0x02a)
67 TRAP(0x02b)
68 TRAP(0x02c)
69 TRAP(0x02d)
70 TRAP(0x02e)
71 TRAP(0x02f)
72 TRAP(0x030)
73 TRAP(0x031)
74 TRAP(0x032)
75 TRAP(0x033)
76 TRAP(0x034)
77 TRAP(0x035)
78 TRAP(0x036)
79 TRAP(0x037)
80 TRAP(0x038)
81 TRAP(0x039)
82 TRAP(0x03a)
83 TRAP(0x03b)
84 TRAP(0x03c)
85 TRAP(0x03d)
86 TRAP(0x03e)
87 TRAP(0x03f)
88 TRAP(0x040)
89 TRAP(0x041)
90 TRAP(0x042)
91 TRAP(0x043)
92 TRAP(0x044)
93 TRAP(0x045)
94 TRAP(0x046)
95 TRAP(0x047)
96 TRAP(0x048)
97 TRAP(0x049)
98 TRAP(0x04a)
99 TRAP(0x04b)
100 TRAP(0x04c)
101 TRAP(0x04d)
102 TRAP(0x04e)
103 TRAP(0x04f)
104 TRAP(0x050)
105 TRAP(0x051)
106 TRAP(0x052)
107 TRAP(0x053)
108 TRAP(0x054)
109 TRAP(0x055)
110 TRAP(0x056)
111 TRAP(0x057)
112 TRAP(0x058)
113 TRAP(0x059)
114 TRAP(0x05a)
115 TRAP(0x05b)
116 TRAP(0x05c)
117 TRAP(0x05d)
118 TRAP(0x05e)
119 TRAP(0x05f)
120 TRAP(0x060)
121 TRAP(0x061)
122 TRAP(0x062)
123 TRAP(0x063)
124 TRAP(0x064)
125 TRAP(0x065)
126 TRAP(0x066)
127 TRAP(0x067)
128 TRAP(0x068)
129 TRAP(0x069)
130 TRAP(0x06a)
131 TRAP(0x06b)
132 TRAP(0x06c)
133 TRAP(0x06d)
134 TRAP(0x06e)
135 TRAP(0x06f)
136 TRAP(0x070)
137 TRAP(0x071)
138 TRAP(0x072)
139 TRAP(0x073)
140 TRAP(0x074)
141 TRAP(0x075)
142 TRAP(0x076)
143 TRAP(0x077)
144 TRAP(0x078)
145 TRAP(0x079)
146 TRAP(0x07a)
147 TRAP(0x07b)
148 TRAP(0x07c)
149 TRAP(0x07d)
150 TRAP(0x07e)
151 TRAP(0x07f)
152 TRAP(0x080)
153 TRAP(0x081)
154 TRAP(0x082)
155 TRAP(0x083)
156 TRAP(0x084)
157 TRAP(0x085)
158 TRAP(0x086)
159 TRAP(0x087)
160 TRAP(0x088)
161 TRAP(0x089)
162 TRAP(0x08a)
163 TRAP(0x08b)
164 TRAP(0x08c)
165 TRAP(0x08d)
166 TRAP(0x08e)
167 TRAP(0x08f)
168 TRAP(0x090)
169 TRAP(0x091)
170 TRAP(0x092)
171 TRAP(0x093)
172 TRAP(0x094)
173 TRAP(0x095)
174 TRAP(0x096)
175 TRAP(0x097)
176 TRAP(0x098)
177 TRAP(0x099)
178 TRAP(0x09a)
179 TRAP(0x09b)
180 TRAP(0x09c)
181 TRAP(0x09d)
182 TRAP(0x09e)
183 TRAP(0x09f)
184 TRAP(0x0a0)
185 TRAP(0x0a1)
186 TRAP(0x0a2)
187 TRAP(0x0a3)
188 TRAP(0x0a4)
189 TRAP(0x0a5)
190 TRAP(0x0a6)
191 TRAP(0x0a7)
192 TRAP(0x0a8)
193 TRAP(0x0a9)
194 TRAP(0x0aa)
195 TRAP(0x0ab)
196 TRAP(0x0ac)
197 TRAP(0x0ad)
198 TRAP(0x0ae)
199 TRAP(0x0af)
200 TRAP(0x0b0)
201 TRAP(0x0b1)
202 TRAP(0x0b2)
203 TRAP(0x0b3)
204 TRAP(0x0b4)
205 TRAP(0x0b5)
206 TRAP(0x0b6)
207 TRAP(0x0b7)
208 TRAP(0x0b8)
209 TRAP(0x0b9)
210 TRAP(0x0ba)
211 TRAP(0x0bb)
212 TRAP(0x0bc)
213 TRAP(0x0bd)
214 TRAP(0x0be)
215 TRAP(0x0bf)
216 TRAP(0x0c0)
217 TRAP(0x0c1)
218 TRAP(0x0c2)
219 TRAP(0x0c3)
220 TRAP(0x0c4)
221 TRAP(0x0c5)
222 TRAP(0x0c6)
223 TRAP(0x0c7)
224 TRAP(0x0c8)
225 TRAP(0x0c9)
226 TRAP(0x0ca)
227 TRAP(0x0cb)
228 TRAP(0x0cc)
229 TRAP(0x0cd)
230 TRAP(0x0ce)
231 TRAP(0x0cf)
232 TRAP(0x0d0)
233 TRAP(0x0d1)
234 TRAP(0x0d2)
235 TRAP(0x0d3)
236 TRAP(0x0d4)
237 TRAP(0x0d5)
238 TRAP(0x0d6)
239 TRAP(0x0d7)
240 TRAP(0x0d8)
241 TRAP(0x0d9)
242 TRAP(0x0da)
243 TRAP(0x0db)
244 TRAP(0x0dc)
245 TRAP(0x0dd)
246 TRAP(0x0de)
247 TRAP(0x0df)
248 TRAP(0x0e0)
249 TRAP(0x0e1)
250 TRAP(0x0e2)
251 TRAP(0x0e3)
252 TRAP(0x0e4)
253 TRAP(0x0e5)
254 TRAP(0x0e6)
255 TRAP(0x0e7)
256 TRAP(0x0e8)
257 TRAP(0x0e9)
258 TRAP(0x0ea)
259 TRAP(0x0eb)
260 TRAP(0x0ec)
261 TRAP(0x0ed)
262 TRAP(0x0ee)
263 TRAP(0x0ef)
264 TRAP(0x0f0)
265 TRAP(0x0f1)
266 TRAP(0x0f2)
267 TRAP(0x0f3)
268 TRAP(0x0f4)
269 TRAP(0x0f5)
270 TRAP(0x0f6)
271 TRAP(0x0f7)
272 TRAP(0x0f8)
273 TRAP(0x0f9)
274 TRAP(0x0fa)
275 TRAP(0x0fb)
276 TRAP(0x0fc)
277 TRAP(0x0fd)
278 TRAP(0x0fe)
279 TRAP(0x0ff)
280 TRAP(0x100)
281 TRAP(0x101)
282 TRAP(0x102)
283 TRAP(0x103)
284 TRAP(0x104)
285 TRAP(0x105)
286 TRAP(0x106)
287 TRAP(0x107)
288 TRAP(0x108)
289 TRAP(0x109)
290 TRAP(0x10a)
291 TRAP(0x10b)
292 TRAP(0x10c)
293 TRAP(0x10d)
294 TRAP(0x10e)
295 TRAP(0x10f)
296 TRAP(0x110)
297 TRAP(0x111)
298 TRAP(0x112)
299 TRAP(0x113)
300 TRAP(0x114)
301 TRAP(0x115)
302 TRAP(0x116)
303 TRAP(0x117)
304 TRAP(0x118)
305 TRAP(0x119)
306 TRAP(0x11a)
307 TRAP(0x11b)
308 TRAP(0x11c)
309 TRAP(0x11d)
310 TRAP(0x11e)
311 TRAP(0x11f)
312 TRAP(0x120)
313 TRAP(0x121)
314 TRAP(0x122)
315 TRAP(0x123)
316 TRAP(0x124)
317 TRAP(0x125)
318 TRAP(0x126)
319 TRAP(0x127)
320 TRAP(0x128)
321 TRAP(0x129)
322 TRAP(0x12a)
323 TRAP(0x12b)
324 TRAP(0x12c)
325 TRAP(0x12d)
326 TRAP(0x12e)
327 TRAP(0x12f)
328 TRAP(0x130)
329 TRAP(0x131)
330 TRAP(0x132)
331 TRAP(0x133)
332 TRAP(0x134)
333 TRAP(0x135)
334 TRAP(0x136)
335 TRAP(0x137)
336 TRAP(0x138)
337 TRAP(0x139)
338 TRAP(0x13a)
339 TRAP(0x13b)
340 TRAP(0x13c)
341 TRAP(0x13d)
342 TRAP(0x13e)
343 TRAP(0x13f)
344 TRAP(0x140)
345 TRAP(0x141)
346 TRAP(0x142)
347 TRAP(0x143)
348 TRAP(0x144)
349 TRAP(0x145)
350 TRAP(0x146)
351 TRAP(0x147)
352 TRAP(0x148)
353 TRAP(0x149)
354 TRAP(0x14a)
355 TRAP(0x14b)
356 TRAP(0x14c)
357 TRAP(0x14d)
358 TRAP(0x14e)
359 TRAP(0x14f)
360 TRAP(0x150)
361 TRAP(0x151)
362 TRAP(0x152)
363 TRAP(0x153)
364 TRAP(0x154)
365 TRAP(0x155)
366 TRAP(0x156)
367 TRAP(0x157)
368 TRAP(0x158)
369 TRAP(0x159)
370 TRAP(0x15a)
371 TRAP(0x15b)
372 TRAP(0x15c)
373 TRAP(0x15d)
374 TRAP(0x15e)
375 TRAP(0x15f)
376 TRAP(0x160)
377 TRAP(0x161)
378 TRAP(0x162)
379 TRAP(0x163)
380 TRAP(0x164)
381 TRAP(0x165)
382 TRAP(0x166)
383 TRAP(0x167)
384 TRAP(0x168)
385 TRAP(0x169)
386 TRAP(0x16a)
387 TRAP(0x16b)
388 TRAP(0x16c)
389 TRAP(0x16d)
390 TRAP(0x16e)
391 TRAP(0x16f)
392 TRAP(0x170)
393 TRAP(0x171)
394 TRAP(0x172)
395 TRAP(0x173)
396 TRAP(0x174)
397 TRAP(0x175)
398 TRAP(0x176)
399 TRAP(0x177)
400 TRAP(0x178)
401 TRAP(0x179)
402 TRAP(0x17a)
403 TRAP(0x17b)
404 TRAP(0x17c)
405 TRAP(0x17d)
406 TRAP(0x17e)
407 TRAP(0x17f)
408 TRAP(0x180)
409 TRAP(0x181)
410 TRAP(0x182)
411 TRAP(0x183)
412 TRAP(0x184)
413 TRAP(0x185)
414 TRAP(0x186)
415 TRAP(0x187)
416 TRAP(0x188)
417 TRAP(0x189)
418 TRAP(0x18a)
419 TRAP(0x18b)
420 TRAP(0x18c)
421 TRAP(0x18d)
422 TRAP(0x18e)
423 TRAP(0x18f)
424 TRAP(0x190)
425 TRAP(0x191)
426 TRAP(0x192)
427 TRAP(0x193)
428 TRAP(0x194)
429 TRAP(0x195)
430 TRAP(0x196)
431 TRAP(0x197)
432 TRAP(0x198)
433 TRAP(0x199)
434 TRAP(0x19a)
435 TRAP(0x19b)
436 TRAP(0x19c)
437 TRAP(0x19d)
438 TRAP(0x19e)
439 TRAP(0x19f)
440 TRAP(0x1a0)
441 TRAP(0x1a1)
442 TRAP(0x1a2)
443 TRAP(0x1a3)
444 TRAP(0x1a4)
445 TRAP(0x1a5)
446 TRAP(0x1a6)
447 TRAP(0x1a7)
448 TRAP(0x1a8)
449 TRAP(0x1a9)
450 TRAP(0x1aa)
451 TRAP(0x1ab)
452 TRAP(0x1ac)
453 TRAP(0x1ad)
454 TRAP(0x1ae)
455 TRAP(0x1af)
456 TRAP(0x1b0)
457 TRAP(0x1b1)
458 TRAP(0x1b2)
459 TRAP(0x1b3)
460 TRAP(0x1b4)
461 TRAP(0x1b5)
462 TRAP(0x1b6)
463 TRAP(0x1b7)
464 TRAP(0x1b8)
465 TRAP(0x1b9)
466 TRAP(0x1ba)
467 TRAP(0x1bb)
468 TRAP(0x1bc)
469 TRAP(0x1bd)
470 TRAP(0x1be)
471 TRAP(0x1bf)
472 TRAP(0x1c0)
473 TRAP(0x1c1)
474 TRAP(0x1c2)
475 TRAP(0x1c3)
476 TRAP(0x1c4)
477 TRAP(0x1c5)
478 TRAP(0x1c6)
479 TRAP(0x1c7)
480 TRAP(0x1c8)
481 TRAP(0x1c9)
482 TRAP(0x1ca)
483 TRAP(0x1cb)
484 TRAP(0x1cc)
485 TRAP(0x1cd)
486 TRAP(0x1ce)
487 TRAP(0x1cf)
488 TRAP(0x1d0)
489 TRAP(0x1d1)
490 TRAP(0x1d2)
491 TRAP(0x1d3)
492 TRAP(0x1d4)
493 TRAP(0x1d5)
494 TRAP(0x1d6)
495 TRAP(0x1d7)
496 TRAP(0x1d8)
497 TRAP(0x1d9)
498 TRAP(0x1da)
499 TRAP(0x1db)
500 TRAP(0x1dc)
501 TRAP(0x1dd)
502 TRAP(0x1de)
503 TRAP(0x1df)
504 TRAP(0x1e0)
505 TRAP(0x1e1)
506 TRAP(0x1e2)
507 TRAP(0x1e3)
508 TRAP(0x1e4)
509 TRAP(0x1e5)
510 TRAP(0x1e6)
511 TRAP(0x1e7)
512 TRAP(0x1e8)
513 TRAP(0x1e9)
514 TRAP(0x1ea)
515 TRAP(0x1eb)
516 TRAP(0x1ec)
517 TRAP(0x1ed)
518 TRAP(0x1ee)
519 TRAP(0x1ef)
520 TRAP(0x1f0)
521 TRAP(0x1f1)
522 TRAP(0x1f2)
523 TRAP(0x1f3)
524 TRAP(0x1f4)
525 TRAP(0x1f5)
526 TRAP(0x1f6)
527 TRAP(0x1f7)
528 TRAP(0x1f8)
529 TRAP(0x1f9)
530 TRAP(0x1fa)
531 TRAP(0x1fb)
532 TRAP(0x1fc)
533 TRAP(0x1fd)
534 TRAP(0x1fe)
535 TRAP(0x1ff)
536 	default:
537 		printf("invalid trap number %x\n", trapnum);
538 		return 1;
539 	}
540 
541 	return 0;
542 }
543