mirror of
https://github.com/drasko/codezero.git
synced 2026-01-12 02:43:15 +01:00
Moved generic ipc flags to api/ipc.h
This commit is contained in:
@@ -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.
|
||||
|
||||
@@ -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 */
|
||||
|
||||
Reference in New Issue
Block a user