Changeset 007e6efa in mainline for uspace/lib/c/generic/async.c
- Timestamp:
- 2011-01-28T15:44:39Z (14 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 4db1fbf
- Parents:
- ae0300b5
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/c/generic/async.c
rae0300b5 r007e6efa 58 58 * int fibril1(void *arg) 59 59 * { 60 * conn = ipc_connect_me_to();60 * conn = async_connect_me_to(); 61 61 * c1 = async_send(conn); 62 62 * c2 = async_send(conn); … … 1235 1235 } 1236 1236 1237 /** Wrapper for making IPC_M_CONNECT_TO_ME calls using the async framework. 1238 * 1239 * Ask through phone for a new connection to some service. 1240 * 1241 * @param phone Phone handle used for contacting the other side. 1242 * @param arg1 User defined argument. 1243 * @param arg2 User defined argument. 1244 * @param arg3 User defined argument. 1245 * @param client_receiver Connection handing routine. 1246 * 1247 * @return New phone handle on success or a negative error code. 1248 * 1249 */ 1250 int async_connect_to_me(int phone, sysarg_t arg1, sysarg_t arg2, 1251 sysarg_t arg3, async_client_conn_t client_receiver) 1252 { 1253 sysarg_t task_hash; 1254 sysarg_t phone_hash; 1255 int rc = async_req_3_5(phone, IPC_M_CONNECT_TO_ME, arg1, arg2, arg3, 1256 NULL, NULL, NULL, &task_hash, &phone_hash); 1257 if (rc != EOK) 1258 return rc; 1259 1260 if (client_receiver != NULL) 1261 async_new_connection(task_hash, phone_hash, 0, NULL, 1262 client_receiver); 1263 1264 return EOK; 1265 } 1266 1237 1267 /** Wrapper for making IPC_M_CONNECT_ME_TO calls using the async framework. 1238 * 1268 * 1239 1269 * Ask through phone for a new connection to some service. 1240 1270 * 1241 * @param phone idPhone handle used for contacting the other side.1242 * @param arg1 1243 * @param arg2 1244 * @param arg3 1245 * 1246 * @return 1247 * /1248 int 1249 async_connect_me_to(int phoneid, sysarg_t arg1, sysarg_t arg2, sysarg_t arg3) 1250 { 1251 int rc; 1271 * @param phone Phone handle used for contacting the other side. 1272 * @param arg1 User defined argument. 1273 * @param arg2 User defined argument. 1274 * @param arg3 User defined argument. 1275 * 1276 * @return New phone handle on success or a negative error code. 1277 * 1278 */ 1279 int async_connect_me_to(int phone, sysarg_t arg1, sysarg_t arg2, 1280 sysarg_t arg3) 1281 { 1252 1282 sysarg_t newphid; 1253 1254 rc = async_req_3_5(phoneid, IPC_M_CONNECT_ME_TO, arg1, arg2, arg3, NULL, 1255 NULL, NULL, NULL, &newphid); 1256 1257 if (rc != EOK) 1283 int rc = async_req_3_5(phone, IPC_M_CONNECT_ME_TO, arg1, arg2, arg3, 1284 NULL, NULL, NULL, NULL, &newphid); 1285 1286 if (rc != EOK) 1258 1287 return rc; 1259 1288 1260 1289 return newphid; 1261 1290 } 1262 1291 1263 1292 /** Wrapper for making IPC_M_CONNECT_ME_TO calls using the async framework. 1264 * 1293 * 1265 1294 * Ask through phone for a new connection to some service and block until 1266 1295 * success. 1267 1296 * 1268 * @param phoneid 1269 * @param arg1 1270 * @param arg2 1271 * @param arg3 1272 * 1273 * @return 1274 * /1275 int 1276 async_connect_me_to_blocking(int phoneid, sysarg_t arg1, sysarg_t arg2,1297 * @param phoneid Phone handle used for contacting the other side. 1298 * @param arg1 User defined argument. 1299 * @param arg2 User defined argument. 1300 * @param arg3 User defined argument. 1301 * 1302 * @return New phone handle on success or a negative error code. 1303 * 1304 */ 1305 int async_connect_me_to_blocking(int phoneid, sysarg_t arg1, sysarg_t arg2, 1277 1306 sysarg_t arg3) 1278 1307 { 1279 int rc;1280 1308 sysarg_t newphid; 1281 1282 rc = async_req_4_5(phoneid, IPC_M_CONNECT_ME_TO, arg1, arg2, arg3, 1309 int rc = async_req_4_5(phoneid, IPC_M_CONNECT_ME_TO, arg1, arg2, arg3, 1283 1310 IPC_FLAG_BLOCKING, NULL, NULL, NULL, NULL, &newphid); 1284 1311 1285 if (rc != EOK) 1312 if (rc != EOK) 1286 1313 return rc; 1287 1314 1288 1315 return newphid; 1289 1316 }
Note:
See TracChangeset
for help on using the changeset viewer.