Unstable changes for ipc - Fork fails for some reason

This commit is contained in:
Bahadir Balban
2009-05-23 18:43:55 +03:00
parent 577cc34db6
commit 5ac5889a0f
9 changed files with 205 additions and 43 deletions

View File

@@ -104,6 +104,9 @@ struct ktcb {
struct spinlock waitlock;
struct waitqueue_head *waiting_on;
struct waitqueue *wq;
/* Extended ipc buffer, points to the space after ktcb */
char extended_ipc_buffer[];
};
/* Per thread kernel stack unified on a single page. */

View File

@@ -73,14 +73,17 @@
#define MR0_REGISTER r3
#define MR_RETURN_REGISTER r3
#define L4_IPC_FLAGS_SHORT 0x00000000 /* Short IPC involves just primary message registers */
#define L4_IPC_FLAGS_FULL 0x00000001 /* Full IPC involves full UTCB copy */
#define L4_IPC_FLAGS_EXTENDED 0x00000002 /* Extended IPC can page-fault and copy up to 2KB */
#define L4_IPC_FLAGS_MSG_INDEX_MASK 0x00000FF0 /* Index of message register with buffer pointer */
#define L4_IPC_FLAGS_MASK 0x0000000F
#define L4_IPC_FLAGS_TYPE_MASK 0x0000000F
#define L4_IPC_FLAGS_SIZE_MASK 0x0FFF0000
#define L4_IPC_FLAGS_SIZE_SHIFT 16
#define L4_IPC_FLAGS_MSG_INDEX_SHIFT 4
#define L4_IPC_EXTENDED_MAX_SIZE (SZ_1K*2)
#include INC_GLUE(memlayout.h)
#if defined (__KERNEL__)