Subversion Repositories HelenOS

Rev

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

Rev 2618 Rev 2619
Line 188... Line 188...
188
{
188
{
189
    return ipc_wait_for_call_timeout(data, SYNCH_NO_TIMEOUT);
189
    return ipc_wait_for_call_timeout(data, SYNCH_NO_TIMEOUT);
190
}
190
}
191
extern ipc_callid_t ipc_trywait_for_call(ipc_call_t *data);
191
extern ipc_callid_t ipc_trywait_for_call(ipc_call_t *data);
192
 
192
 
-
 
193
/*
-
 
194
 * User-friendly wrappers for ipc_answer_fast() and ipc_answer_slow().
-
 
195
 * They are in the form of ipc_answer_m(), where m is the number of return
-
 
196
 * arguments. The macros decide between the fast and the slow version according
-
 
197
 * to m.
-
 
198
 */
193
#define ipc_answer_fast_0(callid, retval) \
199
#define ipc_answer_0(callid, retval) \
194
    ipc_answer_fast((callid), (retval), 0, 0)
200
    ipc_answer_fast((callid), (retval), 0, 0, 0, 0)
195
#define ipc_answer_fast_1(callid, retval, arg1) \
201
#define ipc_answer_1(callid, retval, arg1) \
196
    ipc_answer_fast((callid), (retval), (arg1), 0)
202
    ipc_answer_fast((callid), (retval), (arg1), 0, 0, 0)
-
 
203
#define ipc_answer_2(callid, retval, arg1, arg2) \
-
 
204
    ipc_answer_fast((callid), (retval), (arg1), (arg2), 0, 0)
-
 
205
#define ipc_answer_3(callid, retval, arg1, arg2, arg3) \
-
 
206
    ipc_answer_fast((callid), (retval), (arg1), (arg2), (arg3), 0)
-
 
207
#define ipc_answer_4(callid, retval, arg1, arg2, arg3, arg4) \
-
 
208
    ipc_answer_fast((callid), (retval), (arg1), (arg2), (arg3), (arg4))
-
 
209
#define ipc_answer_5(callid, retval, arg1, arg2, arg3, arg4, arg5) \
-
 
210
    ipc_answer_slow((callid), (retval), (arg1), (arg2), (arg3), (arg4), (arg5))
-
 
211
 
197
extern ipcarg_t ipc_answer_fast(ipc_callid_t callid, ipcarg_t retval,
212
extern ipcarg_t ipc_answer_fast(ipc_callid_t callid, ipcarg_t retval,
198
    ipcarg_t arg1, ipcarg_t arg2);
213
    ipcarg_t arg1, ipcarg_t arg2, ipcarg_t arg3, ipcarg_t arg4);
199
extern ipcarg_t ipc_answer(ipc_callid_t callid, ipc_call_t *call);
214
extern ipcarg_t ipc_answer_slow(ipc_callid_t callid, ipcarg_t retval,
-
 
215
    ipcarg_t arg1, ipcarg_t arg2, ipcarg_t arg3, ipcarg_t arg4, ipcarg_t arg5);
200
 
216
 
201
/*
217
/*
202
 * User-friendly wrappers for ipc_call_async_fast() and ipc_call_async_slow().
218
 * User-friendly wrappers for ipc_call_async_fast() and ipc_call_async_slow().
203
 * They are in the form of ipc_call_async_m(), where m is the number of payload
219
 * They are in the form of ipc_call_async_m(), where m is the number of payload
204
 * arguments. The macros decide between the fast and the slow version according
220
 * arguments. The macros decide between the fast and the slow version according
Line 242... Line 258...
242
extern int ipc_register_irq(int inr, int devno, int method, irq_code_t *code);
258
extern int ipc_register_irq(int inr, int devno, int method, irq_code_t *code);
243
extern int ipc_unregister_irq(int inr, int devno);
259
extern int ipc_unregister_irq(int inr, int devno);
244
extern int ipc_forward_fast(ipc_callid_t callid, int phoneid, int method,
260
extern int ipc_forward_fast(ipc_callid_t callid, int phoneid, int method,
245
    ipcarg_t arg1);
261
    ipcarg_t arg1);
246
extern int ipc_data_send(int phoneid, void *src, size_t size);
262
extern int ipc_data_send(int phoneid, void *src, size_t size);
247
extern int ipc_data_receive(ipc_callid_t *callid, ipc_call_t *call, void **dst,
263
extern int ipc_data_receive(ipc_callid_t *callid, void **dst, size_t *size);
248
    size_t *size);
-
 
249
extern ipcarg_t ipc_data_deliver(ipc_callid_t callid, ipc_call_t *call,
264
extern ipcarg_t ipc_data_deliver(ipc_callid_t callid, void *dst, size_t size);
250
    void *dst, size_t size);
-
 
251
 
265
 
252
#endif
266
#endif
253
 
267
 
254
/** @}
268
/** @}
255
 */
269
 */