Changeset 984a9ba in mainline for uspace/srv/volsrv/volsrv.c
- Timestamp:
- 2018-07-05T09:34:09Z (6 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 63d46341
- Parents:
- 76f566d
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/volsrv/volsrv.c
r76f566d r984a9ba 52 52 #define NAME "volsrv" 53 53 54 static void vol_client_conn( cap_call_handle_t,ipc_call_t *, void *);54 static void vol_client_conn(ipc_call_t *, void *); 55 55 56 56 static errno_t vol_init(void) … … 85 85 } 86 86 87 static void vol_get_parts_srv( cap_call_handle_t icall_handle,ipc_call_t *icall)88 { 89 cap_call_handle_t chandle;87 static void vol_get_parts_srv(ipc_call_t *icall) 88 { 89 ipc_call_t call; 90 90 size_t size; 91 91 size_t act_size; 92 92 errno_t rc; 93 93 94 if (!async_data_read_receive(&c handle, &size)) {95 async_answer_0( chandle, EREFUSED);96 async_answer_0(icall _handle, EREFUSED);94 if (!async_data_read_receive(&call, &size)) { 95 async_answer_0(&call, EREFUSED); 96 async_answer_0(icall, EREFUSED); 97 97 return; 98 98 } … … 100 100 service_id_t *id_buf = (service_id_t *) malloc(size); 101 101 if (id_buf == NULL) { 102 async_answer_0( chandle, ENOMEM);103 async_answer_0(icall _handle, ENOMEM);102 async_answer_0(&call, ENOMEM); 103 async_answer_0(icall, ENOMEM); 104 104 return; 105 105 } … … 107 107 rc = vol_part_get_ids(id_buf, size, &act_size); 108 108 if (rc != EOK) { 109 async_answer_0( chandle, rc);110 async_answer_0(icall _handle, rc);111 return; 112 } 113 114 errno_t retval = async_data_read_finalize( chandle, id_buf, size);109 async_answer_0(&call, rc); 110 async_answer_0(icall, rc); 111 return; 112 } 113 114 errno_t retval = async_data_read_finalize(&call, id_buf, size); 115 115 free(id_buf); 116 116 117 async_answer_1(icall _handle, retval, act_size);118 } 119 120 static void vol_part_add_srv( cap_call_handle_t icall_handle,ipc_call_t *icall)117 async_answer_1(icall, retval, act_size); 118 } 119 120 static void vol_part_add_srv(ipc_call_t *icall) 121 121 { 122 122 service_id_t sid; … … 127 127 rc = vol_part_add(sid); 128 128 if (rc != EOK) { 129 async_answer_0(icall _handle, rc);130 return; 131 } 132 133 async_answer_0(icall _handle, EOK);134 } 135 136 static void vol_part_info_srv( cap_call_handle_t icall_handle,ipc_call_t *icall)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) 137 137 { 138 138 service_id_t sid; … … 146 146 rc = vol_part_find_by_id_ref(sid, &part); 147 147 if (rc != EOK) { 148 async_answer_0(icall _handle, ENOENT);148 async_answer_0(icall, ENOENT); 149 149 return; 150 150 } … … 152 152 rc = vol_part_get_info(part, &pinfo); 153 153 if (rc != EOK) { 154 async_answer_0(icall _handle, EIO);155 goto error; 156 } 157 158 cap_call_handle_t chandle;154 async_answer_0(icall, EIO); 155 goto error; 156 } 157 158 ipc_call_t call; 159 159 size_t size; 160 if (!async_data_read_receive(&c handle, &size)) {161 async_answer_0( chandle, EREFUSED);162 async_answer_0(icall _handle, EREFUSED);160 if (!async_data_read_receive(&call, &size)) { 161 async_answer_0(&call, EREFUSED); 162 async_answer_0(icall, EREFUSED); 163 163 goto error; 164 164 } 165 165 166 166 if (size != sizeof(vol_part_info_t)) { 167 async_answer_0( chandle, EINVAL);168 async_answer_0(icall _handle, EINVAL);169 goto error; 170 } 171 172 rc = async_data_read_finalize( chandle, &pinfo,167 async_answer_0(&call, EINVAL); 168 async_answer_0(icall, EINVAL); 169 goto error; 170 } 171 172 rc = async_data_read_finalize(&call, &pinfo, 173 173 min(size, sizeof(pinfo))); 174 174 if (rc != EOK) { 175 async_answer_0( chandle, rc);176 async_answer_0(icall _handle, rc);177 goto error; 178 } 179 180 async_answer_0(icall _handle, EOK);175 async_answer_0(&call, rc); 176 async_answer_0(icall, rc); 177 goto error; 178 } 179 180 async_answer_0(icall, EOK); 181 181 error: 182 182 vol_part_del_ref(part); 183 183 } 184 184 185 static void vol_part_eject_srv( cap_call_handle_t icall_handle,ipc_call_t *icall)185 static void vol_part_eject_srv(ipc_call_t *icall) 186 186 { 187 187 service_id_t sid; … … 194 194 rc = vol_part_find_by_id_ref(sid, &part); 195 195 if (rc != EOK) { 196 async_answer_0(icall _handle, ENOENT);196 async_answer_0(icall, ENOENT); 197 197 goto error; 198 198 } … … 200 200 rc = vol_part_eject_part(part); 201 201 if (rc != EOK) { 202 async_answer_0(icall _handle, EIO);203 goto error; 204 } 205 206 async_answer_0(icall _handle, EOK);202 async_answer_0(icall, EIO); 203 goto error; 204 } 205 206 async_answer_0(icall, EOK); 207 207 error: 208 208 vol_part_del_ref(part); 209 209 } 210 210 211 static void vol_part_empty_srv( cap_call_handle_t icall_handle,ipc_call_t *icall)211 static void vol_part_empty_srv(ipc_call_t *icall) 212 212 { 213 213 service_id_t sid; … … 220 220 rc = vol_part_find_by_id_ref(sid, &part); 221 221 if (rc != EOK) { 222 async_answer_0(icall _handle, ENOENT);222 async_answer_0(icall, ENOENT); 223 223 return; 224 224 } … … 226 226 rc = vol_part_empty_part(part); 227 227 if (rc != EOK) { 228 async_answer_0(icall _handle, EIO);229 goto error; 230 } 231 232 async_answer_0(icall _handle, EOK);228 async_answer_0(icall, EIO); 229 goto error; 230 } 231 232 async_answer_0(icall, EOK); 233 233 error: 234 234 vol_part_del_ref(part); 235 235 } 236 236 237 static void vol_part_get_lsupp_srv( cap_call_handle_t icall_handle,ipc_call_t *icall)237 static void vol_part_get_lsupp_srv(ipc_call_t *icall) 238 238 { 239 239 vol_fstype_t fstype; … … 247 247 volsrv_part_get_lsupp(fstype, &vlsupp); 248 248 249 cap_call_handle_t chandle;249 ipc_call_t call; 250 250 size_t size; 251 if (!async_data_read_receive(&c handle, &size)) {252 async_answer_0( chandle, EREFUSED);253 async_answer_0(icall _handle, EREFUSED);251 if (!async_data_read_receive(&call, &size)) { 252 async_answer_0(&call, EREFUSED); 253 async_answer_0(icall, EREFUSED); 254 254 return; 255 255 } 256 256 257 257 if (size != sizeof(vol_label_supp_t)) { 258 async_answer_0( chandle, EINVAL);259 async_answer_0(icall _handle, EINVAL);260 return; 261 } 262 263 rc = async_data_read_finalize( chandle, &vlsupp,258 async_answer_0(&call, EINVAL); 259 async_answer_0(icall, EINVAL); 260 return; 261 } 262 263 rc = async_data_read_finalize(&call, &vlsupp, 264 264 min(size, sizeof(vlsupp))); 265 265 if (rc != EOK) { 266 async_answer_0( chandle, rc);267 async_answer_0(icall _handle, rc);268 return; 269 } 270 271 async_answer_0(icall _handle, EOK);272 } 273 274 275 static void vol_part_mkfs_srv( cap_call_handle_t icall_handle,ipc_call_t *icall)266 async_answer_0(&call, rc); 267 async_answer_0(icall, rc); 268 return; 269 } 270 271 async_answer_0(icall, EOK); 272 } 273 274 275 static void vol_part_mkfs_srv(ipc_call_t *icall) 276 276 { 277 277 service_id_t sid; … … 289 289 0, NULL); 290 290 if (rc != EOK) { 291 async_answer_0(icall _handle, rc);291 async_answer_0(icall, rc); 292 292 return; 293 293 } … … 301 301 if (rc != EOK) { 302 302 free(label); 303 async_answer_0(icall _handle, ENOENT);303 async_answer_0(icall, ENOENT); 304 304 return; 305 305 } … … 308 308 if (rc != EOK) { 309 309 free(label); 310 async_answer_0(icall _handle, rc);310 async_answer_0(icall, rc); 311 311 vol_part_del_ref(part); 312 312 return; … … 314 314 315 315 free(label); 316 async_answer_0(icall _handle, EOK);317 } 318 319 static void vol_client_conn( cap_call_handle_t icall_handle,ipc_call_t *icall, void *arg)316 async_answer_0(icall, EOK); 317 } 318 319 static void vol_client_conn(ipc_call_t *icall, void *arg) 320 320 { 321 321 log_msg(LOG_DEFAULT, LVL_DEBUG, "vol_client_conn()"); 322 322 323 323 /* Accept the connection */ 324 async_answer_0(icall _handle, EOK);324 async_answer_0(icall, EOK); 325 325 326 326 while (true) { 327 327 ipc_call_t call; 328 cap_call_handle_t chandle =async_get_call(&call);328 async_get_call(&call); 329 329 sysarg_t method = IPC_GET_IMETHOD(call); 330 330 331 331 if (!method) { 332 332 /* The other side has hung up */ 333 async_answer_0( chandle, EOK);333 async_answer_0(&call, EOK); 334 334 return; 335 335 } … … 337 337 switch (method) { 338 338 case VOL_GET_PARTS: 339 vol_get_parts_srv( chandle,&call);339 vol_get_parts_srv(&call); 340 340 break; 341 341 case VOL_PART_ADD: 342 vol_part_add_srv( chandle,&call);342 vol_part_add_srv(&call); 343 343 break; 344 344 case VOL_PART_INFO: 345 vol_part_info_srv( chandle,&call);345 vol_part_info_srv(&call); 346 346 break; 347 347 case VOL_PART_EJECT: 348 vol_part_eject_srv( chandle,&call);348 vol_part_eject_srv(&call); 349 349 break; 350 350 case VOL_PART_EMPTY: 351 vol_part_empty_srv( chandle,&call);351 vol_part_empty_srv(&call); 352 352 break; 353 353 case VOL_PART_LSUPP: 354 vol_part_get_lsupp_srv( chandle,&call);354 vol_part_get_lsupp_srv(&call); 355 355 break; 356 356 case VOL_PART_MKFS: 357 vol_part_mkfs_srv( chandle,&call);357 vol_part_mkfs_srv(&call); 358 358 break; 359 359 default: 360 async_answer_0( chandle, EINVAL);360 async_answer_0(&call, EINVAL); 361 361 } 362 362 }
Note:
See TracChangeset
for help on using the changeset viewer.