Changes in uspace/srv/bd/rd/rd.c [47b7006:15f3c3f] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/bd/rd/rd.c
r47b7006 r15f3c3f 52 52 #include <fibril_synch.h> 53 53 #include <stdio.h> 54 #include < devmap.h>54 #include <loc.h> 55 55 #include <ipc/bd.h> 56 56 #include <macros.h> … … 84 84 * @param icall Call data of the request that opened the connection. 85 85 */ 86 static void rd_connection(ipc_callid_t iid, ipc_call_t *icall )86 static void rd_connection(ipc_callid_t iid, ipc_call_t *icall, void *arg) 87 87 { 88 88 ipc_callid_t callid; … … 123 123 while (true) { 124 124 callid = async_get_call(&call); 125 switch (IPC_GET_IMETHOD(call)) {126 case IPC_M_PHONE_HUNGUP:125 126 if (!IPC_GET_IMETHOD(call)) { 127 127 /* 128 128 * The other side has hung up. 129 * Answer the message and exit the fibril.129 * Exit the fibril. 130 130 */ 131 131 async_answer_0(callid, EOK); 132 132 return; 133 } 134 135 switch (IPC_GET_IMETHOD(call)) { 133 136 case BD_READ_BLOCKS: 134 137 ba = MERGE_LOUP32(IPC_GET_ARG1(call), … … 232 235 (void *) rd_ph_addr, rd_size); 233 236 234 int rc = devmap_driver_register(NAME, rd_connection);237 int rc = loc_server_register(NAME, rd_connection); 235 238 if (rc < 0) { 236 239 printf("%s: Unable to register driver (%d)\n", NAME, rc); … … 238 241 } 239 242 240 devmap_handle_t devmap_handle;241 if ( devmap_device_register("bd/initrd", &devmap_handle) != EOK) {242 printf("%s: Unable to register device \n", NAME);243 return false; 244 } 245 243 service_id_t service_id; 244 if (loc_service_register("bd/initrd", &service_id) != EOK) { 245 printf("%s: Unable to register device service\n", NAME); 246 return false; 247 } 248 246 249 fibril_rwlock_initialize(&rd_lock); 247 250 … … 258 261 printf("%s: Accepting connections\n", NAME); 259 262 async_manager(); 260 263 261 264 /* Never reached */ 262 265 return 0;
Note:
See TracChangeset
for help on using the changeset viewer.