Full IPC working.

- Test0 has a full ipc mr read/write test.
- A full ipc occurs for definite only if both parties use the FULL IPC flag.
  Otherwise the thread that makes the ipc copy rules on whether it was a short
  or a full copy.
This commit is contained in:
Bahadir Balban
2009-05-19 15:39:01 +03:00
parent 3bbbcdfefa
commit cc96e2c86c
7 changed files with 30 additions and 22 deletions

View File

@@ -153,7 +153,6 @@ static inline int l4_sendrecv_full(l4id_t to, l4id_t from, unsigned int tag)
BUG_ON(to == L4_NILTHREAD || from == L4_NILTHREAD);
l4_set_tag(tag);
printf("%s: to %d from %d tag %u\n", __FUNCTION__, to, from, tag);
err = l4_ipc(to, from, L4_IPC_FLAGS_FULL);
return err;
@@ -256,7 +255,6 @@ static inline void l4_print_mrs()
*/
static inline int l4_ipc_return(int retval)
{
// unsigned int tag = l4_get_tag();
l4id_t sender = l4_get_sender();
l4_set_retval(retval);

View File

@@ -63,7 +63,7 @@ static inline void write_mr(unsigned int offset, unsigned int val)
if (offset < MR_TOTAL)
l4_get_utcb()->mr[offset] = val;
else
l4_get_utcb()->mr[offset - MR_TOTAL] = val;
l4_get_utcb()->mr_rest[offset - MR_TOTAL] = val;
}
#endif /* !__ASSEMBLY__ */