Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/c/generic/async.c

    r3ca2e36 rd768d4c8  
    22792279bool async_data_read_receive(ipc_callid_t *callid, size_t *size)
    22802280{
     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 */
     2299bool async_data_read_receive_call(ipc_callid_t *callid, ipc_call_t *data,
     2300    size_t *size)
     2301{
    22812302        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)
    22872308                return false;
    22882309       
    22892310        if (size)
    2290                 *size = (size_t) IPC_GET_ARG2(data);
     2311                *size = (size_t) IPC_GET_ARG2(*data);
    22912312       
    22922313        return true;
     
    23832404bool async_data_write_receive(ipc_callid_t *callid, size_t *size)
    23842405{
     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 */
     2425bool async_data_write_receive_call(ipc_callid_t *callid, ipc_call_t *data,
     2426    size_t *size)
     2427{
    23852428        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)
    23912434                return false;
    23922435       
    23932436        if (size)
    2394                 *size = (size_t) IPC_GET_ARG2(data);
     2437                *size = (size_t) IPC_GET_ARG2(*data);
    23952438       
    23962439        return true;
Note: See TracChangeset for help on using the changeset viewer.