Rev 4153 | Rev 4581 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 4153 | Rev 4327 | ||
---|---|---|---|
Line 96... | Line 96... | ||
96 | extern void async_set_client_connection(async_client_conn_t conn); |
96 | extern void async_set_client_connection(async_client_conn_t conn); |
97 | extern void async_set_interrupt_received(async_client_conn_t conn); |
97 | extern void async_set_interrupt_received(async_client_conn_t conn); |
98 | 98 | ||
99 | /* Wrappers for simple communication */ |
99 | /* Wrappers for simple communication */ |
100 | #define async_msg_0(phone, method) \ |
100 | #define async_msg_0(phone, method) \ |
101 | ipc_call_async_0((phone), (method), NULL, NULL, !in_interrupt_handler()) |
101 | ipc_call_async_0((phone), (method), NULL, NULL, true) |
102 | #define async_msg_1(phone, method, arg1) \ |
102 | #define async_msg_1(phone, method, arg1) \ |
103 | ipc_call_async_1((phone), (method), (arg1), NULL, NULL, \ |
103 | ipc_call_async_1((phone), (method), (arg1), NULL, NULL, \ |
104 | !in_interrupt_handler()) |
104 | true) |
105 | #define async_msg_2(phone, method, arg1, arg2) \ |
105 | #define async_msg_2(phone, method, arg1, arg2) \ |
106 | ipc_call_async_2((phone), (method), (arg1), (arg2), NULL, NULL, \ |
106 | ipc_call_async_2((phone), (method), (arg1), (arg2), NULL, NULL, \ |
107 | !in_interrupt_handler()) |
107 | true) |
108 | #define async_msg_3(phone, method, arg1, arg2, arg3) \ |
108 | #define async_msg_3(phone, method, arg1, arg2, arg3) \ |
109 | ipc_call_async_3((phone), (method), (arg1), (arg2), (arg3), NULL, NULL, \ |
109 | ipc_call_async_3((phone), (method), (arg1), (arg2), (arg3), NULL, NULL, \ |
110 | !in_interrupt_handler()) |
110 | true) |
111 | #define async_msg_4(phone, method, arg1, arg2, arg3, arg4) \ |
111 | #define async_msg_4(phone, method, arg1, arg2, arg3, arg4) \ |
112 | ipc_call_async_4((phone), (method), (arg1), (arg2), (arg3), (arg4), NULL, \ |
112 | ipc_call_async_4((phone), (method), (arg1), (arg2), (arg3), (arg4), NULL, \ |
113 | NULL, !in_interrupt_handler()) |
113 | NULL, true) |
114 | #define async_msg_5(phone, method, arg1, arg2, arg3, arg4, arg5) \ |
114 | #define async_msg_5(phone, method, arg1, arg2, arg3, arg4, arg5) \ |
115 | ipc_call_async_5((phone), (method), (arg1), (arg2), (arg3), (arg4), \ |
115 | ipc_call_async_5((phone), (method), (arg1), (arg2), (arg3), (arg4), \ |
116 | (arg5), NULL, NULL, !in_interrupt_handler()) |
116 | (arg5), NULL, NULL, true) |
117 | 117 | ||
118 | /* |
118 | /* |
119 | * User-friendly wrappers for async_req_fast() and async_req_slow(). The macros |
119 | * User-friendly wrappers for async_req_fast() and async_req_slow(). The macros |
120 | * are in the form async_req_m_n(), where m is the number of payload arguments |
120 | * are in the form async_req_m_n(), where m is the number of payload arguments |
121 | * and n is the number of return arguments. The macros decide between the fast |
121 | * and n is the number of return arguments. The macros decide between the fast |
Line 251... | Line 251... | ||
251 | static inline void async_serialize_end(void) |
251 | static inline void async_serialize_end(void) |
252 | { |
252 | { |
253 | fibril_dec_sercount(); |
253 | fibril_dec_sercount(); |
254 | } |
254 | } |
255 | 255 | ||
256 | extern bool in_interrupt_handler(void); |
- | |
257 | - | ||
258 | extern atomic_t async_futex; |
256 | extern atomic_t async_futex; |
259 | 257 | ||
260 | #endif |
258 | #endif |
261 | 259 | ||
262 | /** @} |
260 | /** @} |