Files
codezero/include/l4/api/ipc.h
Bahadir Balban 70d5ff33cd This patch adds ipc_sendrecv() and opens the way for client/server communication.
ipc_sendrecv() replaces ipc_sendwait() which was flawed. See ipc_sendrecv() for
how client/server communication works. Tested with page faults where the kernel
does an ipc_sendrecv() to faulty thread's pager and the pager successfully handles
the request, and returns back the result, which effectively restarts the faulty
thread.
2008-02-04 21:03:51 +00:00

31 lines
646 B
C

#ifndef __IPC_H__
#define __IPC_H__
#define L4_NILTHREAD -1
#define L4_ANYTHREAD -2
#define L4_IPC_TAG_MR_OFFSET 0
/* To synchronise two threads */
#define L4_IPC_TAG_WAIT 0
/* Pagefault */
#define L4_IPC_TAG_PFAULT 2
#if defined (__KERNEL__) /* These are kernel internal calls */
/* A helper call for sys_ipc() or internally created ipc paths. */
int ipc_send(l4id_t to);
int ipc_sendrecv(l4id_t to, l4id_t from);
/*
* This version sends an extra wait ipc to its receiver so that
* the receiver can explicitly make it runnable later by accepting
* this wait ipc.
*/
int ipc_sendwait(l4id_t tid);
#endif
#endif /* __IPC_H__ */