kernel ipc debug: various fixes

. add receive hooks in the kernel to print asynchronously
	  delivered messages
	. do not rely on MF_REPLY_PEND to decide between calls and errors,
	  as that isn't reliable for asynchronous messages; try both instead
	. add _sendcall() that extract-mfield.sh can then reliably recognize
	  the fields for messages that are sent with just send()
	. add DEBUG_DUMPIPC_NAMES to restrict printed messages to
	  from/to given process names

Change-Id: Ia65eb02a69a2b58e73bf9f009987be06dda774a3
This commit is contained in:
Ben Gras
2013-05-01 19:02:06 +00:00
parent 85fd078707
commit 80846c4a79
10 changed files with 112 additions and 38 deletions

View File

@@ -1660,25 +1660,12 @@ int proc_nr; /* to whom should the reply go? */
int status; /* reply code */
{
/* Send a reply to a process that wanted to read or write data. */
message tty_mess;
tty_mess.m_type = code;
tty_mess.REP_ENDPT = proc_nr;
tty_mess.REP_STATUS = status;
assert(code == TASK_REPLY);
/* Don't reply to KERNEL (kernel messages) */
if (replyee == KERNEL) return;
/* TTY is not supposed to send a TTY_REVIVE message. The
* REVIVE message is gone, TTY_REVIVE is only used as an internal
* placeholder for something that is not supposed to be a message.
*/
if(code == TTY_REVIVE) {
printf("%s:%d: ", file, line);
panic("tty_reply sending TTY_REVIVE");
}
status = send(replyee, &tty_mess);
status = send_taskreply(replyee, proc_nr, status);
if (status != OK)
printf("tty`tty_reply: send to %d failed: %d\n", replyee, status);
}