Added per-task ipc flags checking instead of the active task flags.

Previously during ipc copy, only the currently active task flags were
checked. This means the flags of whoever doing the actual copy was used
in the ipc. Now flags are stored in the ktcb and checked by the copy routine.

Current use of the flags is to determine short/full/extended ipc.
This commit is contained in:
Bahadir Balban
2009-05-28 11:50:39 +03:00
parent 53310aa31b
commit b977e6597e
6 changed files with 88 additions and 52 deletions

View File

@@ -87,6 +87,13 @@
#include INC_GLUE(memlayout.h)
#if defined (__KERNEL__)
/* Kernel-only flags */
#define L4_IPC_FLAGS_ERROR_MASK 0xF0000000
#define L4_IPC_FLAGS_ERROR_SHIFT 28
#define L4_IPC_EFAULT (1 << 28)
#define L4_IPC_ENOIPC (1 << 29)
struct utcb {
u32 mr[MR_TOTAL]; /* MRs that are mapped to real registers */
u32 saved_tag; /* Saved tag field for stacked ipcs */