Changeset 01900b6 in mainline for uspace/lib/c/generic/async/client.c
- Timestamp:
- 2020-01-21T15:10:26Z (4 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 51da086
- Parents:
- f8fb03b
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/c/generic/async/client.c
rf8fb03b r01900b6 889 889 * @param arg2 User defined argument. 890 890 * @param arg3 User defined argument. 891 * @param rc Placeholder for return code. Unused if NULL. 891 892 * 892 893 * @return New session on success or NULL on error. … … 894 895 */ 895 896 async_sess_t *async_connect_me_to(async_exch_t *exch, iface_t iface, 896 sysarg_t arg2, sysarg_t arg3 )897 sysarg_t arg2, sysarg_t arg3, errno_t *rc) 897 898 { 898 899 if (exch == NULL) { 899 errno = ENOENT; 900 if (rc != NULL) 901 *rc = ENOENT; 902 900 903 return NULL; 901 904 } … … 903 906 async_sess_t *sess = calloc(1, sizeof(async_sess_t)); 904 907 if (sess == NULL) { 905 errno = ENOMEM; 908 if (rc != NULL) 909 *rc = ENOMEM; 910 906 911 return NULL; 907 912 } 908 913 909 914 cap_phone_handle_t phone; 910 errno_t r c= async_connect_me_to_internal(exch->phone, iface, arg2,915 errno_t ret = async_connect_me_to_internal(exch->phone, iface, arg2, 911 916 arg3, 0, &phone); 912 if (rc != EOK) { 913 errno = rc; 917 if (ret != EOK) { 918 if (rc != NULL) 919 *rc = ret; 920 914 921 free(sess); 915 922 return NULL; … … 957 964 * @param arg2 User defined argument. 958 965 * @param arg3 User defined argument. 966 * @param rc Placeholder for return code. Unused if NULL. 959 967 * 960 968 * @return New session on success or NULL on error. … … 962 970 */ 963 971 async_sess_t *async_connect_me_to_blocking(async_exch_t *exch, iface_t iface, 964 sysarg_t arg2, sysarg_t arg3 )972 sysarg_t arg2, sysarg_t arg3, errno_t *rc) 965 973 { 966 974 if (exch == NULL) { 967 errno = ENOENT; 975 if (rc != NULL) 976 *rc = ENOENT; 977 968 978 return NULL; 969 979 } … … 971 981 async_sess_t *sess = calloc(1, sizeof(async_sess_t)); 972 982 if (sess == NULL) { 973 errno = ENOMEM; 983 if (rc != NULL) 984 *rc = ENOMEM; 985 974 986 return NULL; 975 987 } 976 988 977 989 cap_phone_handle_t phone; 978 errno_t r c= async_connect_me_to_internal(exch->phone, iface, arg2,990 errno_t ret = async_connect_me_to_internal(exch->phone, iface, arg2, 979 991 arg3, IPC_FLAG_BLOCKING, &phone); 980 if (rc != EOK) { 981 errno = rc; 992 if (ret != EOK) { 993 if (rc != NULL) 994 *rc = ret; 995 982 996 free(sess); 983 997 return NULL; … … 999 1013 /** Connect to a task specified by id. 1000 1014 * 1001 */ 1002 async_sess_t *async_connect_kbox(task_id_t id) 1015 * @param id Task to which to connect. 1016 * @param rc Placeholder for return code. Unused if NULL. 1017 * 1018 * @return New session on success or NULL on error. 1019 * 1020 */ 1021 async_sess_t *async_connect_kbox(task_id_t id, errno_t *rc) 1003 1022 { 1004 1023 async_sess_t *sess = calloc(1, sizeof(async_sess_t)); 1005 1024 if (sess == NULL) { 1006 errno = ENOMEM; 1025 if (rc != NULL) 1026 *rc = ENOMEM; 1027 1007 1028 return NULL; 1008 1029 } 1009 1030 1010 1031 cap_phone_handle_t phone; 1011 errno_t rc = ipc_connect_kbox(id, &phone); 1012 if (rc != EOK) { 1013 errno = rc; 1032 errno_t ret = ipc_connect_kbox(id, &phone); 1033 if (ret != EOK) { 1034 if (rc != NULL) 1035 *rc = ret; 1036 1014 1037 free(sess); 1015 1038 return NULL;
Note:
See TracChangeset
for help on using the changeset viewer.