panic() cleanup.
this change
- makes panic() variadic, doing full printf() formatting -
no more NO_NUM, and no more separate printf() statements
needed to print extra info (or something in hex) before panicing
- unifies panic() - same panic() name and usage for everyone -
vm, kernel and rest have different names/syntax currently
in order to implement their own luxuries, but no longer
- throws out the 1st argument, to make source less noisy.
the panic() in syslib retrieves the server name from the kernel
so it should be clear enough who is panicing; e.g.
panic("sigaction failed: %d", errno);
looks like:
at_wini(73130): panic: sigaction failed: 0
syslib:panic.c: stacktrace: 0x74dc 0x2025 0x100a
- throws out report() - printf() is more convenient and powerful
- harmonizes/fixes the use of panic() - there were a few places
that used printf-style formatting (didn't work) and newlines
(messes up the formatting) in panic()
- throws out a few per-server panic() functions
- cleans up a tie-in of tty with panic()
merging printf() and panic() statements to be done incrementally.
This commit is contained in:
@@ -147,7 +147,7 @@ irq_hook_t *hook;
|
||||
* automatically get their interrupt hooks unhooked.
|
||||
*/
|
||||
if(!isokendpt(hook->proc_nr_e, &proc_nr))
|
||||
minix_panic("invalid interrupt handler", hook->proc_nr_e);
|
||||
panic("invalid interrupt handler: %d", hook->proc_nr_e);
|
||||
|
||||
/* Add a bit for this interrupt to the process' pending interrupts. When
|
||||
* sending the notification message, this bit map will be magically set
|
||||
|
||||
@@ -350,7 +350,7 @@ PUBLIC int do_safecopy(struct proc * caller, message * m_ptr)
|
||||
src_seg = m_ptr->SCP_SEG;
|
||||
dst_seg = D;
|
||||
access = CPF_WRITE;
|
||||
} else minix_panic("Impossible system call nr. ", m_ptr->m_type);
|
||||
} else panic("Impossible system call nr.: %d", m_ptr->m_type);
|
||||
|
||||
return safecopy(caller, m_ptr->SCP_FROM_TO, caller->p_endpoint,
|
||||
(cp_grant_id_t) m_ptr->SCP_GID, src_seg, dst_seg,
|
||||
|
||||
@@ -47,7 +47,7 @@ PUBLIC int do_sysctl(struct proc * caller, message * m_ptr)
|
||||
return(EINVAL);
|
||||
}
|
||||
|
||||
minix_panic("do_sysctl: can't happen", NO_NUM);
|
||||
panic("do_sysctl: can't happen");
|
||||
|
||||
return(OK);
|
||||
}
|
||||
|
||||
@@ -91,7 +91,7 @@ PUBLIC int do_umap(struct proc * caller, message * m_ptr)
|
||||
return EFAULT;
|
||||
}
|
||||
if(phys_addr == 0)
|
||||
minix_panic("vm_lookup returned zero physical address", NO_NUM);
|
||||
panic("vm_lookup returned zero physical address");
|
||||
break;
|
||||
default:
|
||||
if((r=arch_umap(targetpr, offset, count, seg_type, &lin_addr))
|
||||
|
||||
@@ -158,7 +158,7 @@ PUBLIC int do_vdevio(struct proc * caller, message * m_ptr)
|
||||
return(OK);
|
||||
|
||||
bad:
|
||||
minix_panic("do_vdevio: unaligned port", port);
|
||||
panic("do_vdevio: unaligned port: %d", port);
|
||||
return EPERM;
|
||||
}
|
||||
|
||||
|
||||
@@ -56,8 +56,7 @@ PUBLIC int do_vmctl(struct proc * caller, message * m_ptr)
|
||||
#if 0
|
||||
if(!RTS_ISSET(target, RTS_VMREQTARGET)) {
|
||||
printf("set stack: %s\n", rp->p_vmrequest.stacktrace);
|
||||
minix_panic("RTS_VMREQTARGET not set for target",
|
||||
NO_NUM);
|
||||
panic( "RTS_VMREQTARGET not set for target");
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
@@ -95,7 +94,7 @@ PUBLIC int do_vmctl(struct proc * caller, message * m_ptr)
|
||||
(void *) rp->p_endpoint;
|
||||
break;
|
||||
default:
|
||||
minix_panic("VMREQUEST wrong type", NO_NUM);
|
||||
panic("VMREQUEST wrong type");
|
||||
}
|
||||
|
||||
rp->p_vmrequest.vmresult = VMSUSPEND;
|
||||
@@ -148,8 +147,7 @@ PUBLIC int do_vmctl(struct proc * caller, message * m_ptr)
|
||||
printf("suspended with stack: %s\n",
|
||||
p->p_vmrequest.stacktrace);
|
||||
#endif
|
||||
minix_panic("strange request type",
|
||||
p->p_vmrequest.type);
|
||||
panic( "strange request type: %d",p->p_vmrequest.type);
|
||||
}
|
||||
|
||||
RTS_UNSET(p, RTS_VMREQUEST);
|
||||
@@ -157,17 +155,17 @@ PUBLIC int do_vmctl(struct proc * caller, message * m_ptr)
|
||||
|
||||
case VMCTL_ENABLE_PAGING:
|
||||
if(vm_running)
|
||||
minix_panic("do_vmctl: paging already enabled", NO_NUM);
|
||||
panic("do_vmctl: paging already enabled");
|
||||
vm_init(p);
|
||||
if(!vm_running)
|
||||
minix_panic("do_vmctl: paging enabling failed", NO_NUM);
|
||||
panic("do_vmctl: paging enabling failed");
|
||||
vmassert(p->p_delivermsg_lin ==
|
||||
umap_local(p, D, p->p_delivermsg_vir, sizeof(message)));
|
||||
if ((err = arch_enable_paging()) != OK) {
|
||||
return err;
|
||||
}
|
||||
if(newmap(caller, p, (struct mem_map *) m_ptr->SVMCTL_VALUE) != OK)
|
||||
minix_panic("do_vmctl: newmap failed", NO_NUM);
|
||||
panic("do_vmctl: newmap failed");
|
||||
FIXLINMSG(p);
|
||||
vmassert(p->p_delivermsg_lin);
|
||||
return OK;
|
||||
|
||||
Reference in New Issue
Block a user