Changes in uspace/lib/c/generic/async.c [d768d4c8:df956b9b] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/c/generic/async.c
rd768d4c8 rdf956b9b 2090 2090 * @param arg User defined argument. 2091 2091 * @param flags Storage for the received flags. Can be NULL. 2092 * @param dst Destination address space area base. Cannot be NULL. 2092 * @param dst Address of the storage for the destination address space area 2093 * base address. Cannot be NULL. 2093 2094 * 2094 2095 * @return Zero on success or a negative error code from errno.h. … … 2218 2219 * 2219 2220 * @param callid Hash of the IPC_M_DATA_WRITE call to answer. 2220 * @param dst Destination address space area base address. 2221 * @param dst Address of the storage for the destination address space area 2222 * base address. 2221 2223 * 2222 2224 * @return Zero on success or a value from @ref errno.h on failure. … … 2279 2281 bool async_data_read_receive(ipc_callid_t *callid, size_t *size) 2280 2282 { 2283 assert(callid); 2284 2281 2285 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 { 2302 assert(callid); 2303 assert(data); 2304 2305 *callid = async_get_call(data); 2306 2307 if (IPC_GET_IMETHOD(*data) != IPC_M_DATA_READ) 2286 *callid = async_get_call(&data); 2287 2288 if (IPC_GET_IMETHOD(data) != IPC_M_DATA_READ) 2308 2289 return false; 2309 2290 2310 2291 if (size) 2311 *size = (size_t) IPC_GET_ARG2( *data);2292 *size = (size_t) IPC_GET_ARG2(data); 2312 2293 2313 2294 return true; … … 2404 2385 bool async_data_write_receive(ipc_callid_t *callid, size_t *size) 2405 2386 { 2387 assert(callid); 2388 2406 2389 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 { 2428 assert(callid); 2429 assert(data); 2430 2431 *callid = async_get_call(data); 2432 2433 if (IPC_GET_IMETHOD(*data) != IPC_M_DATA_WRITE) 2390 *callid = async_get_call(&data); 2391 2392 if (IPC_GET_IMETHOD(data) != IPC_M_DATA_WRITE) 2434 2393 return false; 2435 2394 2436 2395 if (size) 2437 *size = (size_t) IPC_GET_ARG2( *data);2396 *size = (size_t) IPC_GET_ARG2(data); 2438 2397 2439 2398 return true;
Note:
See TracChangeset
for help on using the changeset viewer.