2 #include "../port/lib.h"
7 #include "../port/error.h"
10 * find out fault address and type of access.
11 * Call common fault handler.
21 x = ur->a0&0xffffffff80000000LL;
22 if (x != 0LL && x != 0xffffffff80000000LL)
23 iprint("faultalpha bad addr %llux pc %llux\n", ur->a0, ur->pc);
26 cause = (ulong)ur->a2;
29 user = (ulong)ur->status&UMODE;
31 /* print("fault %s pc=0x%lux addr=0x%lux 0x%lux\n",
32 read? (cause != 0) ? "ifetch" : "read" : "write", (ulong)ur->pc, addr, (ulong)ur->a1); /**/
34 if(fault(addr, read) == 0)
38 sprint(buf, "sys: trap: fault %s addr=0x%lux",
39 read? (cause != 0) ? "ifetch" : "read" : "write", (ulong)ur->a0);
40 postnote(up, 1, buf, NDebug);
44 iprint("kernel %s vaddr=0x%lux\n", read? (cause != 0) ? "ifetch" : "read" : "write", (ulong)ur->a0);
59 postnote(up, 1, "sys: odd address", NDebug);