1 |
2 |
drasko |
/*
|
2 |
|
|
* Copyright (C) 2007, 2008 Bahadir Balban
|
3 |
|
|
*
|
4 |
|
|
* This file contains ipc definitions that are needed for server tasks
|
5 |
|
|
* to communicate with each other. For example common shared memory ids
|
6 |
|
|
* between two servers, or common ipc tags used between two servers are
|
7 |
|
|
* defined here.
|
8 |
|
|
*/
|
9 |
|
|
#ifndef __IPCDEFS_H__
|
10 |
|
|
#define __IPCDEFS_H__
|
11 |
|
|
|
12 |
|
|
#include <l4/api/ipc.h>
|
13 |
|
|
#include <l4lib/types.h>
|
14 |
|
|
|
15 |
|
|
/*** IPC Tags used between server tasks ***/
|
16 |
|
|
|
17 |
|
|
/*
|
18 |
|
|
* Tag 0 for L4_IPC_TAG_PFAULT
|
19 |
|
|
* Tag 1 for L4_IPC_TAG_UNDEF_FAULT
|
20 |
|
|
*/
|
21 |
|
|
|
22 |
|
|
/* For ping ponging */
|
23 |
|
|
#define L4_IPC_TAG_SYNC_EXTENDED 3
|
24 |
|
|
#define L4_IPC_TAG_SYNC_FULL 4
|
25 |
|
|
#define L4_IPC_TAG_SYNC 5
|
26 |
|
|
|
27 |
|
|
/* Posix system call tags */
|
28 |
|
|
#define L4_IPC_TAG_SHMGET 6
|
29 |
|
|
#define L4_IPC_TAG_SHMAT 7
|
30 |
|
|
#define L4_IPC_TAG_SHMDT 8
|
31 |
|
|
#define L4_IPC_TAG_MMAP 9
|
32 |
|
|
#define L4_IPC_TAG_MUNMAP 10
|
33 |
|
|
#define L4_IPC_TAG_MSYNC 11
|
34 |
|
|
#define L4_IPC_TAG_OPEN 12
|
35 |
|
|
#define L4_IPC_TAG_READ 13
|
36 |
|
|
#define L4_IPC_TAG_WRITE 14
|
37 |
|
|
#define L4_IPC_TAG_LSEEK 15
|
38 |
|
|
#define L4_IPC_TAG_CLOSE 16
|
39 |
|
|
#define L4_IPC_TAG_BRK 17
|
40 |
|
|
#define L4_IPC_TAG_READDIR 18
|
41 |
|
|
#define L4_IPC_TAG_MKDIR 19
|
42 |
|
|
#define L4_IPC_TAG_EXECVE 20
|
43 |
|
|
#define L4_IPC_TAG_CHDIR 21
|
44 |
|
|
#define L4_IPC_TAG_FORK 22
|
45 |
|
|
#define L4_IPC_TAG_STAT 23
|
46 |
|
|
#define L4_IPC_TAG_FSTAT 24
|
47 |
|
|
#define L4_IPC_TAG_FSYNC 25
|
48 |
|
|
#define L4_IPC_TAG_CLONE 26
|
49 |
|
|
#define L4_IPC_TAG_EXIT 27
|
50 |
|
|
#define L4_IPC_TAG_WAIT 28
|
51 |
|
|
|
52 |
|
|
/* Tags for ipc between fs0 and mm0 */
|
53 |
|
|
#define L4_IPC_TAG_TASKDATA 40
|
54 |
|
|
#define L4_IPC_TAG_PAGER_OPEN 41 /* vfs sends the pager open file data. */
|
55 |
|
|
#define L4_IPC_TAG_PAGER_READ 42 /* Pager reads file contents from vfs */
|
56 |
|
|
#define L4_IPC_TAG_PAGER_WRITE 43 /* Pager writes file contents to vfs */
|
57 |
|
|
#define L4_IPC_TAG_PAGER_CLOSE 44 /* Pager notifies vfs of file close */
|
58 |
|
|
#define L4_IPC_TAG_PAGER_UPDATE_STATS 45 /* Pager updates file stats in vfs */
|
59 |
|
|
#define L4_IPC_TAG_NOTIFY_FORK 46 /* Pager notifies vfs of process fork */
|
60 |
|
|
#define L4_IPC_TAG_NOTIFY_EXIT 47 /* Pager notifies vfs of process exit */
|
61 |
|
|
#define L4_IPC_TAG_PAGER_OPEN_BYPATH 48 /* Pager opens a vfs file by pathname */
|
62 |
|
|
|
63 |
|
|
#define L4_REQUEST_CAPABILITY 50 /* Request a capability from pager */
|
64 |
|
|
extern l4id_t pagerid;
|
65 |
|
|
|
66 |
|
|
/* For ipc to uart service (TODO: Shared mapping buffers???) */
|
67 |
|
|
#define L4_IPC_TAG_UART_SENDCHAR 51 /* Single char send (output) */
|
68 |
|
|
#define L4_IPC_TAG_UART_RECVCHAR 52 /* Single char recv (input) */
|
69 |
|
|
#define L4_IPC_TAG_UART_SENDBUF 53 /* Buffered send */
|
70 |
|
|
#define L4_IPC_TAG_UART_RECVBUF 54 /* Buffered recv */
|
71 |
|
|
|
72 |
|
|
/* For ipc to timer service (TODO: Shared mapping buffers???) */
|
73 |
|
|
#define L4_IPC_TAG_TIMER_GETTIME 55
|
74 |
|
|
#define L4_IPC_TAG_TIMER_SLEEP 56
|
75 |
|
|
#define L4_IPC_TAG_TIMER_WAKE_THREADS 57
|
76 |
|
|
|
77 |
|
|
#endif /* __IPCDEFS_H__ */
|