Changeset e89a06a in mainline for uspace/srv/volsrv/volsrv.c
- Timestamp:
- 2018-07-06T22:13:20Z (7 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- be0f5e4
- Parents:
- 6419c6e
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/volsrv/volsrv.c
r6419c6e re89a06a 57 57 { 58 58 errno_t rc; 59 vol_parts_t *parts = NULL; 60 59 61 log_msg(LOG_DEFAULT, LVL_DEBUG, "vol_init()"); 60 62 61 rc = vol_part _init();63 rc = vol_parts_create(&parts); 62 64 if (rc != EOK) 63 return rc;64 65 rc = vol_part_discovery_start( );65 goto error; 66 67 rc = vol_part_discovery_start(parts); 66 68 if (rc != EOK) 67 return rc;68 69 async_set_fallback_port_handler(vol_client_conn, NULL);69 goto error; 70 71 async_set_fallback_port_handler(vol_client_conn, parts); 70 72 71 73 rc = loc_server_register(NAME); 72 74 if (rc != EOK) { 73 75 log_msg(LOG_DEFAULT, LVL_ERROR, "Failed registering server: %s.", str_error(rc)); 74 r eturnEEXIST;76 rc = EEXIST; 75 77 } 76 78 … … 79 81 if (rc != EOK) { 80 82 log_msg(LOG_DEFAULT, LVL_ERROR, "Failed registering service: %s.", str_error(rc)); 81 return EEXIST; 83 rc = EEXIST; 84 goto error; 82 85 } 83 86 84 87 return EOK; 85 } 86 87 static void vol_get_parts_srv(ipc_call_t *icall) 88 error: 89 vol_parts_destroy(parts); 90 return rc; 91 } 92 93 static void vol_get_parts_srv(vol_parts_t *parts, ipc_call_t *icall) 88 94 { 89 95 ipc_call_t call; … … 105 111 } 106 112 107 rc = vol_part_get_ids( id_buf, size, &act_size);113 rc = vol_part_get_ids(parts, id_buf, size, &act_size); 108 114 if (rc != EOK) { 109 115 async_answer_0(&call, rc); … … 118 124 } 119 125 120 static void vol_part_add_srv( ipc_call_t *icall)121 { 122 service_id_t sid; 123 errno_t rc; 124 125 sid = IPC_GET_ARG1(*icall); 126 127 rc = vol_part_add( sid);128 if (rc != EOK) { 129 async_answer_0(icall, rc); 130 return; 131 } 132 133 async_answer_0(icall, EOK); 134 } 135 136 static void vol_part_info_srv( ipc_call_t *icall)126 static void vol_part_add_srv(vol_parts_t *parts, ipc_call_t *icall) 127 { 128 service_id_t sid; 129 errno_t rc; 130 131 sid = IPC_GET_ARG1(*icall); 132 133 rc = vol_part_add(parts, sid); 134 if (rc != EOK) { 135 async_answer_0(icall, rc); 136 return; 137 } 138 139 async_answer_0(icall, EOK); 140 } 141 142 static void vol_part_info_srv(vol_parts_t *parts, ipc_call_t *icall) 137 143 { 138 144 service_id_t sid; … … 144 150 log_msg(LOG_DEFAULT, LVL_DEBUG, "vol_part_info_srv(%zu)", 145 151 sid); 146 rc = vol_part_find_by_id_ref( sid, &part);152 rc = vol_part_find_by_id_ref(parts, sid, &part); 147 153 if (rc != EOK) { 148 154 async_answer_0(icall, ENOENT); … … 183 189 } 184 190 185 static void vol_part_eject_srv( ipc_call_t *icall)191 static void vol_part_eject_srv(vol_parts_t *parts, ipc_call_t *icall) 186 192 { 187 193 service_id_t sid; … … 192 198 log_msg(LOG_DEFAULT, LVL_DEBUG, "vol_part_eject_srv(%zu)", sid); 193 199 194 rc = vol_part_find_by_id_ref( sid, &part);200 rc = vol_part_find_by_id_ref(parts, sid, &part); 195 201 if (rc != EOK) { 196 202 async_answer_0(icall, ENOENT); … … 209 215 } 210 216 211 static void vol_part_empty_srv( ipc_call_t *icall)217 static void vol_part_empty_srv(vol_parts_t *parts, ipc_call_t *icall) 212 218 { 213 219 service_id_t sid; … … 218 224 log_msg(LOG_DEFAULT, LVL_DEBUG, "vol_part_empty_srv(%zu)", sid); 219 225 220 rc = vol_part_find_by_id_ref( sid, &part);226 rc = vol_part_find_by_id_ref(parts, sid, &part); 221 227 if (rc != EOK) { 222 228 async_answer_0(icall, ENOENT); … … 235 241 } 236 242 237 static void vol_part_get_lsupp_srv( ipc_call_t *icall)243 static void vol_part_get_lsupp_srv(vol_parts_t *parts, ipc_call_t *icall) 238 244 { 239 245 vol_fstype_t fstype; … … 273 279 274 280 275 static void vol_part_mkfs_srv( ipc_call_t *icall)281 static void vol_part_mkfs_srv(vol_parts_t *parts, ipc_call_t *icall) 276 282 { 277 283 service_id_t sid; … … 298 304 } 299 305 300 rc = vol_part_find_by_id_ref( sid, &part);306 rc = vol_part_find_by_id_ref(parts, sid, &part); 301 307 if (rc != EOK) { 302 308 free(label); … … 319 325 static void vol_client_conn(ipc_call_t *icall, void *arg) 320 326 { 327 vol_parts_t *parts = (vol_parts_t *) arg; 328 321 329 log_msg(LOG_DEFAULT, LVL_DEBUG, "vol_client_conn()"); 322 330 … … 337 345 switch (method) { 338 346 case VOL_GET_PARTS: 339 vol_get_parts_srv( &call);347 vol_get_parts_srv(parts, &call); 340 348 break; 341 349 case VOL_PART_ADD: 342 vol_part_add_srv( &call);350 vol_part_add_srv(parts, &call); 343 351 break; 344 352 case VOL_PART_INFO: 345 vol_part_info_srv( &call);353 vol_part_info_srv(parts, &call); 346 354 break; 347 355 case VOL_PART_EJECT: 348 vol_part_eject_srv( &call);356 vol_part_eject_srv(parts, &call); 349 357 break; 350 358 case VOL_PART_EMPTY: 351 vol_part_empty_srv( &call);359 vol_part_empty_srv(parts, &call); 352 360 break; 353 361 case VOL_PART_LSUPP: 354 vol_part_get_lsupp_srv( &call);362 vol_part_get_lsupp_srv(parts, &call); 355 363 break; 356 364 case VOL_PART_MKFS: 357 vol_part_mkfs_srv( &call);365 vol_part_mkfs_srv(parts, &call); 358 366 break; 359 367 default:
Note:
See TracChangeset
for help on using the changeset viewer.