Changeset 372df8f in mainline for uspace/srv/bd/vbd/vbd.c
- Timestamp:
- 2015-10-09T07:00:23Z (9 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 0ecfc62
- Parents:
- 0bde8523
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/bd/vbd/vbd.c
r0bde8523 r372df8f 60 60 log_msg(LOG_DEFAULT, LVL_NOTE, "vbds_init()"); 61 61 62 vbds_disks_init(); 62 rc = vbds_disks_init(); 63 if (rc != EOK) 64 return rc; 65 66 rc = vbds_disk_discovery_start(); 67 if (rc != EOK) 68 return rc; 63 69 64 70 async_set_client_connection(vbds_client_conn); … … 79 85 } 80 86 81 82 static void vbds_disk_add_srv(ipc_callid_t iid, ipc_call_t *icall) 83 { 84 service_id_t disk_sid; 85 int rc; 86 87 log_msg(LOG_DEFAULT, LVL_NOTE, "vbds_disk_add_srv()"); 88 89 disk_sid = IPC_GET_ARG1(*icall); 90 rc = vbds_disk_add(disk_sid); 91 async_answer_0(iid, (sysarg_t) rc); 92 } 93 94 static void vbds_disk_remove_srv(ipc_callid_t iid, ipc_call_t *icall) 95 { 96 service_id_t disk_sid; 97 int rc; 98 99 log_msg(LOG_DEFAULT, LVL_NOTE, "vbds_disk_remove_srv()"); 100 101 disk_sid = IPC_GET_ARG1(*icall); 102 rc = vbds_disk_remove(disk_sid); 103 async_answer_0(iid, (sysarg_t) rc); 87 static void vbds_get_disks_srv(ipc_callid_t iid, ipc_call_t *icall) 88 { 89 ipc_callid_t callid; 90 size_t size; 91 size_t act_size; 92 int rc; 93 94 if (!async_data_read_receive(&callid, &size)) { 95 async_answer_0(callid, EREFUSED); 96 async_answer_0(iid, EREFUSED); 97 return; 98 } 99 100 service_id_t *id_buf = (service_id_t *) malloc(size); 101 if (id_buf == NULL) { 102 async_answer_0(callid, ENOMEM); 103 async_answer_0(iid, ENOMEM); 104 return; 105 } 106 107 rc = vbds_disk_get_ids(id_buf, size, &act_size); 108 if (rc != EOK) { 109 async_answer_0(callid, rc); 110 async_answer_0(iid, rc); 111 return; 112 } 113 114 sysarg_t retval = async_data_read_finalize(callid, id_buf, size); 115 free(id_buf); 116 117 async_answer_1(iid, retval, act_size); 104 118 } 105 119 … … 362 376 363 377 switch (method) { 364 case VBD_DISK_ADD: 365 vbds_disk_add_srv(callid, &call); 366 break; 367 case VBD_DISK_REMOVE: 368 vbds_disk_remove_srv(callid, &call); 378 case VBD_GET_DISKS: 379 vbds_get_disks_srv(callid, &call); 369 380 break; 370 381 case VBD_DISK_INFO:
Note:
See TracChangeset
for help on using the changeset viewer.