Changeset 5a6cc679 in mainline for uspace/lib/c/generic/async.c
- Timestamp:
- 2018-01-31T02:21:24Z (7 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- a0a9cc2
- Parents:
- 132ab5d1
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/c/generic/async.c
r132ab5d1 r5a6cc679 205 205 ipc_call_t *dataptr; 206 206 207 int retval;207 errno_t retval; 208 208 } amsg_t; 209 209 … … 511 511 static FIBRIL_CONDVAR_INITIALIZE(avail_phone_cv); 512 512 513 int async_create_port(iface_t iface, async_port_handler_t handler,513 errno_t 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 int connection_fibril(void *arg)700 static errno_t connection_fibril(void *arg) 701 701 { 702 702 assert(arg); … … 847 847 * 848 848 */ 849 int async_create_callback_port(async_exch_t *exch, iface_t iface, sysarg_t arg1,849 errno_t 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 int ret;862 errno_t ret; 863 863 async_wait_for(req, &ret); 864 864 if (ret != EOK) 865 return ( int) ret;865 return (errno_t) ret; 866 866 867 867 sysarg_t phone_hash = IPC_GET_ARG5(answer); … … 1056 1056 * 1057 1057 */ 1058 int async_irq_subscribe(int inr, async_notification_handler_t handler,1058 errno_t 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 int rc = ipc_irq_subscribe(inr, imethod, ucode, &cap);1080 errno_t rc = ipc_irq_subscribe(inr, imethod, ucode, &cap); 1081 1081 if (rc == EOK && handle != NULL) { 1082 1082 *handle = cap; … … 1092 1092 * 1093 1093 */ 1094 int async_irq_unsubscribe(int cap)1094 errno_t async_irq_unsubscribe(int cap) 1095 1095 { 1096 1096 // TODO: Remove entry from hash table … … 1109 1109 * 1110 1110 */ 1111 int async_event_subscribe(event_type_t evno,1111 errno_t async_event_subscribe(event_type_t evno, 1112 1112 async_notification_handler_t handler, void *data) 1113 1113 { … … 1142 1142 * 1143 1143 */ 1144 int async_event_task_subscribe(event_task_type_t evno,1144 errno_t 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 int async_event_unmask(event_type_t evno)1175 errno_t async_event_unmask(event_type_t evno) 1176 1176 { 1177 1177 return ipc_event_unmask(evno); … … 1185 1185 * 1186 1186 */ 1187 int async_event_task_unmask(event_task_type_t evno)1187 errno_t 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 int async_manager_worker(void)1439 static errno_t async_manager_worker(void) 1440 1440 { 1441 1441 while (true) { … … 1489 1489 1490 1490 ipc_call_t call; 1491 int rc = ipc_wait_cycle(&call, timeout, flags);1491 errno_t rc = ipc_wait_cycle(&call, timeout, flags); 1492 1492 1493 1493 atomic_dec(&threads_in_ipc_wait); … … 1521 1521 * 1522 1522 */ 1523 static int async_manager_fibril(void *arg)1523 static errno_t async_manager_fibril(void *arg) 1524 1524 { 1525 1525 futex_up(&async_futex); … … 1597 1597 * 1598 1598 */ 1599 void reply_received(void *arg, int retval, ipc_call_t *data)1599 void reply_received(void *arg, errno_t retval, ipc_call_t *data) 1600 1600 { 1601 1601 assert(arg); … … 1709 1709 * 1710 1710 */ 1711 void async_wait_for(aid_t amsgid, int *retval)1711 void async_wait_for(aid_t amsgid, errno_t *retval) 1712 1712 { 1713 1713 assert(amsgid); … … 1755 1755 * 1756 1756 */ 1757 int async_wait_timeout(aid_t amsgid, int *retval, suseconds_t timeout)1757 errno_t async_wait_timeout(aid_t amsgid, errno_t *retval, suseconds_t timeout) 1758 1758 { 1759 1759 assert(amsgid); … … 1915 1915 * 1916 1916 */ 1917 int async_req_fast(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1,1917 errno_t async_req_fast(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1, 1918 1918 sysarg_t arg2, sysarg_t arg3, sysarg_t arg4, sysarg_t *r1, sysarg_t *r2, 1919 1919 sysarg_t *r3, sysarg_t *r4, sysarg_t *r5) … … 1926 1926 &result); 1927 1927 1928 int rc;1928 errno_t rc; 1929 1929 async_wait_for(aid, &rc); 1930 1930 … … 1967 1967 * 1968 1968 */ 1969 int async_req_slow(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1,1969 errno_t async_req_slow(async_exch_t *exch, sysarg_t imethod, sysarg_t arg1, 1970 1970 sysarg_t arg2, sysarg_t arg3, sysarg_t arg4, sysarg_t arg5, sysarg_t *r1, 1971 1971 sysarg_t *r2, sysarg_t *r3, sysarg_t *r4, sysarg_t *r5) … … 1978 1978 &result); 1979 1979 1980 int rc;1980 errno_t rc; 1981 1981 async_wait_for(aid, &rc); 1982 1982 … … 2042 2042 } 2043 2043 2044 int async_answer_0(cap_handle_t chandle, int retval)2044 errno_t async_answer_0(cap_handle_t chandle, errno_t retval) 2045 2045 { 2046 2046 return ipc_answer_0(chandle, retval); 2047 2047 } 2048 2048 2049 int async_answer_1(cap_handle_t chandle, int retval, sysarg_t arg1)2049 errno_t async_answer_1(cap_handle_t chandle, errno_t retval, sysarg_t arg1) 2050 2050 { 2051 2051 return ipc_answer_1(chandle, retval, arg1); 2052 2052 } 2053 2053 2054 int async_answer_2(cap_handle_t chandle, int retval, sysarg_t arg1,2054 errno_t async_answer_2(cap_handle_t chandle, errno_t retval, sysarg_t arg1, 2055 2055 sysarg_t arg2) 2056 2056 { … … 2058 2058 } 2059 2059 2060 int async_answer_3(cap_handle_t chandle, int retval, sysarg_t arg1,2060 errno_t async_answer_3(cap_handle_t chandle, errno_t retval, sysarg_t arg1, 2061 2061 sysarg_t arg2, sysarg_t arg3) 2062 2062 { … … 2064 2064 } 2065 2065 2066 int async_answer_4(cap_handle_t chandle, int retval, sysarg_t arg1,2066 errno_t async_answer_4(cap_handle_t chandle, errno_t retval, sysarg_t arg1, 2067 2067 sysarg_t arg2, sysarg_t arg3, sysarg_t arg4) 2068 2068 { … … 2070 2070 } 2071 2071 2072 int async_answer_5(cap_handle_t chandle, int retval, sysarg_t arg1,2072 errno_t async_answer_5(cap_handle_t chandle, errno_t retval, sysarg_t arg1, 2073 2073 sysarg_t arg2, sysarg_t arg3, sysarg_t arg4, sysarg_t arg5) 2074 2074 { … … 2076 2076 } 2077 2077 2078 int async_forward_fast(cap_handle_t chandle, async_exch_t *exch,2078 errno_t async_forward_fast(cap_handle_t chandle, async_exch_t *exch, 2079 2079 sysarg_t imethod, sysarg_t arg1, sysarg_t arg2, unsigned int mode) 2080 2080 { … … 2085 2085 } 2086 2086 2087 int async_forward_slow(cap_handle_t chandle, async_exch_t *exch,2087 errno_t async_forward_slow(cap_handle_t chandle, async_exch_t *exch, 2088 2088 sysarg_t imethod, sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, 2089 2089 sysarg_t arg4, sysarg_t arg5, unsigned int mode) … … 2108 2108 * 2109 2109 */ 2110 int async_connect_to_me(async_exch_t *exch, sysarg_t arg1, sysarg_t arg2,2110 errno_t async_connect_to_me(async_exch_t *exch, sysarg_t arg1, sysarg_t arg2, 2111 2111 sysarg_t arg3) 2112 2112 { … … 2118 2118 &answer); 2119 2119 2120 int rc;2120 errno_t rc; 2121 2121 async_wait_for(req, &rc); 2122 2122 if (rc != EOK) 2123 return ( int) rc;2123 return (errno_t) rc; 2124 2124 2125 2125 return EOK; 2126 2126 } 2127 2127 2128 static int async_connect_me_to_internal(int phone, sysarg_t arg1, sysarg_t arg2,2128 static errno_t async_connect_me_to_internal(int phone, sysarg_t arg1, sysarg_t arg2, 2129 2129 sysarg_t arg3, sysarg_t arg4, int *out_phone) 2130 2130 { … … 2145 2145 msg, reply_received); 2146 2146 2147 int rc;2147 errno_t rc; 2148 2148 async_wait_for((aid_t) msg, &rc); 2149 2149 … … 2183 2183 2184 2184 int phone; 2185 int rc = async_connect_me_to_internal(exch->phone, arg1, arg2, arg3,2185 errno_t rc = async_connect_me_to_internal(exch->phone, arg1, arg2, arg3, 2186 2186 0, &phone); 2187 2187 if (rc != EOK) { … … 2236 2236 2237 2237 int phone; 2238 int rc = async_connect_me_to_internal(exch->phone, iface, arg2,2238 errno_t rc = async_connect_me_to_internal(exch->phone, iface, arg2, 2239 2239 arg3, 0, &phone); 2240 2240 if (rc != EOK) { … … 2307 2307 2308 2308 int phone; 2309 int rc = async_connect_me_to_internal(exch->phone, arg1, arg2, arg3,2309 errno_t rc = async_connect_me_to_internal(exch->phone, arg1, arg2, arg3, 2310 2310 IPC_FLAG_BLOCKING, &phone); 2311 2311 … … 2361 2361 2362 2362 int phone; 2363 int rc = async_connect_me_to_internal(exch->phone, iface, arg2,2363 errno_t rc = async_connect_me_to_internal(exch->phone, iface, arg2, 2364 2364 arg3, IPC_FLAG_BLOCKING, &phone); 2365 2365 if (rc != EOK) { … … 2397 2397 2398 2398 cap_handle_t phone; 2399 int rc = ipc_connect_kbox(id, &phone);2399 errno_t rc = ipc_connect_kbox(id, &phone); 2400 2400 if (rc != EOK) { 2401 2401 errno = rc; … … 2421 2421 } 2422 2422 2423 static int async_hangup_internal(int phone)2423 static errno_t async_hangup_internal(int phone) 2424 2424 { 2425 2425 return ipc_hangup(phone); … … 2433 2433 * 2434 2434 */ 2435 int async_hangup(async_sess_t *sess)2435 errno_t async_hangup(async_sess_t *sess) 2436 2436 { 2437 2437 async_exch_t *exch; … … 2444 2444 fibril_mutex_lock(&async_sess_mutex); 2445 2445 2446 int rc = async_hangup_internal(sess->phone);2446 errno_t rc = async_hangup_internal(sess->phone); 2447 2447 2448 2448 while (!list_empty(&sess->exch_list)) { … … 2516 2516 } else if (mgmt == EXCHANGE_PARALLEL) { 2517 2517 int phone; 2518 int rc;2518 errno_t rc; 2519 2519 2520 2520 retry: … … 2613 2613 * 2614 2614 */ 2615 int async_share_in_start(async_exch_t *exch, size_t size, sysarg_t arg,2615 errno_t async_share_in_start(async_exch_t *exch, size_t size, sysarg_t arg, 2616 2616 unsigned int *flags, void **dst) 2617 2617 { … … 2621 2621 sysarg_t _flags = 0; 2622 2622 sysarg_t _dst = (sysarg_t) -1; 2623 int res = async_req_2_4(exch, IPC_M_SHARE_IN, (sysarg_t) size,2623 errno_t res = async_req_2_4(exch, IPC_M_SHARE_IN, (sysarg_t) size, 2624 2624 arg, NULL, &_flags, NULL, &_dst); 2625 2625 … … 2673 2673 * 2674 2674 */ 2675 int async_share_in_finalize(cap_handle_t chandle, void *src, unsigned int flags)2675 errno_t async_share_in_finalize(cap_handle_t chandle, void *src, unsigned int flags) 2676 2676 { 2677 2677 return ipc_answer_3(chandle, EOK, (sysarg_t) src, (sysarg_t) flags, … … 2688 2688 * 2689 2689 */ 2690 int async_share_out_start(async_exch_t *exch, void *src, unsigned int flags)2690 errno_t async_share_out_start(async_exch_t *exch, void *src, unsigned int flags) 2691 2691 { 2692 2692 if (exch == NULL) … … 2743 2743 * 2744 2744 */ 2745 int async_share_out_finalize(cap_handle_t chandle, void **dst)2745 errno_t async_share_out_finalize(cap_handle_t chandle, void **dst) 2746 2746 { 2747 2747 return ipc_answer_2(chandle, EOK, (sysarg_t) __entry, (sysarg_t) dst); … … 2774 2774 * 2775 2775 */ 2776 int async_data_read_start(async_exch_t *exch, void *dst, size_t size)2776 errno_t async_data_read_start(async_exch_t *exch, void *dst, size_t size) 2777 2777 { 2778 2778 if (exch == NULL) … … 2848 2848 * 2849 2849 */ 2850 int async_data_read_finalize(cap_handle_t chandle, const void *src, size_t size)2850 errno_t async_data_read_finalize(cap_handle_t chandle, const void *src, size_t size) 2851 2851 { 2852 2852 return ipc_answer_2(chandle, EOK, (sysarg_t) src, (sysarg_t) size); … … 2856 2856 * 2857 2857 */ 2858 int async_data_read_forward_fast(async_exch_t *exch, sysarg_t imethod,2858 errno_t async_data_read_forward_fast(async_exch_t *exch, sysarg_t imethod, 2859 2859 sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, sysarg_t arg4, 2860 2860 ipc_call_t *dataptr) … … 2876 2876 } 2877 2877 2878 int retval = ipc_forward_fast(chandle, exch->phone, 0, 0, 0,2878 errno_t retval = ipc_forward_fast(chandle, exch->phone, 0, 0, 0, 2879 2879 IPC_FF_ROUTE_FROM_ME); 2880 2880 if (retval != EOK) { … … 2884 2884 } 2885 2885 2886 int rc;2886 errno_t rc; 2887 2887 async_wait_for(msg, &rc); 2888 2888 2889 return ( int) rc;2889 return (errno_t) rc; 2890 2890 } 2891 2891 … … 2899 2899 * 2900 2900 */ 2901 int async_data_write_start(async_exch_t *exch, const void *src, size_t size)2901 errno_t async_data_write_start(async_exch_t *exch, const void *src, size_t size) 2902 2902 { 2903 2903 if (exch == NULL) … … 2973 2973 * 2974 2974 */ 2975 int async_data_write_finalize(cap_handle_t chandle, void *dst, size_t size)2975 errno_t async_data_write_finalize(cap_handle_t chandle, void *dst, size_t size) 2976 2976 { 2977 2977 return ipc_answer_2(chandle, EOK, (sysarg_t) dst, (sysarg_t) size); … … 2999 2999 * 3000 3000 */ 3001 int async_data_write_accept(void **data, const bool nullterm,3001 errno_t async_data_write_accept(void **data, const bool nullterm, 3002 3002 const size_t min_size, const size_t max_size, const size_t granularity, 3003 3003 size_t *received) … … 3039 3039 } 3040 3040 3041 int rc = async_data_write_finalize(chandle, arg_data, size);3041 errno_t rc = async_data_write_finalize(chandle, arg_data, size); 3042 3042 if (rc != EOK) { 3043 3043 free(arg_data); … … 3062 3062 * 3063 3063 */ 3064 void async_data_write_void( int retval)3064 void async_data_write_void(errno_t retval) 3065 3065 { 3066 3066 cap_handle_t chandle; … … 3072 3072 * 3073 3073 */ 3074 int async_data_write_forward_fast(async_exch_t *exch, sysarg_t imethod,3074 errno_t async_data_write_forward_fast(async_exch_t *exch, sysarg_t imethod, 3075 3075 sysarg_t arg1, sysarg_t arg2, sysarg_t arg3, sysarg_t arg4, 3076 3076 ipc_call_t *dataptr) … … 3092 3092 } 3093 3093 3094 int retval = ipc_forward_fast(chandle, exch->phone, 0, 0, 0,3094 errno_t retval = ipc_forward_fast(chandle, exch->phone, 0, 0, 0, 3095 3095 IPC_FF_ROUTE_FROM_ME); 3096 3096 if (retval != EOK) { … … 3100 3100 } 3101 3101 3102 int rc;3102 errno_t rc; 3103 3103 async_wait_for(msg, &rc); 3104 3104 3105 return ( int) rc;3105 return (errno_t) rc; 3106 3106 } 3107 3107 … … 3197 3197 } 3198 3198 3199 int async_state_change_start(async_exch_t *exch, sysarg_t arg1, sysarg_t arg2,3199 errno_t async_state_change_start(async_exch_t *exch, sysarg_t arg1, sysarg_t arg2, 3200 3200 sysarg_t arg3, async_exch_t *other_exch) 3201 3201 { … … 3225 3225 } 3226 3226 3227 int async_state_change_finalize(cap_handle_t chandle, async_exch_t *other_exch)3227 errno_t async_state_change_finalize(cap_handle_t chandle, async_exch_t *other_exch) 3228 3228 { 3229 3229 return ipc_answer_1(chandle, EOK, other_exch->phone);
Note:
See TracChangeset
for help on using the changeset viewer.