Changeset fed5a9b in mainline
- Timestamp:
- 2017-12-08T21:03:35Z (7 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 125c09c
- Parents:
- a8c7a6d
- git-author:
- Jiří Zárevúcky <zarevucky.jiri@…> (2017-12-08 03:29:45)
- git-committer:
- Jiří Zárevúcky <zarevucky.jiri@…> (2017-12-08 21:03:35)
- Location:
- uspace/lib/hound
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/hound/include/hound/protocol.h
ra8c7a6d rfed5a9b 58 58 typedef intptr_t hound_context_id_t; 59 59 60 /**61 * Check context id for errors.62 * @param id Context id63 * @return Error code.64 */65 static inline int hound_context_id_err(hound_context_id_t id)66 {67 return id > 0 ? EOK : (id == 0 ? ENOENT : id);68 }69 70 60 hound_sess_t *hound_service_connect(const char *service); 71 61 void hound_service_disconnect(hound_sess_t *sess); 72 62 73 hound_context_id_t hound_service_register_context(hound_sess_t *sess,74 const char *name, bool record );63 int hound_service_register_context(hound_sess_t *sess, 64 const char *name, bool record, hound_context_id_t *id); 75 65 int hound_service_unregister_context(hound_sess_t *sess, hound_context_id_t id); 76 66 -
uspace/lib/hound/src/client.c
ra8c7a6d rfed5a9b 123 123 return NULL; 124 124 } 125 new_context->id = hound_service_register_context( 126 new_context->session, new_context->name, record); 127 if (hound_context_id_err(new_context->id) != EOK) { 125 int rc = hound_service_register_context( 126 new_context->session, new_context->name, record, 127 &new_context->id); 128 if (rc != EOK) { 128 129 hound_service_disconnect(new_context->session); 129 130 free(new_context->name); -
uspace/lib/hound/src/protocol.c
ra8c7a6d rfed5a9b 115 115 * @param name Valid string identifier 116 116 * @param record True if the application context wishes to receive data. 117 * @return Valid ID on success, Error code on failure. 118 */ 119 hound_context_id_t hound_service_register_context(hound_sess_t *sess, 120 const char *name, bool record) 117 * 118 * @param[out] id Return context ID. 119 * 120 * @return EOK on success, Error code on failure. 121 */ 122 int hound_service_register_context(hound_sess_t *sess, 123 const char *name, bool record, hound_context_id_t *id) 121 124 { 122 125 assert(sess); … … 126 129 aid_t mid = 127 130 async_send_1(exch, IPC_M_HOUND_CONTEXT_REGISTER, record, &call); 128 int ret = mid ? EOK : EPARTY;131 sysarg_t ret = mid ? EOK : EPARTY; 129 132 130 133 if (ret == EOK) … … 134 137 135 138 if (ret == EOK) 136 async_wait_for(mid, (sysarg_t *)&ret);139 async_wait_for(mid, &ret); 137 140 138 141 async_exchange_end(exch); 139 return ret == EOK ? (hound_context_id_t)IPC_GET_ARG1(call) : ret; 142 if (ret == EOK) { 143 *id = (hound_context_id_t)IPC_GET_ARG1(call); 144 } 145 146 return ret; 140 147 } 141 148 … … 184 191 (bool)connection, &res_call); 185 192 186 int ret = EOK;193 sysarg_t ret = EOK; 187 194 if (mid && connection) 188 195 ret = async_data_write_start(exch, connection, … … 190 197 191 198 if (ret == EOK) 192 async_wait_for(mid, (sysarg_t*)&ret);199 async_wait_for(mid, &ret); 193 200 194 201 if (ret != EOK) { … … 252 259 ipc_call_t call; 253 260 aid_t id = async_send_0(exch, IPC_M_HOUND_CONNECT, &call); 254 int ret = id ? EOK : EPARTY;261 sysarg_t ret = id ? EOK : EPARTY; 255 262 if (ret == EOK) 256 263 ret = async_data_write_start(exch, source, str_size(source)); 257 264 if (ret == EOK) 258 265 ret = async_data_write_start(exch, sink, str_size(sink)); 259 async_wait_for(id, (sysarg_t*)&ret);266 async_wait_for(id, &ret); 260 267 async_exchange_end(exch); 261 268 return ret; … … 278 285 ipc_call_t call; 279 286 aid_t id = async_send_0(exch, IPC_M_HOUND_DISCONNECT, &call); 280 int ret = id ? EOK : EPARTY;287 sysarg_t ret = id ? EOK : EPARTY; 281 288 if (ret == EOK) 282 289 ret = async_data_write_start(exch, source, str_size(source)); 283 290 if (ret == EOK) 284 291 ret = async_data_write_start(exch, sink, str_size(sink)); 285 async_wait_for(id, (sysarg_t*)&ret);292 async_wait_for(id, &ret); 286 293 async_exchange_end(exch); 287 294 return ENOTSUP;
Note:
See TracChangeset
for help on using the changeset viewer.