Changeset a46e56b in mainline for uspace/srv/volsrv/volsrv.c
- Timestamp:
- 2018-03-22T06:49:35Z (7 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 77f0a1d
- Parents:
- 3e242d2
- git-author:
- Jakub Jermar <jakub@…> (2018-03-21 23:29:06)
- git-committer:
- Jakub Jermar <jakub@…> (2018-03-22 06:49:35)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/volsrv/volsrv.c
r3e242d2 ra46e56b 85 85 } 86 86 87 static void vol_get_parts_srv(cap_call_handle_t i id, ipc_call_t *icall)88 { 89 cap_call_handle_t c allid;87 static void vol_get_parts_srv(cap_call_handle_t icall_handle, ipc_call_t *icall) 88 { 89 cap_call_handle_t chandle; 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 allid, &size)) {95 async_answer_0(c allid, EREFUSED);96 async_answer_0(i id, EREFUSED);94 if (!async_data_read_receive(&chandle, &size)) { 95 async_answer_0(chandle, EREFUSED); 96 async_answer_0(icall_handle, 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(c allid, ENOMEM);103 async_answer_0(i id, ENOMEM);102 async_answer_0(chandle, ENOMEM); 103 async_answer_0(icall_handle, 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(c allid, rc);110 async_answer_0(i id, rc);111 return; 112 } 113 114 errno_t retval = async_data_read_finalize(c allid, id_buf, size);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); 115 115 free(id_buf); 116 116 117 async_answer_1(i id, retval, act_size);118 } 119 120 static void vol_part_add_srv(cap_call_handle_t i id, ipc_call_t *icall)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) 121 121 { 122 122 service_id_t sid; … … 127 127 rc = vol_part_add(sid); 128 128 if (rc != EOK) { 129 async_answer_0(i id, rc);130 return; 131 } 132 133 async_answer_0(i id, EOK);134 } 135 136 static void vol_part_info_srv(cap_call_handle_t i id, ipc_call_t *icall)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) 137 137 { 138 138 service_id_t sid; … … 146 146 rc = vol_part_find_by_id(sid, &part); 147 147 if (rc != EOK) { 148 async_answer_0(i id, ENOENT);148 async_answer_0(icall_handle, ENOENT); 149 149 return; 150 150 } … … 152 152 rc = vol_part_get_info(part, &pinfo); 153 153 if (rc != EOK) { 154 async_answer_0(i id, EIO);155 return; 156 } 157 158 cap_call_handle_t c allid;154 async_answer_0(icall_handle, EIO); 155 return; 156 } 157 158 cap_call_handle_t chandle; 159 159 size_t size; 160 if (!async_data_read_receive(&c allid, &size)) {161 async_answer_0(c allid, EREFUSED);162 async_answer_0(i id, EREFUSED);160 if (!async_data_read_receive(&chandle, &size)) { 161 async_answer_0(chandle, EREFUSED); 162 async_answer_0(icall_handle, EREFUSED); 163 163 return; 164 164 } 165 165 166 166 if (size != sizeof(vol_part_info_t)) { 167 async_answer_0(c allid, EINVAL);168 async_answer_0(i id, EINVAL);169 return; 170 } 171 172 rc = async_data_read_finalize(c allid, &pinfo,167 async_answer_0(chandle, EINVAL); 168 async_answer_0(icall_handle, EINVAL); 169 return; 170 } 171 172 rc = async_data_read_finalize(chandle, &pinfo, 173 173 min(size, sizeof(pinfo))); 174 174 if (rc != EOK) { 175 async_answer_0(c allid, rc);176 async_answer_0(i id, rc);177 return; 178 } 179 180 async_answer_0(i id, EOK);181 } 182 183 static void vol_part_empty_srv(cap_call_handle_t i id, ipc_call_t *icall)175 async_answer_0(chandle, rc); 176 async_answer_0(icall_handle, rc); 177 return; 178 } 179 180 async_answer_0(icall_handle, EOK); 181 } 182 183 static void vol_part_empty_srv(cap_call_handle_t icall_handle, ipc_call_t *icall) 184 184 { 185 185 service_id_t sid; … … 192 192 rc = vol_part_find_by_id(sid, &part); 193 193 if (rc != EOK) { 194 async_answer_0(i id, ENOENT);194 async_answer_0(icall_handle, ENOENT); 195 195 return; 196 196 } … … 198 198 rc = vol_part_empty_part(part); 199 199 if (rc != EOK) { 200 async_answer_0(i id, EIO);201 return; 202 } 203 204 async_answer_0(i id, EOK);205 } 206 207 static void vol_part_get_lsupp_srv(cap_call_handle_t i id, ipc_call_t *icall)200 async_answer_0(icall_handle, EIO); 201 return; 202 } 203 204 async_answer_0(icall_handle, EOK); 205 } 206 207 static void vol_part_get_lsupp_srv(cap_call_handle_t icall_handle, ipc_call_t *icall) 208 208 { 209 209 vol_fstype_t fstype; … … 217 217 volsrv_part_get_lsupp(fstype, &vlsupp); 218 218 219 cap_call_handle_t c allid;219 cap_call_handle_t chandle; 220 220 size_t size; 221 if (!async_data_read_receive(&c allid, &size)) {222 async_answer_0(c allid, EREFUSED);223 async_answer_0(i id, EREFUSED);221 if (!async_data_read_receive(&chandle, &size)) { 222 async_answer_0(chandle, EREFUSED); 223 async_answer_0(icall_handle, EREFUSED); 224 224 return; 225 225 } 226 226 227 227 if (size != sizeof(vol_label_supp_t)) { 228 async_answer_0(c allid, EINVAL);229 async_answer_0(i id, EINVAL);230 return; 231 } 232 233 rc = async_data_read_finalize(c allid, &vlsupp,228 async_answer_0(chandle, EINVAL); 229 async_answer_0(icall_handle, EINVAL); 230 return; 231 } 232 233 rc = async_data_read_finalize(chandle, &vlsupp, 234 234 min(size, sizeof(vlsupp))); 235 235 if (rc != EOK) { 236 async_answer_0(c allid, rc);237 async_answer_0(i id, rc);238 return; 239 } 240 241 async_answer_0(i id, EOK);242 } 243 244 245 static void vol_part_mkfs_srv(cap_call_handle_t i id, ipc_call_t *icall)236 async_answer_0(chandle, rc); 237 async_answer_0(icall_handle, rc); 238 return; 239 } 240 241 async_answer_0(icall_handle, EOK); 242 } 243 244 245 static void vol_part_mkfs_srv(cap_call_handle_t icall_handle, ipc_call_t *icall) 246 246 { 247 247 service_id_t sid; … … 257 257 0, NULL); 258 258 if (rc != EOK) { 259 async_answer_0(i id, rc);259 async_answer_0(icall_handle, rc); 260 260 return; 261 261 } … … 267 267 if (rc != EOK) { 268 268 free(label); 269 async_answer_0(i id, ENOENT);269 async_answer_0(icall_handle, ENOENT); 270 270 return; 271 271 } … … 274 274 if (rc != EOK) { 275 275 free(label); 276 async_answer_0(i id, rc);276 async_answer_0(icall_handle, rc); 277 277 return; 278 278 } 279 279 280 280 free(label); 281 async_answer_0(i id, EOK);282 } 283 284 static void vol_client_conn(cap_call_handle_t i id, ipc_call_t *icall, void *arg)281 async_answer_0(icall_handle, EOK); 282 } 283 284 static void vol_client_conn(cap_call_handle_t icall_handle, ipc_call_t *icall, void *arg) 285 285 { 286 286 log_msg(LOG_DEFAULT, LVL_DEBUG, "vol_client_conn()"); 287 287 288 288 /* Accept the connection */ 289 async_answer_0(i id, EOK);289 async_answer_0(icall_handle, EOK); 290 290 291 291 while (true) { 292 292 ipc_call_t call; 293 cap_call_handle_t c allid= async_get_call(&call);293 cap_call_handle_t chandle = async_get_call(&call); 294 294 sysarg_t method = IPC_GET_IMETHOD(call); 295 295 296 296 if (!method) { 297 297 /* The other side has hung up */ 298 async_answer_0(c allid, EOK);298 async_answer_0(chandle, EOK); 299 299 return; 300 300 } … … 302 302 switch (method) { 303 303 case VOL_GET_PARTS: 304 vol_get_parts_srv(c allid, &call);304 vol_get_parts_srv(chandle, &call); 305 305 break; 306 306 case VOL_PART_ADD: 307 vol_part_add_srv(c allid, &call);307 vol_part_add_srv(chandle, &call); 308 308 break; 309 309 case VOL_PART_INFO: 310 vol_part_info_srv(c allid, &call);310 vol_part_info_srv(chandle, &call); 311 311 break; 312 312 case VOL_PART_EMPTY: 313 vol_part_empty_srv(c allid, &call);313 vol_part_empty_srv(chandle, &call); 314 314 break; 315 315 case VOL_PART_LSUPP: 316 vol_part_get_lsupp_srv(c allid, &call);316 vol_part_get_lsupp_srv(chandle, &call); 317 317 break; 318 318 case VOL_PART_MKFS: 319 vol_part_mkfs_srv(c allid, &call);319 vol_part_mkfs_srv(chandle, &call); 320 320 break; 321 321 default: 322 async_answer_0(c allid, EINVAL);322 async_answer_0(chandle, EINVAL); 323 323 } 324 324 }
Note:
See TracChangeset
for help on using the changeset viewer.