Changes in uspace/lib/c/generic/async.c [3ca2e36:d768d4c8] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/c/generic/async.c
r3ca2e36 rd768d4c8 2279 2279 bool async_data_read_receive(ipc_callid_t *callid, size_t *size) 2280 2280 { 2281 ipc_call_t data; 2282 return async_data_read_receive_call(callid, &data, size); 2283 } 2284 2285 /** Wrapper for receiving the IPC_M_DATA_READ calls using the async framework. 2286 * 2287 * This wrapper only makes it more comfortable to receive IPC_M_DATA_READ 2288 * calls so that the user doesn't have to remember the meaning of each IPC 2289 * argument. 2290 * 2291 * So far, this wrapper is to be used from within a connection fibril. 2292 * 2293 * @param callid Storage for the hash of the IPC_M_DATA_READ. 2294 * @param size Storage for the maximum size. Can be NULL. 2295 * 2296 * @return True on success, false on failure. 2297 * 2298 */ 2299 bool async_data_read_receive_call(ipc_callid_t *callid, ipc_call_t *data, 2300 size_t *size) 2301 { 2281 2302 assert(callid); 2282 2283 ipc_call_t data;2284 *callid = async_get_call( &data);2285 2286 if (IPC_GET_IMETHOD( data) != IPC_M_DATA_READ)2303 assert(data); 2304 2305 *callid = async_get_call(data); 2306 2307 if (IPC_GET_IMETHOD(*data) != IPC_M_DATA_READ) 2287 2308 return false; 2288 2309 2289 2310 if (size) 2290 *size = (size_t) IPC_GET_ARG2( data);2311 *size = (size_t) IPC_GET_ARG2(*data); 2291 2312 2292 2313 return true; … … 2383 2404 bool async_data_write_receive(ipc_callid_t *callid, size_t *size) 2384 2405 { 2406 ipc_call_t data; 2407 return async_data_write_receive_call(callid, &data, size); 2408 } 2409 2410 /** Wrapper for receiving the IPC_M_DATA_WRITE calls using the async framework. 2411 * 2412 * This wrapper only makes it more comfortable to receive IPC_M_DATA_WRITE 2413 * calls so that the user doesn't have to remember the meaning of each IPC 2414 * argument. 2415 * 2416 * So far, this wrapper is to be used from within a connection fibril. 2417 * 2418 * @param callid Storage for the hash of the IPC_M_DATA_WRITE. 2419 * @param data Storage for the ipc call data. 2420 * @param size Storage for the suggested size. May be NULL. 2421 * 2422 * @return True on success, false on failure. 2423 * 2424 */ 2425 bool async_data_write_receive_call(ipc_callid_t *callid, ipc_call_t *data, 2426 size_t *size) 2427 { 2385 2428 assert(callid); 2386 2387 ipc_call_t data;2388 *callid = async_get_call( &data);2389 2390 if (IPC_GET_IMETHOD( data) != IPC_M_DATA_WRITE)2429 assert(data); 2430 2431 *callid = async_get_call(data); 2432 2433 if (IPC_GET_IMETHOD(*data) != IPC_M_DATA_WRITE) 2391 2434 return false; 2392 2435 2393 2436 if (size) 2394 *size = (size_t) IPC_GET_ARG2( data);2437 *size = (size_t) IPC_GET_ARG2(*data); 2395 2438 2396 2439 return true;
Note:
See TracChangeset
for help on using the changeset viewer.