Changes in uspace/lib/c/generic/async.c [b7fd2a0:6a5d05b] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/c/generic/async.c
rb7fd2a0 r6a5d05b 205 205 ipc_call_t *dataptr; 206 206 207 errno_t retval;207 int retval; 208 208 } amsg_t; 209 209 … … 511 511 static FIBRIL_CONDVAR_INITIALIZE(avail_phone_cv); 512 512 513 errno_t async_create_port(iface_t iface, async_port_handler_t handler,513 int async_create_port(iface_t iface, async_port_handler_t handler, 514 514 void *data, port_id_t *port_id) 515 515 { … … 698 698 * 699 699 */ 700 static errno_t connection_fibril(void *arg)700 static int connection_fibril(void *arg) 701 701 { 702 702 assert(arg); … … 847 847 * 848 848 */ 849 errno_t async_create_callback_port(async_exch_t *exch, iface_t iface, sysarg_t arg1,849 int async_create_callback_port(async_exch_t *exch, iface_t iface, sysarg_t arg1, 850 850 sysarg_t arg2, async_port_handler_t handler, void *data, port_id_t *port_id) 851 851 { … … 860 860 &answer); 861 861 862 errno_t ret;862 int ret; 863 863 async_wait_for(req, &ret); 864 864 if (ret != EOK) 865 return ( errno_t) ret;865 return (int) ret; 866 866 867 867 sysarg_t phone_hash = IPC_GET_ARG5(answer); … … 1056 1056 * 1057 1057 */ 1058 errno_t async_irq_subscribe(int inr, async_notification_handler_t handler,1058 int async_irq_subscribe(int inr, async_notification_handler_t handler, 1059 1059 void *data, const irq_code_t *ucode, cap_handle_t *handle) 1060 1060 { … … 1078 1078 1079 1079 cap_handle_t cap; 1080 errno_t rc = ipc_irq_subscribe(inr, imethod, ucode, &cap);1080 int rc = ipc_irq_subscribe(inr, imethod, ucode, &cap); 1081 1081 if (rc == EOK && handle != NULL) { 1082 1082 *handle = cap; … … 1092 1092 * 1093 1093 */ 1094 errno_t async_irq_unsubscribe(int cap)1094 int async_irq_unsubscribe(int cap) 1095 1095 { 1096 1096 // TODO: Remove entry from hash table … … 1109 1109 * 1110 1110 */ 1111 errno_t async_event_subscribe(event_type_t evno,1111 int async_event_subscribe(event_type_t evno, 1112 1112 async_notification_handler_t handler, void *data) 1113 1113 { … … 1142 1142 * 1143 1143 */ 1144 errno_t async_event_task_subscribe(event_task_type_t evno,1144 int async_event_task_subscribe(event_task_type_t evno, 1145 1145 async_notification_handler_t handler, void *data) 1146 1146 { … … 1173 1173 * 1174 1174 */ 1175 errno_t async_event_unmask(event_type_t evno)1175 int async_event_unmask(event_type_t evno) 1176 1176 { 1177 1177 return ipc_event_unmask(evno); … … 1185 1185 * 1186 1186 */ 1187 errno_t async_event_task_unmask(event_task_type_t evno)1187 int async_event_task_unmask(event_task_type_t evno) 1188 1188 { 1189 1189 return ipc_event_task_unmask(evno); … … 1437 1437 * 1438 1438 */ 1439 static errno_t async_manager_worker(void)1439 static int async_manager_worker(void) 1440 1440 { 1441 1441 while (true) { … … 1489 1489 1490 1490 ipc_call_t call; 1491 errno_t rc = ipc_wait_cycle(&call, timeout, flags);1491 int rc = ipc_wait_cycle(&call, timeout, flags); 1492 1492 1493 1493 atomic_dec(&threads_in_ipc_wait); … … 1521 1521 * 1522 1522 */ 1523 static errno_t async_manager_fibril(void *arg)1523 static int async_manager_fibril(void *arg) 1524 1524 { 1525 1525 futex_up(&async_futex); … … 1597 1597 * 1598 1598 */ 1599 void reply_received(void *arg, errno_t retval, ipc_call_t *data)1599 void reply_received(void *arg, int retval, ipc_call_t *data) 1600 1600 { 1601 1601 assert(arg); … … 1709 1709 * 1710 1710 */ 1711 void async_wait_for(aid_t amsgid, errno_t *retval)1711 void async_wait_for(aid_t amsgid, int *retval) 1712 1712 { 1713 1713 assert(amsgid); … … 1755 1755 * 1756 1756 */ 1757 errno_t async_wait_timeout(aid_t amsgid, errno_t *retval, suseconds_t timeout)1757 int async_wait_timeout(aid_t amsgid, int *retval, suseconds_t timeout) 1758 1758 { 1759 1759 assert(amsgid); … … 1856 1856 void async_usleep(suseconds_t timeout) 1857 1857 { 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); 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); 1866 1865 1867 1866 futex_down(&async_futex); 1868 1867 1869 async_insert_timeout(& msg->wdata);1868 async_insert_timeout(&awaiter); 1870 1869 1871 1870 /* Leave the async_futex locked when entering this function */ … … 1873 1872 1874 1873 /* Futex is up automatically after fibril_switch() */ 1875 1876 amsg_destroy(msg);1877 1874 } 1878 1875 … … 1918 1915 * 1919 1916 */ 1920 errno_t async_req_fast(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1,1917 int async_req_fast(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1, 1921 1918 sysarg_t arg2, sysarg_t arg3, sysarg_t arg4, sysarg_t *r1, sysarg_t *r2, 1922 1919 sysarg_t *r3, sysarg_t *r4, sysarg_t *r5) … … 1929 1926 &result); 1930 1927 1931 errno_t rc;1928 int rc; 1932 1929 async_wait_for(aid, &rc); 1933 1930 … … 1970 1967 * 1971 1968 */ 1972 errno_t async_req_slow(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1,1969 int async_req_slow(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1, 1973 1970 sysarg_t arg2, sysarg_t arg3, sysarg_t arg4, sysarg_t arg5, sysarg_t *r1, 1974 1971 sysarg_t *r2, sysarg_t *r3, sysarg_t *r4, sysarg_t *r5) … … 1981 1978 &result); 1982 1979 1983 errno_t rc;1980 int rc; 1984 1981 async_wait_for(aid, &rc); 1985 1982 … … 2045 2042 } 2046 2043 2047 errno_t async_answer_0(cap_handle_t chandle, errno_t retval)2044 int async_answer_0(cap_handle_t chandle, int retval) 2048 2045 { 2049 2046 return ipc_answer_0(chandle, retval); 2050 2047 } 2051 2048 2052 errno_t async_answer_1(cap_handle_t chandle, errno_t retval, sysarg_t arg1)2049 int async_answer_1(cap_handle_t chandle, int retval, sysarg_t arg1) 2053 2050 { 2054 2051 return ipc_answer_1(chandle, retval, arg1); 2055 2052 } 2056 2053 2057 errno_t async_answer_2(cap_handle_t chandle, errno_t retval, sysarg_t arg1,2054 int async_answer_2(cap_handle_t chandle, int retval, sysarg_t arg1, 2058 2055 sysarg_t arg2) 2059 2056 { … … 2061 2058 } 2062 2059 2063 errno_t async_answer_3(cap_handle_t chandle, errno_t retval, sysarg_t arg1,2060 int async_answer_3(cap_handle_t chandle, int retval, sysarg_t arg1, 2064 2061 sysarg_t arg2, sysarg_t arg3) 2065 2062 { … … 2067 2064 } 2068 2065 2069 errno_t async_answer_4(cap_handle_t chandle, errno_t retval, sysarg_t arg1,2066 int async_answer_4(cap_handle_t chandle, int retval, sysarg_t arg1, 2070 2067 sysarg_t arg2, sysarg_t arg3, sysarg_t arg4) 2071 2068 { … … 2073 2070 } 2074 2071 2075 errno_t async_answer_5(cap_handle_t chandle, errno_t retval, sysarg_t arg1,2072 int async_answer_5(cap_handle_t chandle, int retval, sysarg_t arg1, 2076 2073 sysarg_t arg2, sysarg_t arg3, sysarg_t arg4, sysarg_t arg5) 2077 2074 { … … 2079 2076 } 2080 2077 2081 errno_t async_forward_fast(cap_handle_t chandle, async_exch_t *exch,2078 int async_forward_fast(cap_handle_t chandle, async_exch_t *exch, 2082 2079 sysarg_t imethod, sysarg_t arg1, sysarg_t arg2, unsigned int mode) 2083 2080 { … … 2088 2085 } 2089 2086 2090 errno_t async_forward_slow(cap_handle_t chandle, async_exch_t *exch,2087 int async_forward_slow(cap_handle_t chandle, async_exch_t *exch, 2091 2088 sysarg_t imethod, sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, 2092 2089 sysarg_t arg4, sysarg_t arg5, unsigned int mode) … … 2111 2108 * 2112 2109 */ 2113 errno_t async_connect_to_me(async_exch_t *exch, sysarg_t arg1, sysarg_t arg2,2110 int async_connect_to_me(async_exch_t *exch, sysarg_t arg1, sysarg_t arg2, 2114 2111 sysarg_t arg3) 2115 2112 { … … 2121 2118 &answer); 2122 2119 2123 errno_t rc;2120 int rc; 2124 2121 async_wait_for(req, &rc); 2125 2122 if (rc != EOK) 2126 return ( errno_t) rc;2123 return (int) rc; 2127 2124 2128 2125 return EOK; 2129 2126 } 2130 2127 2131 static errno_t async_connect_me_to_internal(int phone, sysarg_t arg1, sysarg_t arg2,2128 static int async_connect_me_to_internal(int phone, sysarg_t arg1, sysarg_t arg2, 2132 2129 sysarg_t arg3, sysarg_t arg4, int *out_phone) 2133 2130 { … … 2148 2145 msg, reply_received); 2149 2146 2150 errno_t rc;2147 int rc; 2151 2148 async_wait_for((aid_t) msg, &rc); 2152 2149 … … 2186 2183 2187 2184 int phone; 2188 errno_t rc = async_connect_me_to_internal(exch->phone, arg1, arg2, arg3,2185 int rc = async_connect_me_to_internal(exch->phone, arg1, arg2, arg3, 2189 2186 0, &phone); 2190 2187 if (rc != EOK) { … … 2239 2236 2240 2237 int phone; 2241 errno_t rc = async_connect_me_to_internal(exch->phone, iface, arg2,2238 int rc = async_connect_me_to_internal(exch->phone, iface, arg2, 2242 2239 arg3, 0, &phone); 2243 2240 if (rc != EOK) { … … 2310 2307 2311 2308 int phone; 2312 errno_t rc = async_connect_me_to_internal(exch->phone, arg1, arg2, arg3,2309 int rc = async_connect_me_to_internal(exch->phone, arg1, arg2, arg3, 2313 2310 IPC_FLAG_BLOCKING, &phone); 2314 2311 … … 2364 2361 2365 2362 int phone; 2366 errno_t rc = async_connect_me_to_internal(exch->phone, iface, arg2,2363 int rc = async_connect_me_to_internal(exch->phone, iface, arg2, 2367 2364 arg3, IPC_FLAG_BLOCKING, &phone); 2368 2365 if (rc != EOK) { … … 2400 2397 2401 2398 cap_handle_t phone; 2402 errno_t rc = ipc_connect_kbox(id, &phone);2399 int rc = ipc_connect_kbox(id, &phone); 2403 2400 if (rc != EOK) { 2404 2401 errno = rc; … … 2424 2421 } 2425 2422 2426 static errno_t async_hangup_internal(int phone)2423 static int async_hangup_internal(int phone) 2427 2424 { 2428 2425 return ipc_hangup(phone); … … 2436 2433 * 2437 2434 */ 2438 errno_t async_hangup(async_sess_t *sess)2435 int async_hangup(async_sess_t *sess) 2439 2436 { 2440 2437 async_exch_t *exch; … … 2447 2444 fibril_mutex_lock(&async_sess_mutex); 2448 2445 2449 errno_t rc = async_hangup_internal(sess->phone);2446 int rc = async_hangup_internal(sess->phone); 2450 2447 2451 2448 while (!list_empty(&sess->exch_list)) { … … 2519 2516 } else if (mgmt == EXCHANGE_PARALLEL) { 2520 2517 int phone; 2521 errno_t rc;2518 int rc; 2522 2519 2523 2520 retry: … … 2616 2613 * 2617 2614 */ 2618 errno_t async_share_in_start(async_exch_t *exch, size_t size, sysarg_t arg,2615 int async_share_in_start(async_exch_t *exch, size_t size, sysarg_t arg, 2619 2616 unsigned int *flags, void **dst) 2620 2617 { … … 2624 2621 sysarg_t _flags = 0; 2625 2622 sysarg_t _dst = (sysarg_t) -1; 2626 errno_t res = async_req_2_4(exch, IPC_M_SHARE_IN, (sysarg_t) size,2623 int res = async_req_2_4(exch, IPC_M_SHARE_IN, (sysarg_t) size, 2627 2624 arg, NULL, &_flags, NULL, &_dst); 2628 2625 … … 2676 2673 * 2677 2674 */ 2678 errno_t async_share_in_finalize(cap_handle_t chandle, void *src, unsigned int flags)2675 int async_share_in_finalize(cap_handle_t chandle, void *src, unsigned int flags) 2679 2676 { 2680 2677 return ipc_answer_3(chandle, EOK, (sysarg_t) src, (sysarg_t) flags, … … 2691 2688 * 2692 2689 */ 2693 errno_t async_share_out_start(async_exch_t *exch, void *src, unsigned int flags)2690 int async_share_out_start(async_exch_t *exch, void *src, unsigned int flags) 2694 2691 { 2695 2692 if (exch == NULL) … … 2746 2743 * 2747 2744 */ 2748 errno_t async_share_out_finalize(cap_handle_t chandle, void **dst)2745 int async_share_out_finalize(cap_handle_t chandle, void **dst) 2749 2746 { 2750 2747 return ipc_answer_2(chandle, EOK, (sysarg_t) __entry, (sysarg_t) dst); … … 2777 2774 * 2778 2775 */ 2779 errno_t async_data_read_start(async_exch_t *exch, void *dst, size_t size)2776 int async_data_read_start(async_exch_t *exch, void *dst, size_t size) 2780 2777 { 2781 2778 if (exch == NULL) … … 2851 2848 * 2852 2849 */ 2853 errno_t async_data_read_finalize(cap_handle_t chandle, const void *src, size_t size)2850 int async_data_read_finalize(cap_handle_t chandle, const void *src, size_t size) 2854 2851 { 2855 2852 return ipc_answer_2(chandle, EOK, (sysarg_t) src, (sysarg_t) size); … … 2859 2856 * 2860 2857 */ 2861 errno_t async_data_read_forward_fast(async_exch_t *exch, sysarg_t imethod,2858 int async_data_read_forward_fast(async_exch_t *exch, sysarg_t imethod, 2862 2859 sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, sysarg_t arg4, 2863 2860 ipc_call_t *dataptr) … … 2879 2876 } 2880 2877 2881 errno_t retval = ipc_forward_fast(chandle, exch->phone, 0, 0, 0,2878 int retval = ipc_forward_fast(chandle, exch->phone, 0, 0, 0, 2882 2879 IPC_FF_ROUTE_FROM_ME); 2883 2880 if (retval != EOK) { … … 2887 2884 } 2888 2885 2889 errno_t rc;2886 int rc; 2890 2887 async_wait_for(msg, &rc); 2891 2888 2892 return ( errno_t) rc;2889 return (int) rc; 2893 2890 } 2894 2891 … … 2902 2899 * 2903 2900 */ 2904 errno_t async_data_write_start(async_exch_t *exch, const void *src, size_t size)2901 int async_data_write_start(async_exch_t *exch, const void *src, size_t size) 2905 2902 { 2906 2903 if (exch == NULL) … … 2976 2973 * 2977 2974 */ 2978 errno_t async_data_write_finalize(cap_handle_t chandle, void *dst, size_t size)2975 int async_data_write_finalize(cap_handle_t chandle, void *dst, size_t size) 2979 2976 { 2980 2977 return ipc_answer_2(chandle, EOK, (sysarg_t) dst, (sysarg_t) size); … … 3002 2999 * 3003 3000 */ 3004 errno_t async_data_write_accept(void **data, const bool nullterm,3001 int async_data_write_accept(void **data, const bool nullterm, 3005 3002 const size_t min_size, const size_t max_size, const size_t granularity, 3006 3003 size_t *received) … … 3042 3039 } 3043 3040 3044 errno_t rc = async_data_write_finalize(chandle, arg_data, size);3041 int rc = async_data_write_finalize(chandle, arg_data, size); 3045 3042 if (rc != EOK) { 3046 3043 free(arg_data); … … 3065 3062 * 3066 3063 */ 3067 void async_data_write_void( errno_t retval)3064 void async_data_write_void(int retval) 3068 3065 { 3069 3066 cap_handle_t chandle; … … 3075 3072 * 3076 3073 */ 3077 errno_t async_data_write_forward_fast(async_exch_t *exch, sysarg_t imethod,3074 int async_data_write_forward_fast(async_exch_t *exch, sysarg_t imethod, 3078 3075 sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, sysarg_t arg4, 3079 3076 ipc_call_t *dataptr) … … 3095 3092 } 3096 3093 3097 errno_t retval = ipc_forward_fast(chandle, exch->phone, 0, 0, 0,3094 int retval = ipc_forward_fast(chandle, exch->phone, 0, 0, 0, 3098 3095 IPC_FF_ROUTE_FROM_ME); 3099 3096 if (retval != EOK) { … … 3103 3100 } 3104 3101 3105 errno_t rc;3102 int rc; 3106 3103 async_wait_for(msg, &rc); 3107 3104 3108 return ( errno_t) rc;3105 return (int) rc; 3109 3106 } 3110 3107 … … 3200 3197 } 3201 3198 3202 errno_t async_state_change_start(async_exch_t *exch, sysarg_t arg1, sysarg_t arg2,3199 int async_state_change_start(async_exch_t *exch, sysarg_t arg1, sysarg_t arg2, 3203 3200 sysarg_t arg3, async_exch_t *other_exch) 3204 3201 { … … 3228 3225 } 3229 3226 3230 errno_t async_state_change_finalize(cap_handle_t chandle, async_exch_t *other_exch)3227 int async_state_change_finalize(cap_handle_t chandle, async_exch_t *other_exch) 3231 3228 { 3232 3229 return ipc_answer_1(chandle, EOK, other_exch->phone);
Note:
See TracChangeset
for help on using the changeset viewer.