Subversion Repositories HelenOS-historic

Rev

Rev 1089 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1089 Rev 1091
Line 33... Line 33...
33
#include <libc.h>
33
#include <libc.h>
34
#include <types.h>
34
#include <types.h>
35
 
35
 
36
typedef sysarg_t ipcarg_t;
36
typedef sysarg_t ipcarg_t;
37
typedef struct {
37
typedef struct {
38
    sysarg_t args[IPC_CALL_LEN];
38
    ipcarg_t args[IPC_CALL_LEN];
39
    sysarg_t phoneid;
39
    ipcarg_t phoneid;
40
} ipc_data_t ;
-
 
41
typedef struct {
-
 
42
    unsigned long long taskid;
-
 
43
    ipc_data_t data;
-
 
44
}ipc_call_t;
40
} ipc_call_t ;
45
typedef sysarg_t ipc_callid_t;
41
typedef sysarg_t ipc_callid_t;
46
 
42
 
47
typedef void (* ipc_async_callback_t)(void *private,
43
typedef void (* ipc_async_callback_t)(void *private, int retval,
48
                      int retval,
-
 
49
                      ipc_data_t *data);
44
                      ipc_call_t *data);
50
 
45
 
51
#define ipc_call_sync_2(phoneid, method, arg1, arg2, res1, res2) ipc_call_sync_3((phoneid), (method), (arg1), (arg2), 0, (res1), (res2), 0)
46
#define ipc_call_sync_2(phoneid, method, arg1, arg2, res1, res2) ipc_call_sync_3((phoneid), (method), (arg1), (arg2), 0, (res1), (res2), 0)
52
extern int ipc_call_sync_3(int phoneid, ipcarg_t method, ipcarg_t arg1,
47
extern int ipc_call_sync_3(int phoneid, ipcarg_t method, ipcarg_t arg1,
53
               ipcarg_t arg2, ipcarg_t arg3,
48
               ipcarg_t arg2, ipcarg_t arg3,
54
               ipcarg_t *result1, ipcarg_t *result2,
49
               ipcarg_t *result1, ipcarg_t *result2,
Line 63... Line 58...
63
 
58
 
64
#define ipc_call_async(phoneid,method,arg1,private, callback) (ipc_call_async_2(phoneid, method, arg1, 0, private, callback))
59
#define ipc_call_async(phoneid,method,arg1,private, callback) (ipc_call_async_2(phoneid, method, arg1, 0, private, callback))
65
void ipc_call_async_2(int phoneid, ipcarg_t method, ipcarg_t arg1,
60
void ipc_call_async_2(int phoneid, ipcarg_t method, ipcarg_t arg1,
66
              ipcarg_t arg2, void *private,
61
              ipcarg_t arg2, void *private,
67
              ipc_async_callback_t callback);
62
              ipc_async_callback_t callback);
68
int ipc_connect_to_me(int phoneid, int arg1, int arg2,
63
int ipc_connect_to_me(int phoneid, int arg1, int arg2, ipcarg_t *phone);
69
              unsigned long long *taskid);
-
 
70
int ipc_connect_me_to(int phoneid, int arg1, int arg2);
64
int ipc_connect_me_to(int phoneid, int arg1, int arg2);
71
int ipc_hangup(int phoneid);
65
int ipc_hangup(int phoneid);
72
 
66
 
73
#endif
67
#endif