From 8b12db741f21ea9b117a11bb9212d735009826a0 Mon Sep 17 00:00:00 2001 From: Bahadir Balban Date: Mon, 9 Nov 2009 22:01:44 +0200 Subject: [PATCH] Moved generic ipc flags to api/ipc.h --- include/l4/api/ipc.h | 28 +++++++++++++++++++++++++++- include/l4/glue/arm/message.h | 27 --------------------------- 2 files changed, 27 insertions(+), 28 deletions(-) diff --git a/include/l4/api/ipc.h b/include/l4/api/ipc.h index 08ffedf..84f81ca 100644 --- a/include/l4/api/ipc.h +++ b/include/l4/api/ipc.h @@ -1,7 +1,6 @@ #ifndef __IPC_H__ #define __IPC_H__ - #define L4_NILTHREAD 0xFFFFFFFF #define L4_ANYTHREAD 0xFFFFFFFE @@ -10,8 +9,35 @@ /* Pagefault */ #define L4_IPC_TAG_PFAULT 0 +#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_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) + #if defined (__KERNEL__) +/* Kernel-only flags */ +#define IPC_FLAGS_SHORT L4_IPC_FLAGS_SHORT +#define IPC_FLAGS_FULL L4_IPC_FLAGS_FULL +#define IPC_FLAGS_EXTENDED L4_IPC_FLAGS_EXTENDED +#define IPC_FLAGS_MSG_INDEX_MASK L4_IPC_FLAGS_MSG_INDEX_MASK +#define IPC_FLAGS_TYPE_MASK L4_IPC_FLAGS_TYPE_MASK +#define IPC_FLAGS_SIZE_MASK L4_IPC_FLAGS_SIZE_MASK +#define IPC_FLAGS_SIZE_SHIFT L4_IPC_FLAGS_SIZE_SHIFT +#define IPC_FLAGS_MSG_INDEX_SHIFT L4_IPC_FLAGS_MSG_INDEX_SHIFT +#define IPC_FLAGS_ERROR_MASK 0xF0000000 +#define IPC_FLAGS_ERROR_SHIFT 28 +#define IPC_EFAULT (1 << 28) +#define IPC_ENOIPC (1 << 29) + +#define IPC_EXTENDED_MAX_SIZE L4_IPC_EXTENDED_MAX_SIZE + /* * ipc syscall uses an ipc_type variable and send/recv * details are embedded in this variable. diff --git a/include/l4/glue/arm/message.h b/include/l4/glue/arm/message.h index bd21938..3dd0cf7 100644 --- a/include/l4/glue/arm/message.h +++ b/include/l4/glue/arm/message.h @@ -73,17 +73,6 @@ #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_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) - /* Primaries aren't used for memcopy. Those ops use this as a parameter */ #define L4_UTCB_FULL_BUFFER_SIZE (MR_REST * sizeof(int)) @@ -91,22 +80,6 @@ #if defined (__KERNEL__) -/* Kernel-only flags */ -#define IPC_FLAGS_SHORT L4_IPC_FLAGS_SHORT -#define IPC_FLAGS_FULL L4_IPC_FLAGS_FULL -#define IPC_FLAGS_EXTENDED L4_IPC_FLAGS_EXTENDED -#define IPC_FLAGS_MSG_INDEX_MASK L4_IPC_FLAGS_MSG_INDEX_MASK -#define IPC_FLAGS_TYPE_MASK L4_IPC_FLAGS_TYPE_MASK -#define IPC_FLAGS_SIZE_MASK L4_IPC_FLAGS_SIZE_MASK -#define IPC_FLAGS_SIZE_SHIFT L4_IPC_FLAGS_SIZE_SHIFT -#define IPC_FLAGS_MSG_INDEX_SHIFT L4_IPC_FLAGS_MSG_INDEX_SHIFT -#define IPC_FLAGS_ERROR_MASK 0xF0000000 -#define IPC_FLAGS_ERROR_SHIFT 28 -#define IPC_EFAULT (1 << 28) -#define IPC_ENOIPC (1 << 29) - -#define IPC_EXTENDED_MAX_SIZE (SZ_1K*2) - struct utcb { u32 mr[MR_TOTAL]; /* MRs that are mapped to real registers */ u32 saved_tag; /* Saved tag field for stacked ipcs */