/** @addtogroup sctrace
* @{
*/
/** @file
*/
#include <stdio.h>
#include "ipc_desc.h"
#include "ipc.h"
void ipc_m_print(ipcarg_t method)
{
ipc_m_desc_t *desc;
/* FIXME: too slow */
desc = ipc_methods;
while (desc->number != 0) {
if (desc->number == method) {
printf("%s (%d)", desc
->name
, method
);
return;
}
++desc;
}
}
void ipc_parse_call_out(int phone, ipc_call_t *call, ipc_callid_t hash)
{
// printf("ipc_parse_call_out()\n");
printf("call id: 0x%x, phone: %d, method: ", hash
, phone
);
ipc_m_print(IPC_GET_METHOD(*call));
printf(" args: (%u, %u, %u, %u, %u)\n",
IPC_GET_ARG1(*call),
IPC_GET_ARG2(*call),
IPC_GET_ARG3(*call),
IPC_GET_ARG4(*call),
IPC_GET_ARG5(*call)
);
}
void ipc_parse_call_in(ipc_call_t *call, ipc_callid_t hash)
{
// printf("ipc_parse_call_in()\n");
/* printf("phone: %d, method: ", call->in_phone_hash);
ipc_m_print(IPC_GET_METHOD(*call));
printf(" args: (%u, %u, %u, %u, %u)\n",
IPC_GET_ARG1(*call),
IPC_GET_ARG2(*call),
IPC_GET_ARG3(*call),
IPC_GET_ARG4(*call),
IPC_GET_ARG5(*call)
);*/
}
void ipc_parse_call_sync(int phone, ipc_call_t *call, ipc_call_t *answer)
{
ipc_parse_call_out(phone, call, 0);
ipc_parse_call_in(answer, 0);
}
void ipc_parse_hangup(int phone, int rc)
{
printf("hangup phone %d -> %d\n", phone
, rc
);
}
/** @}
*/