T_USER
printf(" in %s mode\n", (type & T_USER) ? "user" : "supervisor");
type |= T_USER;
case T_PROTFLT|T_USER: /* protection fault */
case T_TSSFLT|T_USER:
case T_SEGNPFLT|T_USER:
case T_STKFLT|T_USER:
case T_ALIGNFLT|T_USER:
ksi.ksi_trap = type & ~T_USER;
case T_SEGNPFLT|T_USER:
case T_STKFLT|T_USER:
case T_TSSFLT|T_USER:
case T_ALIGNFLT|T_USER:
case T_PROTFLT|T_USER:
case T_PRIVINFLT|T_USER: /* privileged instruction fault */
case T_FPOPFLT|T_USER: /* coprocessor operand fault */
ksi.ksi_trap = type & ~T_USER;
case T_PRIVINFLT|T_USER:
case T_FPOPFLT|T_USER:
case T_ASTFLT|T_USER:
case T_BOUND|T_USER:
case T_OFLOW|T_USER:
case T_DIVIDE|T_USER:
ksi.ksi_trap = type & ~T_USER;
case T_BOUND|T_USER:
case T_OFLOW|T_USER:
case T_DIVIDE|T_USER:
case T_PAGEFLT|T_USER: {
ksi.ksi_trap = type & ~T_USER;
case T_BPTFLT|T_USER: /* bpt instruction fault */
case T_TRCTRAP|T_USER: /* trace trap */
ksi.ksi_trap = type & ~T_USER;
} else if (type == (T_BPTFLT|T_USER))
if ((type & T_USER) == 0)
ktf, (tf.tf_flags & T_USER)? " from user" :
if (type & T_USER) {
case T_DATALIGN | T_USER:
case T_INTERRUPT | T_USER:
case T_DATAPID: case T_DATAPID | T_USER:
if (type & T_USER)
p->p_pid, p->p_comm, type & ~T_USER);
if ((type & ~T_USER) == T_INTERRUPT)
trapnum = type & ~T_USER;
const bool user = (type & T_USER) != 0;
case T_NONEXIST | T_USER:
case T_RECOVERY | T_USER:
case T_EMULATION | T_USER:
case T_HPMC | T_USER:
if (type & T_USER) {
case T_IBREAK | T_USER:
case T_DBREAK | T_USER:
case T_TAKENBR | T_USER:
case T_EXCEPTION | T_USER: { /* co-proc assist trap */
case T_OVERFLOW | T_USER:
case T_CONDITION | T_USER:
case T_ILLEGAL | T_USER:
case T_PRIV_OP | T_USER:
case T_PRIV_REG | T_USER:
case T_HIGHERPL | T_USER:
case T_LOWERPL | T_USER:
case T_IPROT | T_USER:
case T_DPROT | T_USER:
case T_ITLBMISSNA: case T_USER | T_ITLBMISSNA:
case T_DTLBMISSNA: case T_USER | T_DTLBMISSNA:
case T_DATACC: case T_USER | T_DATACC:
case T_ITLBMISS: case T_USER | T_ITLBMISS:
case T_DTLBMISS: case T_USER | T_DTLBMISS:
case T_TLB_DIRTY: case T_USER | T_TLB_DIRTY:
if (!(type & T_USER) && space == HPPA_SID_KERNEL)
#define CLKF_USERMODE(framep) ((framep)->cf_flags & T_USER)
db_printf("kernel: %s trap ", (type & T_USER) ? "user" : "supervisor");
type &= ~T_USER;
printf(" in %s mode\n", (type & T_USER) ? "user" : "supervisor");
type |= T_USER;
case T_PROTFLT|T_USER: /* protection fault */
case T_TSSFLT|T_USER:
case T_SEGNPFLT|T_USER:
case T_STKFLT|T_USER:
case T_ALIGNFLT|T_USER:
case T_SEGNPFLT|T_USER:
case T_STKFLT|T_USER:
case T_TSSFLT|T_USER:
case T_ALIGNFLT|T_USER:
case T_PROTFLT|T_USER:
case T_PRIVINFLT|T_USER: /* privileged instruction fault */
case T_FPOPFLT|T_USER: /* coprocessor operand fault */
case T_PRIVINFLT|T_USER:
case T_FPOPFLT|T_USER:
case T_ASTFLT|T_USER:
case T_BOUND|T_USER:
case T_OFLOW|T_USER:
case T_DIVIDE|T_USER:
case T_BOUND|T_USER:
case T_OFLOW|T_USER:
case T_DIVIDE|T_USER:
case T_PAGEFLT|T_USER: { /* page fault */
ksi.ksi_trap = type & ~T_USER;
case T_BPTFLT|T_USER: /* bpt instruction fault */
case T_TRCTRAP|T_USER: /* trace trap */
ksi.ksi_trap = type & ~T_USER;
} else if (type == (T_BPTFLT|T_USER))
if ((type & T_USER) == 0)
ksi.ksi_trap = type & ~T_USER;
if (type & T_USER) {
ksi.ksi_trap = type & ~T_USER;
type |= T_USER;
(type & T_USER) ? "user" : "kernel", fp->f_pc);
type &= ~T_USER;
case T_BUSERR|T_USER: /* bus error */
case T_ADDRERR|T_USER: /* address error */
ksi.ksi_code = (type == (T_BUSERR|T_USER)) ?
case T_FMTERR|T_USER: /* do all RTE errors come in as T_USER? */
type |= T_USER;
case T_COPERR|T_USER: /* user coprocessor violation */
case T_FPERR|T_USER: /* 68881 exceptions */
case T_FPEMULI|T_USER: /* unimplemented FP instruction */
case T_FPEMULD|T_USER: /* unimplemented FP data type */
case T_ILLINST|T_USER: /* illegal instruction fault */
case T_PRIVINST|T_USER: /* privileged instruction fault */
ksi.ksi_code = (type == (T_PRIVINST|T_USER)) ?
case T_ZERODIV|T_USER: /* Integer divide by zero */
case T_CHKINST|T_USER: /* CHK instruction trap */
case T_TRAPVINST|T_USER: /* TRAPV instruction trap */
case T_TRACE|T_USER: /* user trace trap */
case T_TRAP15|T_USER: /* SUN user trace trap */
if (type == (T_TRAP15|T_USER)) {
case T_ASTFLT|T_USER: /* user async trap */
case T_MMUFLT|T_USER: /* page fault */
if ((type & T_USER) == 0 &&
db_trap(type & ~T_USER, 0 /*code*/);
case T_TLB_MOD+T_USER:
case T_TLB_LD_MISS+T_USER:
case T_TLB_ST_MISS+T_USER:
case T_ADDR_ERR_LD+T_USER: /* misaligned or kseg access */
case T_ADDR_ERR_ST+T_USER: /* misaligned or kseg access */
case T_BUS_ERR_IFETCH+T_USER: /* BERR asserted to CPU */
case T_BUS_ERR_LD_ST+T_USER: /* BERR asserted to CPU */
case T_BREAK+T_USER:
case T_RES_INST+T_USER:
case T_COP_UNUSABLE+T_USER:
case T_FPE+T_USER:
case T_OVFLOW+T_USER:
type |= T_USER;
case T_TLB_MOD+T_USER: {
const bool user_p = (type & T_USER) || !KERNLAND_P(vaddr);
if (type & T_USER)
case T_TLB_LD_MISS+T_USER:
case T_TLB_ST_MISS+T_USER:
if (type & T_USER) {
if (type & T_USER) {
if ((type & T_USER) == 0)
ksi.ksi_trap = type & ~T_USER;
case T_ADDR_ERR_LD+T_USER: /* misaligned or kseg access */
case T_ADDR_ERR_ST+T_USER: /* misaligned or kseg access */
case T_BUS_ERR_IFETCH+T_USER: /* BERR asserted to CPU */
case T_BUS_ERR_LD_ST+T_USER: /* BERR asserted to CPU */
ksi.ksi_trap = type & ~T_USER;
if (type == T_BUS_ERR_IFETCH+T_USER
|| type == T_BUS_ERR_LD_ST+T_USER)
case T_BREAK+T_USER: {
ksi.ksi_trap = type & ~T_USER;
ksi.ksi_trap = type & ~T_USER;
case T_DSP+T_USER:
case T_RES_INST+T_USER:
case T_COP_UNUSABLE+T_USER:
case T_FPE+T_USER:
case T_OVFLOW+T_USER:
case T_TRAP+T_USER: {
ksi.ksi_trap = type & ~T_USER;
if ((type & T_USER) == 0) {
type |= T_USER;
case T_TRANSFLT|T_USER:
case T_PTELEN|T_USER: /* Page table length exceeded */
case T_ACCFLT|T_USER:
case T_BPTFLT|T_USER:
case T_TRCTRAP|T_USER:
case T_PRIVINFLT|T_USER:
case T_RESADFLT|T_USER:
case T_RESOPFLT|T_USER:
case T_XFCFLT|T_USER:
case T_ARITHFLT|T_USER:
case T_ASTFLT|T_USER:
case T_KDBTRAP|T_USER:
if (type == (T_ARITHFLT | T_USER) && (tf->tf_code & 8))