Changeset 3209923 in mainline for uspace/lib/libc/include/ipc/ipc.h
- Timestamp:
- 2007-11-20T09:12:49Z (18 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- b74959bd
- Parents:
- bc50fc42
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/libc/include/ipc/ipc.h
rbc50fc42 r3209923 38 38 #include <kernel/ipc/ipc.h> 39 39 #include <kernel/ddi/irq.h> 40 #include <libc.h>41 40 #include <sys/types.h> 42 41 #include <kernel/synch/synch.h> … … 184 183 ipcarg_t *result5); 185 184 186 187 185 extern ipc_callid_t ipc_wait_cycle(ipc_call_t *call, uint32_t usec, int flags); 188 186 extern ipc_callid_t ipc_wait_for_call_timeout(ipc_call_t *data, uint32_t usec); … … 194 192 195 193 #define ipc_answer_fast_0(callid, retval) \ 196 194 ipc_answer_fast((callid), (retval), 0, 0) 197 195 #define ipc_answer_fast_1(callid, retval, arg1) \ 198 196 ipc_answer_fast((callid), (retval), (arg1), 0) 199 197 extern ipcarg_t ipc_answer_fast(ipc_callid_t callid, ipcarg_t retval, 200 198 ipcarg_t arg1, ipcarg_t arg2); 201 199 extern ipcarg_t ipc_answer(ipc_callid_t callid, ipc_call_t *call); 202 200 203 #define ipc_call_async(phoneid, method, arg1, private, callback, can_preempt) \ 204 (ipc_call_async_2(phoneid, method, arg1, 0, private, callback, can_preempt)) 205 extern void ipc_call_async_2(int phoneid, ipcarg_t method, ipcarg_t arg1, 206 ipcarg_t arg2, void *private, ipc_async_callback_t callback, 207 int can_preempt); 208 extern void ipc_call_async_3(int phoneid, ipcarg_t method, ipcarg_t arg1, 209 ipcarg_t arg2, ipcarg_t arg3, void *private, ipc_async_callback_t callback, 210 int can_preempt); 201 /* 202 * 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 204 * arguments. The macros decide between the fast and the slow version according 205 * to m. 206 */ 207 #define ipc_call_async_0(phoneid, method, private, callback, \ 208 can_preempt) \ 209 ipc_call_async_fast((phoneid), (method), 0, 0, 0, 0, (private), \ 210 (callback), (can_preempt)) 211 #define ipc_call_async_1(phoneid, method, arg1, private, callback, \ 212 can_preempt) \ 213 ipc_call_async_fast((phoneid), (method), (arg1), 0, 0, 0, (private), \ 214 (callback), (can_preempt)) 215 #define ipc_call_async_2(phoneid, method, arg1, arg2, private, callback, \ 216 can_preempt) \ 217 ipc_call_async_fast((phoneid), (method), (arg1), (arg2), 0, 0, \ 218 (private), (callback), (can_preempt)) 219 #define ipc_call_async_3(phoneid, method, arg1, arg2, arg3, private, callback, \ 220 can_preempt) \ 221 ipc_call_async_fast((phoneid), (method), (arg1), (arg2), (arg3), 0, \ 222 (private), (callback), (can_preempt)) 223 #define ipc_call_async_4(phoneid, method, arg1, arg2, arg3, arg4, private, \ 224 callback, can_preempt) \ 225 ipc_call_async_fast((phoneid), (method), (arg1), (arg2), (arg3), \ 226 (arg4), (private), (callback), (can_preempt)) 227 #define ipc_call_async_5(phoneid, method, arg1, arg2, arg3, arg4, arg5, \ 228 private, callback, can_preempt) \ 229 ipc_call_async_slow((phoneid), (method), (arg1), (arg2), (arg3), \ 230 (arg4), (arg5), (private), (callback), (can_preempt)) 231 232 extern void ipc_call_async_fast(int phoneid, ipcarg_t method, ipcarg_t arg1, 233 ipcarg_t arg2, ipcarg_t arg3, ipcarg_t arg4, void *private, 234 ipc_async_callback_t callback, int can_preempt); 235 extern void ipc_call_async_slow(int phoneid, ipcarg_t method, ipcarg_t arg1, 236 ipcarg_t arg2, ipcarg_t arg3, ipcarg_t arg4, ipcarg_t arg5, void *private, 237 ipc_async_callback_t callback, int can_preempt); 211 238 212 239 extern int ipc_connect_to_me(int phoneid, int arg1, int arg2, ipcarg_t *phone);
Note:
See TracChangeset
for help on using the changeset viewer.