root / lab4 / .minix-src / include / minix / ipcconst.h @ 13
History | View | Annotate | Download (1.43 KB)
1 |
#ifndef _IPC_CONST_H
|
---|---|
2 |
#define _IPC_CONST_H
|
3 |
|
4 |
#include <machine/ipcconst.h> |
5 |
|
6 |
/* System call numbers that are passed when trapping to the kernel. */
|
7 |
#define SEND 1 /* blocking send */ |
8 |
#define RECEIVE 2 /* blocking receive */ |
9 |
#define SENDREC 3 /* SEND + RECEIVE */ |
10 |
#define NOTIFY 4 /* asynchronous notify */ |
11 |
#define SENDNB 5 /* nonblocking send */ |
12 |
#define MINIX_KERNINFO 6 /* request kernel info structure */ |
13 |
#define SENDA 16 /* asynchronous send */ |
14 |
#define IPCNO_HIGHEST SENDA
|
15 |
/* Check that the message payload type doesn't grow past the maximum IPC payload size.
|
16 |
* This is a compile time check. */
|
17 |
#define _ASSERT_MSG_SIZE(msg_type) \
|
18 |
typedef int _ASSERT_##msg_type[/* CONSTCOND */sizeof(msg_type) == 56 ? 1 : -1] |
19 |
|
20 |
/* Macros for IPC status code manipulation. */
|
21 |
#define IPC_STATUS_CALL_SHIFT 0 |
22 |
#define IPC_STATUS_CALL_MASK 0x3F |
23 |
#define IPC_STATUS_CALL(status) \
|
24 |
(((status) >> IPC_STATUS_CALL_SHIFT) & IPC_STATUS_CALL_MASK) |
25 |
#define IPC_STATUS_CALL_TO(call) \
|
26 |
(((call) & IPC_STATUS_CALL_MASK) << IPC_STATUS_CALL_SHIFT) |
27 |
|
28 |
#define IPC_FLG_MSG_FROM_KERNEL 1 /* this message originated in the kernel on |
29 |
behalf of a process, this is a trusted
|
30 |
message, never reply to the sender
|
31 |
*/
|
32 |
#define IPC_STATUS_FLAGS_SHIFT 16 |
33 |
#define IPC_STATUS_FLAGS(flgs) ((flgs) << IPC_STATUS_FLAGS_SHIFT)
|
34 |
#define IPC_STATUS_FLAGS_TEST(status, flgs) \
|
35 |
(((status) >> IPC_STATUS_FLAGS_SHIFT) & (flgs)) |
36 |
#endif /* IPC_CONST_H */ |