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:
@@ -1223,6 +1223,9 @@ int try_deliver_senda(struct proc *caller_ptr,
|
||||
dst_ptr->p_misc_flags |= MF_DELIVERMSG;
|
||||
IPC_STATUS_ADD_CALL(dst_ptr, SENDA);
|
||||
RTS_UNSET(dst_ptr, RTS_RECEIVING);
|
||||
#if DEBUG_IPC_HOOK
|
||||
hook_ipc_msgrecv(&dst_ptr->p_delivermsg, caller_ptr, dst_ptr);
|
||||
#endif
|
||||
} else if (r == OK) {
|
||||
/* Inform receiver that something is pending */
|
||||
set_sys_bit(priv(dst_ptr)->s_asyn_pending,
|
||||
@@ -1398,6 +1401,9 @@ static int try_one(struct proc *src_ptr, struct proc *dst_ptr)
|
||||
dst_ptr->p_delivermsg = tabent.msg;
|
||||
dst_ptr->p_delivermsg.m_source = src_ptr->p_endpoint;
|
||||
dst_ptr->p_misc_flags |= MF_DELIVERMSG;
|
||||
#if DEBUG_IPC_HOOK
|
||||
hook_ipc_msgrecv(&dst_ptr->p_delivermsg, src_ptr, dst_ptr);
|
||||
#endif
|
||||
|
||||
store_result:
|
||||
/* Store results for sender */
|
||||
|
||||
Reference in New Issue
Block a user