Changeset 9934f7d in mainline for uspace/lib
- Timestamp:
- 2011-06-13T19:53:48Z (14 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- a07a454
- Parents:
- 43ac0cc
- Location:
- uspace/lib
- Files:
-
- 16 edited
-
c/generic/async.c (modified) (13 diffs)
-
c/generic/async_obsolete.c (modified) (2 diffs)
-
c/generic/devman.c (modified) (1 diff)
-
c/generic/devmap.c (modified) (1 diff)
-
c/generic/net/modules.c (modified) (1 diff)
-
c/generic/net/socket_client.c (modified) (1 diff)
-
c/generic/ns.c (modified) (1 diff)
-
c/include/async.h (modified) (4 diffs)
-
c/include/async_obsolete.h (modified) (1 diff)
-
drv/generic/driver.c (modified) (1 diff)
-
fs/libfs.c (modified) (1 diff)
-
net/il/il_skel.c (modified) (2 diffs)
-
net/netif/netif_skel.c (modified) (1 diff)
-
net/nil/nil_skel.c (modified) (2 diffs)
-
net/tl/tl_skel.c (modified) (2 diffs)
-
usbvirt/src/device.c (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/c/generic/async.c
r43ac0cc r9934f7d 166 166 /** Call data of the opening call. */ 167 167 ipc_call_t call; 168 /** Local argument or NULL if none. */ 169 void *carg; 168 170 169 171 /** Identification of the closing call. */ … … 171 173 172 174 /** Fibril function that will be used to handle the connection. */ 173 void (*cfibril)(ipc_callid_t, ipc_call_t *);175 async_client_conn_t cfibril; 174 176 } connection_t; 175 177 … … 211 213 * This function is defined as a weak symbol - to be redefined in user code. 212 214 * 213 * @param callid Hash of the incoming call. 214 * @param call Data of the incoming call. 215 * 216 */ 217 static void default_client_connection(ipc_callid_t callid, ipc_call_t *call) 215 * @param callid Hash of the incoming call. 216 * @param call Data of the incoming call. 217 * @param arg Local argument 218 * 219 */ 220 static void default_client_connection(ipc_callid_t callid, ipc_call_t *call, 221 void *arg) 218 222 { 219 223 ipc_answer_0(callid, ENOENT); … … 224 228 * This function is defined as a weak symbol - to be redefined in user code. 225 229 * 226 * @param callid Hash of the incoming call. 227 * @param call Data of the incoming call. 230 * @param callid Hash of the incoming call. 231 * @param call Data of the incoming call. 232 * @param arg Local argument. 228 233 * 229 234 */ … … 233 238 234 239 static async_client_conn_t client_connection = default_client_connection; 235 static async_ client_conn_t interrupt_received = default_interrupt_received;240 static async_interrupt_handler_t interrupt_received = default_interrupt_received; 236 241 237 242 /** Setter for client_connection function pointer. … … 250 255 * notification fibril. 251 256 */ 252 void async_set_interrupt_received(async_ client_conn_t intr)257 void async_set_interrupt_received(async_interrupt_handler_t intr) 253 258 { 254 259 interrupt_received = intr; … … 633 638 */ 634 639 fibril_connection->cfibril(fibril_connection->callid, 635 &fibril_connection->call );640 &fibril_connection->call, fibril_connection->carg); 636 641 637 642 /* … … 704 709 * @param cfibril Fibril function that should be called upon opening the 705 710 * connection. 711 * @param carg Extra argument to pass to the connection fibril 706 712 * 707 713 * @return New fibril id or NULL on failure. … … 710 716 fid_t async_new_connection(sysarg_t in_task_hash, sysarg_t in_phone_hash, 711 717 ipc_callid_t callid, ipc_call_t *call, 712 async_client_conn_t cfibril )718 async_client_conn_t cfibril, void *carg) 713 719 { 714 720 connection_t *conn = malloc(sizeof(*conn)); … … 725 731 conn->callid = callid; 726 732 conn->close_callid = 0; 733 conn->carg = carg; 727 734 728 735 if (call) … … 779 786 /* Open new connection with fibril, etc. */ 780 787 async_new_connection(call->in_task_hash, IPC_GET_ARG5(*call), 781 callid, call, client_connection );788 callid, call, client_connection, NULL); 782 789 return; 783 790 } … … 1414 1421 */ 1415 1422 int async_connect_to_me(async_exch_t *exch, sysarg_t arg1, sysarg_t arg2, 1416 sysarg_t arg3, async_client_conn_t client_receiver )1423 sysarg_t arg3, async_client_conn_t client_receiver, void *carg) 1417 1424 { 1418 1425 if (exch == NULL) … … 1428 1435 if (client_receiver != NULL) 1429 1436 async_new_connection(task_hash, phone_hash, 0, NULL, 1430 client_receiver );1437 client_receiver, carg); 1431 1438 1432 1439 return EOK; -
uspace/lib/c/generic/async_obsolete.c
r43ac0cc r9934f7d 240 240 */ 241 241 int async_obsolete_connect_to_me(int phone, sysarg_t arg1, sysarg_t arg2, 242 sysarg_t arg3, async_client_conn_t client_receiver )242 sysarg_t arg3, async_client_conn_t client_receiver, void *carg) 243 243 { 244 244 sysarg_t task_hash; … … 251 251 if (client_receiver != NULL) 252 252 async_new_connection(task_hash, phone_hash, 0, NULL, 253 client_receiver );253 client_receiver, carg); 254 254 255 255 return EOK; -
uspace/lib/c/generic/devman.c
r43ac0cc r9934f7d 194 194 195 195 exch = devman_exchange_begin(DEVMAN_DRIVER); 196 async_connect_to_me(exch, 0, 0, 0, NULL );196 async_connect_to_me(exch, 0, 0, 0, NULL, NULL); 197 197 devman_exchange_end(exch); 198 198 -
uspace/lib/c/generic/devmap.c
r43ac0cc r9934f7d 187 187 188 188 exch = devmap_exchange_begin(DEVMAP_DRIVER); 189 async_connect_to_me(exch, 0, 0, 0, NULL );189 async_connect_to_me(exch, 0, 0, 0, NULL, NULL); 190 190 devmap_exchange_end(exch); 191 191 -
uspace/lib/c/generic/net/modules.c
r43ac0cc r9934f7d 141 141 if (phone >= 0) { 142 142 /* Request the bidirectional connection */ 143 int rc = async_obsolete_connect_to_me(phone, arg1, arg2, arg3, client_receiver); 143 int rc = async_obsolete_connect_to_me(phone, arg1, arg2, arg3, 144 client_receiver, NULL); 144 145 if (rc != EOK) { 145 146 async_obsolete_hangup(phone); -
uspace/lib/c/generic/net/socket_client.c
r43ac0cc r9934f7d 203 203 * @param[in] iid The initial message identifier. 204 204 * @param[in] icall The initial message call structure. 205 */ 206 static void socket_connection(ipc_callid_t iid, ipc_call_t * icall) 205 * @param[in] arg Local argument. 206 */ 207 static void socket_connection(ipc_callid_t iid, ipc_call_t * icall, void *arg) 207 208 { 208 209 ipc_callid_t callid; -
uspace/lib/c/generic/ns.c
r43ac0cc r9934f7d 42 42 { 43 43 async_exch_t *exch = async_exchange_begin(session_ns); 44 int rc = async_connect_to_me(exch, service, 0, 0, NULL );44 int rc = async_connect_to_me(exch, service, 0, 0, NULL, NULL); 45 45 async_exchange_end(exch); 46 46 -
uspace/lib/c/include/async.h
r43ac0cc r9934f7d 53 53 typedef void (*async_client_data_dtor_t)(void *); 54 54 55 typedef void (*async_client_conn_t)(ipc_callid_t, ipc_call_t *); 55 /** Client connection handler 56 * 57 * @param callid ID of incoming call or 0 if connection initiated from 58 * inside using async_connect_to_me() 59 * @param call Incoming call or 0 if connection initiated from inside 60 * @param arg Local argument passed from async_new_connection() or 61 * async_connect_to_me() 62 */ 63 typedef void (*async_client_conn_t)(ipc_callid_t, ipc_call_t *, void *); 64 65 /** Interrupt handler */ 66 typedef void (*async_interrupt_handler_t)(ipc_callid_t, ipc_call_t *); 56 67 57 68 /** Exchange management style … … 166 177 167 178 extern fid_t async_new_connection(sysarg_t, sysarg_t, ipc_callid_t, 168 ipc_call_t *, async_client_conn_t );179 ipc_call_t *, async_client_conn_t, void *); 169 180 170 181 extern void async_usleep(suseconds_t); … … 177 188 178 189 extern void async_set_client_connection(async_client_conn_t); 179 extern void async_set_interrupt_received(async_ client_conn_t);190 extern void async_set_interrupt_received(async_interrupt_handler_t); 180 191 181 192 /* … … 351 362 352 363 extern int async_connect_to_me(async_exch_t *, sysarg_t, sysarg_t, sysarg_t, 353 async_client_conn_t );364 async_client_conn_t, void *); 354 365 355 366 extern int async_hangup(async_sess_t *); -
uspace/lib/c/include/async_obsolete.h
r43ac0cc r9934f7d 198 198 199 199 extern int async_obsolete_connect_to_me(int, sysarg_t, sysarg_t, sysarg_t, 200 async_client_conn_t );200 async_client_conn_t, void *); 201 201 extern int async_obsolete_connect_me_to(int, sysarg_t, sysarg_t, sysarg_t); 202 202 extern int async_obsolete_connect_me_to_blocking(int, sysarg_t, sysarg_t, sysarg_t); -
uspace/lib/drv/generic/driver.c
r43ac0cc r9934f7d 427 427 428 428 /** Function for handling connections to device driver. */ 429 static void driver_connection(ipc_callid_t iid, ipc_call_t *icall )429 static void driver_connection(ipc_callid_t iid, ipc_call_t *icall, void *arg) 430 430 { 431 431 /* Select interface */ -
uspace/lib/fs/libfs.c
r43ac0cc r9934f7d 106 106 * Ask VFS for callback connection. 107 107 */ 108 async_connect_to_me(exch, 0, 0, 0, conn );108 async_connect_to_me(exch, 0, 0, 0, conn, NULL); 109 109 110 110 /* -
uspace/lib/net/il/il_skel.c
r43ac0cc r9934f7d 51 51 * 52 52 */ 53 static void il_client_connection(ipc_callid_t iid, ipc_call_t *icall) 53 static void il_client_connection(ipc_callid_t iid, ipc_call_t *icall, 54 void *arg) 54 55 { 55 56 /* … … 117 118 goto out; 118 119 119 rc = async_connect_to_me(PHONE_NS, service, 0, 0, NULL );120 rc = async_connect_to_me(PHONE_NS, service, 0, 0, NULL, NULL); 120 121 if (rc != EOK) 121 122 goto out; -
uspace/lib/net/netif/netif_skel.c
r43ac0cc r9934f7d 365 365 * 366 366 */ 367 static void netif_client_connection(ipc_callid_t iid, ipc_call_t *icall) 367 static void netif_client_connection(ipc_callid_t iid, ipc_call_t *icall, 368 void *arg) 368 369 { 369 370 /* -
uspace/lib/net/nil/nil_skel.c
r43ac0cc r9934f7d 51 51 * 52 52 */ 53 static void nil_client_connection(ipc_callid_t iid, ipc_call_t *icall) 53 static void nil_client_connection(ipc_callid_t iid, ipc_call_t *icall, 54 void *arg) 54 55 { 55 56 /* … … 117 118 goto out; 118 119 119 rc = async_connect_to_me(PHONE_NS, service, 0, 0, NULL );120 rc = async_connect_to_me(PHONE_NS, service, 0, 0, NULL, NULL); 120 121 if (rc != EOK) 121 122 goto out; -
uspace/lib/net/tl/tl_skel.c
r43ac0cc r9934f7d 47 47 /** Default thread for new connections. 48 48 * 49 * @param[in] iid The initial message identifier. 50 * @param[in] icall The initial message call structure. 49 * @param[in] iid The initial message identifier. 50 * @param[in] icall The initial message call structure. 51 * @param[in] arg Local argument. 51 52 * 52 53 */ 53 static void tl_client_connection(ipc_callid_t iid, ipc_call_t *icall) 54 static void tl_client_connection(ipc_callid_t iid, ipc_call_t *icall, 55 void *arg) 54 56 { 55 57 /* … … 119 121 goto out; 120 122 121 rc = async_connect_to_me(PHONE_NS, service, 0, 0, NULL );123 rc = async_connect_to_me(PHONE_NS, service, 0, 0, NULL, NULL); 122 124 if (rc != EOK) 123 125 goto out; -
uspace/lib/usbvirt/src/device.c
r43ac0cc r9934f7d 49 49 /** Main IPC call handling from virtual host controller. 50 50 * 51 * @param iid Caller identification. 52 * @param icall Initial incoming call. 51 * @param iid Caller identification 52 * @param icall Initial incoming call 53 * @param arg Local argument 53 54 */ 54 static void callback_connection(ipc_callid_t iid, ipc_call_t *icall )55 static void callback_connection(ipc_callid_t iid, ipc_call_t *icall, void *arg) 55 56 { 56 57 assert(DEV != NULL); … … 99 100 100 101 async_exch_t *exch = async_exchange_begin(hcd_sess); 101 rc = async_connect_to_me(exch, 0, 0, 0, callback_connection );102 rc = async_connect_to_me(exch, 0, 0, 0, callback_connection, NULL); 102 103 async_exchange_end(exch); 103 104
Note:
See TracChangeset
for help on using the changeset viewer.
