Ignore:
File:
1 edited

Legend:

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

    r6a5d05b rb7fd2a0  
    205205        ipc_call_t *dataptr;
    206206       
    207         int retval;
     207        errno_t retval;
    208208} amsg_t;
    209209
     
    511511static FIBRIL_CONDVAR_INITIALIZE(avail_phone_cv);
    512512
    513 int async_create_port(iface_t iface, async_port_handler_t handler,
     513errno_t async_create_port(iface_t iface, async_port_handler_t handler,
    514514    void *data, port_id_t *port_id)
    515515{
     
    698698 *
    699699 */
    700 static int connection_fibril(void *arg)
     700static errno_t connection_fibril(void *arg)
    701701{
    702702        assert(arg);
     
    847847 *
    848848 */
    849 int async_create_callback_port(async_exch_t *exch, iface_t iface, sysarg_t arg1,
     849errno_t async_create_callback_port(async_exch_t *exch, iface_t iface, sysarg_t arg1,
    850850    sysarg_t arg2, async_port_handler_t handler, void *data, port_id_t *port_id)
    851851{
     
    860860            &answer);
    861861       
    862         int ret;
     862        errno_t ret;
    863863        async_wait_for(req, &ret);
    864864        if (ret != EOK)
    865                 return (int) ret;
     865                return (errno_t) ret;
    866866       
    867867        sysarg_t phone_hash = IPC_GET_ARG5(answer);
     
    10561056 *
    10571057 */
    1058 int async_irq_subscribe(int inr, async_notification_handler_t handler,
     1058errno_t async_irq_subscribe(int inr, async_notification_handler_t handler,
    10591059    void *data, const irq_code_t *ucode, cap_handle_t *handle)
    10601060{
     
    10781078       
    10791079        cap_handle_t cap;
    1080         int rc = ipc_irq_subscribe(inr, imethod, ucode, &cap);
     1080        errno_t rc = ipc_irq_subscribe(inr, imethod, ucode, &cap);
    10811081        if (rc == EOK && handle != NULL) {
    10821082                *handle = cap;
     
    10921092 *
    10931093 */
    1094 int async_irq_unsubscribe(int cap)
     1094errno_t async_irq_unsubscribe(int cap)
    10951095{
    10961096        // TODO: Remove entry from hash table
     
    11091109 *
    11101110 */
    1111 int async_event_subscribe(event_type_t evno,
     1111errno_t async_event_subscribe(event_type_t evno,
    11121112    async_notification_handler_t handler, void *data)
    11131113{
     
    11421142 *
    11431143 */
    1144 int async_event_task_subscribe(event_task_type_t evno,
     1144errno_t async_event_task_subscribe(event_task_type_t evno,
    11451145    async_notification_handler_t handler, void *data)
    11461146{
     
    11731173 *
    11741174 */
    1175 int async_event_unmask(event_type_t evno)
     1175errno_t async_event_unmask(event_type_t evno)
    11761176{
    11771177        return ipc_event_unmask(evno);
     
    11851185 *
    11861186 */
    1187 int async_event_task_unmask(event_task_type_t evno)
     1187errno_t async_event_task_unmask(event_task_type_t evno)
    11881188{
    11891189        return ipc_event_task_unmask(evno);
     
    14371437 *
    14381438 */
    1439 static int async_manager_worker(void)
     1439static errno_t async_manager_worker(void)
    14401440{
    14411441        while (true) {
     
    14891489               
    14901490                ipc_call_t call;
    1491                 int rc = ipc_wait_cycle(&call, timeout, flags);
     1491                errno_t rc = ipc_wait_cycle(&call, timeout, flags);
    14921492               
    14931493                atomic_dec(&threads_in_ipc_wait);
     
    15211521 *
    15221522 */
    1523 static int async_manager_fibril(void *arg)
     1523static errno_t async_manager_fibril(void *arg)
    15241524{
    15251525        futex_up(&async_futex);
     
    15971597 *
    15981598 */
    1599 void reply_received(void *arg, int retval, ipc_call_t *data)
     1599void reply_received(void *arg, errno_t retval, ipc_call_t *data)
    16001600{
    16011601        assert(arg);
     
    17091709 *
    17101710 */
    1711 void async_wait_for(aid_t amsgid, int *retval)
     1711void async_wait_for(aid_t amsgid, errno_t *retval)
    17121712{
    17131713        assert(amsgid);
     
    17551755 *
    17561756 */
    1757 int async_wait_timeout(aid_t amsgid, int *retval, suseconds_t timeout)
     1757errno_t async_wait_timeout(aid_t amsgid, errno_t *retval, suseconds_t timeout)
    17581758{
    17591759        assert(amsgid);
     
    18561856void async_usleep(suseconds_t timeout)
    18571857{
    1858         awaiter_t awaiter;
    1859         awaiter_initialize(&awaiter);
    1860        
    1861         awaiter.fid = fibril_get_id();
    1862        
    1863         getuptime(&awaiter.to_event.expires);
    1864         tv_add_diff(&awaiter.to_event.expires, timeout);
     1858        amsg_t *msg = amsg_create();
     1859        if (!msg)
     1860                return;
     1861       
     1862        msg->wdata.fid = fibril_get_id();
     1863       
     1864        getuptime(&msg->wdata.to_event.expires);
     1865        tv_add_diff(&msg->wdata.to_event.expires, timeout);
    18651866       
    18661867        futex_down(&async_futex);
    18671868       
    1868         async_insert_timeout(&awaiter);
     1869        async_insert_timeout(&msg->wdata);
    18691870       
    18701871        /* Leave the async_futex locked when entering this function */
     
    18721873       
    18731874        /* Futex is up automatically after fibril_switch() */
     1875       
     1876        amsg_destroy(msg);
    18741877}
    18751878
     
    19151918 *
    19161919 */
    1917 int async_req_fast(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1,
     1920errno_t async_req_fast(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1,
    19181921    sysarg_t arg2, sysarg_t arg3, sysarg_t arg4, sysarg_t *r1, sysarg_t *r2,
    19191922    sysarg_t *r3, sysarg_t *r4, sysarg_t *r5)
     
    19261929            &result);
    19271930       
    1928         int rc;
     1931        errno_t rc;
    19291932        async_wait_for(aid, &rc);
    19301933       
     
    19671970 *
    19681971 */
    1969 int async_req_slow(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1,
     1972errno_t async_req_slow(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1,
    19701973    sysarg_t arg2, sysarg_t arg3, sysarg_t arg4, sysarg_t arg5, sysarg_t *r1,
    19711974    sysarg_t *r2, sysarg_t *r3, sysarg_t *r4, sysarg_t *r5)
     
    19781981            &result);
    19791982       
    1980         int rc;
     1983        errno_t rc;
    19811984        async_wait_for(aid, &rc);
    19821985       
     
    20422045}
    20432046
    2044 int async_answer_0(cap_handle_t chandle, int retval)
     2047errno_t async_answer_0(cap_handle_t chandle, errno_t retval)
    20452048{
    20462049        return ipc_answer_0(chandle, retval);
    20472050}
    20482051
    2049 int async_answer_1(cap_handle_t chandle, int retval, sysarg_t arg1)
     2052errno_t async_answer_1(cap_handle_t chandle, errno_t retval, sysarg_t arg1)
    20502053{
    20512054        return ipc_answer_1(chandle, retval, arg1);
    20522055}
    20532056
    2054 int async_answer_2(cap_handle_t chandle, int retval, sysarg_t arg1,
     2057errno_t async_answer_2(cap_handle_t chandle, errno_t retval, sysarg_t arg1,
    20552058    sysarg_t arg2)
    20562059{
     
    20582061}
    20592062
    2060 int async_answer_3(cap_handle_t chandle, int retval, sysarg_t arg1,
     2063errno_t async_answer_3(cap_handle_t chandle, errno_t retval, sysarg_t arg1,
    20612064    sysarg_t arg2, sysarg_t arg3)
    20622065{
     
    20642067}
    20652068
    2066 int async_answer_4(cap_handle_t chandle, int retval, sysarg_t arg1,
     2069errno_t async_answer_4(cap_handle_t chandle, errno_t retval, sysarg_t arg1,
    20672070    sysarg_t arg2, sysarg_t arg3, sysarg_t arg4)
    20682071{
     
    20702073}
    20712074
    2072 int async_answer_5(cap_handle_t chandle, int retval, sysarg_t arg1,
     2075errno_t async_answer_5(cap_handle_t chandle, errno_t retval, sysarg_t arg1,
    20732076    sysarg_t arg2, sysarg_t arg3, sysarg_t arg4, sysarg_t arg5)
    20742077{
     
    20762079}
    20772080
    2078 int async_forward_fast(cap_handle_t chandle, async_exch_t *exch,
     2081errno_t async_forward_fast(cap_handle_t chandle, async_exch_t *exch,
    20792082    sysarg_t imethod, sysarg_t arg1, sysarg_t arg2, unsigned int mode)
    20802083{
     
    20852088}
    20862089
    2087 int async_forward_slow(cap_handle_t chandle, async_exch_t *exch,
     2090errno_t async_forward_slow(cap_handle_t chandle, async_exch_t *exch,
    20882091    sysarg_t imethod, sysarg_t arg1, sysarg_t arg2, sysarg_t arg3,
    20892092    sysarg_t arg4, sysarg_t arg5, unsigned int mode)
     
    21082111 *
    21092112 */
    2110 int async_connect_to_me(async_exch_t *exch, sysarg_t arg1, sysarg_t arg2,
     2113errno_t async_connect_to_me(async_exch_t *exch, sysarg_t arg1, sysarg_t arg2,
    21112114    sysarg_t arg3)
    21122115{
     
    21182121            &answer);
    21192122       
    2120         int rc;
     2123        errno_t rc;
    21212124        async_wait_for(req, &rc);
    21222125        if (rc != EOK)
    2123                 return (int) rc;
     2126                return (errno_t) rc;
    21242127       
    21252128        return EOK;
    21262129}
    21272130
    2128 static int async_connect_me_to_internal(int phone, sysarg_t arg1, sysarg_t arg2,
     2131static errno_t async_connect_me_to_internal(int phone, sysarg_t arg1, sysarg_t arg2,
    21292132    sysarg_t arg3, sysarg_t arg4, int *out_phone)
    21302133{
     
    21452148            msg, reply_received);
    21462149       
    2147         int rc;
     2150        errno_t rc;
    21482151        async_wait_for((aid_t) msg, &rc);
    21492152       
     
    21832186       
    21842187        int phone;
    2185         int rc = async_connect_me_to_internal(exch->phone, arg1, arg2, arg3,
     2188        errno_t rc = async_connect_me_to_internal(exch->phone, arg1, arg2, arg3,
    21862189            0, &phone);
    21872190        if (rc != EOK) {
     
    22362239       
    22372240        int phone;
    2238         int rc = async_connect_me_to_internal(exch->phone, iface, arg2,
     2241        errno_t rc = async_connect_me_to_internal(exch->phone, iface, arg2,
    22392242            arg3, 0, &phone);
    22402243        if (rc != EOK) {
     
    23072310       
    23082311        int phone;
    2309         int rc = async_connect_me_to_internal(exch->phone, arg1, arg2, arg3,
     2312        errno_t rc = async_connect_me_to_internal(exch->phone, arg1, arg2, arg3,
    23102313            IPC_FLAG_BLOCKING, &phone);
    23112314       
     
    23612364       
    23622365        int phone;
    2363         int rc = async_connect_me_to_internal(exch->phone, iface, arg2,
     2366        errno_t rc = async_connect_me_to_internal(exch->phone, iface, arg2,
    23642367            arg3, IPC_FLAG_BLOCKING, &phone);
    23652368        if (rc != EOK) {
     
    23972400       
    23982401        cap_handle_t phone;
    2399         int rc = ipc_connect_kbox(id, &phone);
     2402        errno_t rc = ipc_connect_kbox(id, &phone);
    24002403        if (rc != EOK) {
    24012404                errno = rc;
     
    24212424}
    24222425
    2423 static int async_hangup_internal(int phone)
     2426static errno_t async_hangup_internal(int phone)
    24242427{
    24252428        return ipc_hangup(phone);
     
    24332436 *
    24342437 */
    2435 int async_hangup(async_sess_t *sess)
     2438errno_t async_hangup(async_sess_t *sess)
    24362439{
    24372440        async_exch_t *exch;
     
    24442447        fibril_mutex_lock(&async_sess_mutex);
    24452448       
    2446         int rc = async_hangup_internal(sess->phone);
     2449        errno_t rc = async_hangup_internal(sess->phone);
    24472450       
    24482451        while (!list_empty(&sess->exch_list)) {
     
    25162519                } else if (mgmt == EXCHANGE_PARALLEL) {
    25172520                        int phone;
    2518                         int rc;
     2521                        errno_t rc;
    25192522                       
    25202523                retry:
     
    26132616 *
    26142617 */
    2615 int async_share_in_start(async_exch_t *exch, size_t size, sysarg_t arg,
     2618errno_t async_share_in_start(async_exch_t *exch, size_t size, sysarg_t arg,
    26162619    unsigned int *flags, void **dst)
    26172620{
     
    26212624        sysarg_t _flags = 0;
    26222625        sysarg_t _dst = (sysarg_t) -1;
    2623         int res = async_req_2_4(exch, IPC_M_SHARE_IN, (sysarg_t) size,
     2626        errno_t res = async_req_2_4(exch, IPC_M_SHARE_IN, (sysarg_t) size,
    26242627            arg, NULL, &_flags, NULL, &_dst);
    26252628       
     
    26732676 *
    26742677 */
    2675 int async_share_in_finalize(cap_handle_t chandle, void *src, unsigned int flags)
     2678errno_t async_share_in_finalize(cap_handle_t chandle, void *src, unsigned int flags)
    26762679{
    26772680        return ipc_answer_3(chandle, EOK, (sysarg_t) src, (sysarg_t) flags,
     
    26882691 *
    26892692 */
    2690 int async_share_out_start(async_exch_t *exch, void *src, unsigned int flags)
     2693errno_t async_share_out_start(async_exch_t *exch, void *src, unsigned int flags)
    26912694{
    26922695        if (exch == NULL)
     
    27432746 *
    27442747 */
    2745 int async_share_out_finalize(cap_handle_t chandle, void **dst)
     2748errno_t async_share_out_finalize(cap_handle_t chandle, void **dst)
    27462749{
    27472750        return ipc_answer_2(chandle, EOK, (sysarg_t) __entry, (sysarg_t) dst);
     
    27742777 *
    27752778 */
    2776 int async_data_read_start(async_exch_t *exch, void *dst, size_t size)
     2779errno_t async_data_read_start(async_exch_t *exch, void *dst, size_t size)
    27772780{
    27782781        if (exch == NULL)
     
    28482851 *
    28492852 */
    2850 int async_data_read_finalize(cap_handle_t chandle, const void *src, size_t size)
     2853errno_t async_data_read_finalize(cap_handle_t chandle, const void *src, size_t size)
    28512854{
    28522855        return ipc_answer_2(chandle, EOK, (sysarg_t) src, (sysarg_t) size);
     
    28562859 *
    28572860 */
    2858 int async_data_read_forward_fast(async_exch_t *exch, sysarg_t imethod,
     2861errno_t async_data_read_forward_fast(async_exch_t *exch, sysarg_t imethod,
    28592862    sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, sysarg_t arg4,
    28602863    ipc_call_t *dataptr)
     
    28762879        }
    28772880       
    2878         int retval = ipc_forward_fast(chandle, exch->phone, 0, 0, 0,
     2881        errno_t retval = ipc_forward_fast(chandle, exch->phone, 0, 0, 0,
    28792882            IPC_FF_ROUTE_FROM_ME);
    28802883        if (retval != EOK) {
     
    28842887        }
    28852888       
    2886         int rc;
     2889        errno_t rc;
    28872890        async_wait_for(msg, &rc);
    28882891       
    2889         return (int) rc;
     2892        return (errno_t) rc;
    28902893}
    28912894
     
    28992902 *
    29002903 */
    2901 int async_data_write_start(async_exch_t *exch, const void *src, size_t size)
     2904errno_t async_data_write_start(async_exch_t *exch, const void *src, size_t size)
    29022905{
    29032906        if (exch == NULL)
     
    29732976 *
    29742977 */
    2975 int async_data_write_finalize(cap_handle_t chandle, void *dst, size_t size)
     2978errno_t async_data_write_finalize(cap_handle_t chandle, void *dst, size_t size)
    29762979{
    29772980        return ipc_answer_2(chandle, EOK, (sysarg_t) dst, (sysarg_t) size);
     
    29993002 *
    30003003 */
    3001 int async_data_write_accept(void **data, const bool nullterm,
     3004errno_t async_data_write_accept(void **data, const bool nullterm,
    30023005    const size_t min_size, const size_t max_size, const size_t granularity,
    30033006    size_t *received)
     
    30393042        }
    30403043       
    3041         int rc = async_data_write_finalize(chandle, arg_data, size);
     3044        errno_t rc = async_data_write_finalize(chandle, arg_data, size);
    30423045        if (rc != EOK) {
    30433046                free(arg_data);
     
    30623065 *
    30633066 */
    3064 void async_data_write_void(int retval)
     3067void async_data_write_void(errno_t retval)
    30653068{
    30663069        cap_handle_t chandle;
     
    30723075 *
    30733076 */
    3074 int async_data_write_forward_fast(async_exch_t *exch, sysarg_t imethod,
     3077errno_t async_data_write_forward_fast(async_exch_t *exch, sysarg_t imethod,
    30753078    sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, sysarg_t arg4,
    30763079    ipc_call_t *dataptr)
     
    30923095        }
    30933096       
    3094         int retval = ipc_forward_fast(chandle, exch->phone, 0, 0, 0,
     3097        errno_t retval = ipc_forward_fast(chandle, exch->phone, 0, 0, 0,
    30953098            IPC_FF_ROUTE_FROM_ME);
    30963099        if (retval != EOK) {
     
    31003103        }
    31013104       
    3102         int rc;
     3105        errno_t rc;
    31033106        async_wait_for(msg, &rc);
    31043107       
    3105         return (int) rc;
     3108        return (errno_t) rc;
    31063109}
    31073110
     
    31973200}
    31983201
    3199 int async_state_change_start(async_exch_t *exch, sysarg_t arg1, sysarg_t arg2,
     3202errno_t async_state_change_start(async_exch_t *exch, sysarg_t arg1, sysarg_t arg2,
    32003203    sysarg_t arg3, async_exch_t *other_exch)
    32013204{
     
    32253228}
    32263229
    3227 int async_state_change_finalize(cap_handle_t chandle, async_exch_t *other_exch)
     3230errno_t async_state_change_finalize(cap_handle_t chandle, async_exch_t *other_exch)
    32283231{
    32293232        return ipc_answer_1(chandle, EOK, other_exch->phone);
Note: See TracChangeset for help on using the changeset viewer.