Subversion Repositories HelenOS

Compare Revisions

Ignore whitespace Rev 998 → Rev 999

/uspace/trunk/libipc/include/ipc.h
32,27 → 32,30
#include <kernel/ipc/ipc.h>
#include <libc.h>
 
typedef sysarg_t ipc_data_t[IPC_CALL_LEN];
typedef sysarg_t ipcarg_t;
typedef ipcarg_t ipc_data_t[IPC_CALL_LEN];
typedef sysarg_t ipc_callid_t;
 
typedef void (* ipc_async_callback_t)(ipc_data_t *data);
typedef void (* ipc_async_callback_t)(void *private,
int retval,
ipc_data_t *data);
 
#define ipc_call_sync_2(phoneid, method, arg1, arg2, res1, res2) ipc_call_sync_3((phoneid), (method), (arg1), (arg2), 0, (res1), (res2), 0)
extern int ipc_call_sync_3(int phoneid, sysarg_t method, sysarg_t arg1,
sysarg_t arg2, sysarg_t arg3,
sysarg_t *result1, sysarg_t *result2,
sysarg_t *result3);
extern int ipc_call_sync_3(int phoneid, ipcarg_t method, ipcarg_t arg1,
ipcarg_t arg2, ipcarg_t arg3,
ipcarg_t *result1, ipcarg_t *result2,
ipcarg_t *result3);
 
 
extern int ipc_call_sync(int phoneid, sysarg_t method, sysarg_t arg1,
sysarg_t *result);
extern int ipc_call_sync(int phoneid, ipcarg_t method, ipcarg_t arg1,
ipcarg_t *result);
extern int ipc_wait_for_call(ipc_data_t *data, int flags);
extern void ipc_answer(ipc_callid_t callid, sysarg_t retval, sysarg_t arg1,
sysarg_t arg2);
extern void ipc_answer(ipc_callid_t callid, ipcarg_t retval, ipcarg_t arg1,
ipcarg_t arg2);
 
#define ipc_call_async(phoneid,method,arg1,callback) (ipc_call_async_2(phoneid, method, arg1, 0, callback))
void ipc_call_async_2(int phoneid, sysarg_t method, sysarg_t arg1,
sysarg_t arg2,
#define ipc_call_async(phoneid,method,arg1,private, callback) (ipc_call_async_2(phoneid, method, arg1, 0, private, callback))
void ipc_call_async_2(int phoneid, ipcarg_t method, ipcarg_t arg1,
ipcarg_t arg2, void *private,
ipc_async_callback_t callback);
 
#endif