Fixed various minor issues.

Tag setting before ipc via l4 libraries don't seem to work, whereas
c0 internally generated ipcs do it correctly.
This commit is contained in:
Bahadir Balban
2008-02-05 18:30:11 +00:00
parent 6b3d936933
commit 4f2e1d3e94
8 changed files with 20 additions and 37 deletions

View File

@@ -139,20 +139,6 @@ int ipc_recv(l4id_t senderid)
return 0;
}
/* FIXME: REMOVE: remove this completely and replace by ipc_sendrecv() */
int ipc_sendwait(l4id_t to)
{
unsigned int *mregs = KTCB_REF_MR0(current);
/* Send actual message */
ipc_send(to);
/* Send wait message */
mregs[L4_IPC_TAG_MR_OFFSET] = L4_IPC_TAG_WAIT;
ipc_send(to);
return 0;
}
/*
* Both sends and receives mregs in the same call. This is mainly by user
* tasks for client server communication with system servers.

View File

@@ -22,7 +22,7 @@
* for all ipc parties.
*/
#define MR_TAG 0
#define MR_SENDERID 1
#define MR_SENDER 1
#define MR_UNUSED_START 2
/* Send data fault ipc to the faulty task's pager */
@@ -30,7 +30,7 @@ void fault_ipc_to_pager(u32 faulty_pc, u32 fsr, u32 far)
{
/* mr[0] has the fault tag. The rest is the fault structure */
u32 mr[MR_TOTAL] = { [MR_TAG] = L4_IPC_TAG_PFAULT,
[MR_SENDERID] = current->tid };
[MR_SENDER] = current->tid };
fault_kdata_t *fault = (fault_kdata_t *)&mr[MR_UNUSED_START];
/* Fill in fault information to pass over during ipc */