Ignore:
File:
1 edited

Legend:

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

    r9c31643 rc7bbf029  
    102102#include <arch/barrier.h>
    103103#include <bool.h>
     104#include <stdlib.h>
     105#include <malloc.h>
    104106#include "private/async.h"
    105107
     
    430432       
    431433        fid_t fid = fibril_create(notification_fibril, msg);
     434        if (fid == 0) {
     435                free(msg);
     436                futex_up(&async_futex);
     437                return false;
     438        }
     439       
    432440        fibril_add_ready(fid);
    433441       
     
    681689        conn->wdata.fid = fibril_create(connection_fibril, conn);
    682690       
    683         if (!conn->wdata.fid) {
     691        if (conn->wdata.fid == 0) {
    684692                free(conn);
     693               
    685694                if (callid)
    686695                        ipc_answer_0(callid, ENOMEM);
     696               
    687697                return (uintptr_t) NULL;
    688698        }
     
    853863{
    854864        fid_t fid = fibril_create(async_manager_fibril, NULL);
    855         fibril_add_manager(fid);
     865        if (fid != 0)
     866                fibril_add_manager(fid);
    856867}
    857868
     
    15631574 * @param dst     Address of the beginning of the destination buffer.
    15641575 * @param size    Size of the destination buffer.
     1576 * @param flags   Flags to control the data transfer.
    15651577 *
    15661578 * @return Zero on success or a negative error code from errno.h.
    15671579 *
    15681580 */
    1569 int async_data_read_start(int phoneid, void *dst, size_t size)
    1570 {
    1571         return async_req_2_0(phoneid, IPC_M_DATA_READ, (sysarg_t) dst,
    1572             (sysarg_t) size);
     1581int
     1582async_data_read_start_generic(int phoneid, void *dst, size_t size, int flags)
     1583{
     1584        return async_req_3_0(phoneid, IPC_M_DATA_READ, (sysarg_t) dst,
     1585            (sysarg_t) size, (sysarg_t) flags);
    15731586}
    15741587
     
    16601673 * @param src     Address of the beginning of the source buffer.
    16611674 * @param size    Size of the source buffer.
     1675 * @param flags   Flags to control the data transfer.
    16621676 *
    16631677 * @return Zero on success or a negative error code from errno.h.
    16641678 *
    16651679 */
    1666 int async_data_write_start(int phoneid, const void *src, size_t size)
    1667 {
    1668         return async_req_2_0(phoneid, IPC_M_DATA_WRITE, (sysarg_t) src,
    1669             (sysarg_t) size);
     1680int
     1681async_data_write_start_generic(int phoneid, const void *src, size_t size,
     1682    int flags)
     1683{
     1684        return async_req_3_0(phoneid, IPC_M_DATA_WRITE, (sysarg_t) src,
     1685            (sysarg_t) size, (sysarg_t) flags);
    16701686}
    16711687
Note: See TracChangeset for help on using the changeset viewer.