Changes in uspace/lib/c/generic/vbd.c [b7fd2a0:372df8f] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/c/generic/vbd.c
rb7fd2a0 r372df8f 33 33 */ 34 34 35 #include <abi/ipc/interfaces.h>36 35 #include <errno.h> 37 36 #include <ipc/services.h> … … 44 43 #include <vbd.h> 45 44 46 static errno_t vbd_get_ids_internal(vbd_t *, sysarg_t, sysarg_t, sysarg_t **,45 static int vbd_get_ids_internal(vbd_t *, sysarg_t, sysarg_t, sysarg_t **, 47 46 size_t *); 48 47 49 errno_t vbd_create(vbd_t **rvbd)48 int vbd_create(vbd_t **rvbd) 50 49 { 51 50 vbd_t *vbd; 52 51 service_id_t vbd_svcid; 53 errno_t rc;52 int rc; 54 53 55 54 vbd = calloc(1, sizeof(vbd_t)); … … 66 65 } 67 66 68 vbd->sess = loc_service_connect( vbd_svcid, INTERFACE_VBD,67 vbd->sess = loc_service_connect(EXCHANGE_SERIALIZE, vbd_svcid, 69 68 IPC_FLAG_BLOCKING); 70 69 if (vbd->sess == NULL) { … … 95 94 * @param count Place to store length of array (number of entries) 96 95 * 97 * @return EOK on success or anerror code98 */ 99 errno_t vbd_get_disks(vbd_t *vbd, service_id_t **data, size_t *count)96 * @return EOK on success or negative error code 97 */ 98 int vbd_get_disks(vbd_t *vbd, service_id_t **data, size_t *count) 100 99 { 101 100 return vbd_get_ids_internal(vbd, VBD_GET_DISKS, 0, data, count); … … 103 102 104 103 /** Get disk information. */ 105 errno_t vbd_disk_info(vbd_t *vbd, service_id_t sid, vbd_disk_info_t *vinfo)106 { 107 async_exch_t *exch; 108 errno_t retval;104 int vbd_disk_info(vbd_t *vbd, service_id_t sid, vbd_disk_info_t *vinfo) 105 { 106 async_exch_t *exch; 107 sysarg_t retval; 109 108 ipc_call_t answer; 110 109 111 110 exch = async_exchange_begin(vbd->sess); 112 111 aid_t req = async_send_1(exch, VBD_DISK_INFO, sid, &answer); 113 errno_t rc = async_data_read_start(exch, vinfo, sizeof(vbd_disk_info_t));114 async_exchange_end(exch); 115 116 if (rc != EOK) { 117 async_forget(req); 118 return EIO; 119 } 120 121 async_wait_for(req, &retval); 122 if (retval != EOK) 123 return EIO; 124 125 return EOK; 126 } 127 128 errno_t vbd_label_create(vbd_t *vbd, service_id_t sid, label_type_t ltype)129 { 130 async_exch_t *exch; 131 errno_t retval;112 int rc = async_data_read_start(exch, vinfo, sizeof(vbd_disk_info_t)); 113 async_exchange_end(exch); 114 115 if (rc != EOK) { 116 async_forget(req); 117 return EIO; 118 } 119 120 async_wait_for(req, &retval); 121 if (retval != EOK) 122 return EIO; 123 124 return EOK; 125 } 126 127 int vbd_label_create(vbd_t *vbd, service_id_t sid, label_type_t ltype) 128 { 129 async_exch_t *exch; 130 int retval; 132 131 133 132 exch = async_exchange_begin(vbd->sess); … … 141 140 } 142 141 143 errno_t vbd_label_delete(vbd_t *vbd, service_id_t sid)144 { 145 async_exch_t *exch; 146 errno_t retval;142 int vbd_label_delete(vbd_t *vbd, service_id_t sid) 143 { 144 async_exch_t *exch; 145 int retval; 147 146 148 147 exch = async_exchange_begin(vbd->sess); … … 165 164 * @param act_size Place to store actual size of complete data. 166 165 * 167 * @return EOK on success or anerror code.168 */ 169 static errno_t vbd_get_ids_once(vbd_t *vbd, sysarg_t method, sysarg_t arg1,166 * @return EOK on success or negative error code. 167 */ 168 static int vbd_get_ids_once(vbd_t *vbd, sysarg_t method, sysarg_t arg1, 170 169 sysarg_t *id_buf, size_t buf_size, size_t *act_size) 171 170 { … … 174 173 ipc_call_t answer; 175 174 aid_t req = async_send_1(exch, method, arg1, &answer); 176 errno_t rc = async_data_read_start(exch, id_buf, buf_size);175 int rc = async_data_read_start(exch, id_buf, buf_size); 177 176 178 177 async_exchange_end(exch); … … 183 182 } 184 183 185 errno_t retval;184 sysarg_t retval; 186 185 async_wait_for(req, &retval); 187 186 … … 203 202 * @param data Place to store pointer to array of IDs 204 203 * @param count Place to store number of IDs 205 * @return EOK on success or anerror code206 */ 207 static errno_t vbd_get_ids_internal(vbd_t *vbd, sysarg_t method, sysarg_t arg1,204 * @return EOK on success or negative error code 205 */ 206 static int vbd_get_ids_internal(vbd_t *vbd, sysarg_t method, sysarg_t arg1, 208 207 sysarg_t **data, size_t *count) 209 208 { … … 212 211 213 212 size_t act_size = 0; 214 errno_t rc = vbd_get_ids_once(vbd, method, arg1, NULL, 0, &act_size);213 int rc = vbd_get_ids_once(vbd, method, arg1, NULL, 0, &act_size); 215 214 if (rc != EOK) 216 215 return rc; … … 247 246 * @param count Place to store length of array (number of entries) 248 247 * 249 * @return EOK on success or anerror code250 */ 251 errno_t vbd_label_get_parts(vbd_t *vbd, service_id_t disk,248 * @return EOK on success or negative error code 249 */ 250 int vbd_label_get_parts(vbd_t *vbd, service_id_t disk, 252 251 service_id_t **data, size_t *count) 253 252 { … … 256 255 } 257 256 258 errno_t vbd_part_get_info(vbd_t *vbd, vbd_part_id_t part, vbd_part_info_t *pinfo)259 { 260 async_exch_t *exch; 261 errno_t retval;257 int vbd_part_get_info(vbd_t *vbd, vbd_part_id_t part, vbd_part_info_t *pinfo) 258 { 259 async_exch_t *exch; 260 sysarg_t retval; 262 261 ipc_call_t answer; 263 262 264 263 exch = async_exchange_begin(vbd->sess); 265 264 aid_t req = async_send_1(exch, VBD_PART_GET_INFO, part, &answer); 266 errno_t rc = async_data_read_start(exch, pinfo, sizeof(vbd_part_info_t));267 async_exchange_end(exch); 268 269 if (rc != EOK) { 270 async_forget(req); 271 return EIO; 272 } 273 274 async_wait_for(req, &retval); 275 if (retval != EOK) 276 return EIO; 277 278 return EOK; 279 } 280 281 errno_t vbd_part_create(vbd_t *vbd, service_id_t disk, vbd_part_spec_t *pspec,265 int rc = async_data_read_start(exch, pinfo, sizeof(vbd_part_info_t)); 266 async_exchange_end(exch); 267 268 if (rc != EOK) { 269 async_forget(req); 270 return EIO; 271 } 272 273 async_wait_for(req, &retval); 274 if (retval != EOK) 275 return EIO; 276 277 return EOK; 278 } 279 280 int vbd_part_create(vbd_t *vbd, service_id_t disk, vbd_part_spec_t *pspec, 282 281 vbd_part_id_t *rpart) 283 282 { 284 283 async_exch_t *exch; 285 errno_t retval;284 sysarg_t retval; 286 285 ipc_call_t answer; 287 286 288 287 exch = async_exchange_begin(vbd->sess); 289 288 aid_t req = async_send_1(exch, VBD_PART_CREATE, disk, &answer); 290 errno_t rc = async_data_write_start(exch, pspec, sizeof(vbd_part_spec_t));289 int rc = async_data_write_start(exch, pspec, sizeof(vbd_part_spec_t)); 291 290 async_exchange_end(exch); 292 291 … … 305 304 } 306 305 307 errno_t vbd_part_delete(vbd_t *vbd, vbd_part_id_t part)308 { 309 async_exch_t *exch; 310 errno_t retval;306 int vbd_part_delete(vbd_t *vbd, vbd_part_id_t part) 307 { 308 async_exch_t *exch; 309 int retval; 311 310 312 311 exch = async_exchange_begin(vbd->sess); … … 332 331 * @param ptype Place to store suggested partition type 333 332 * 334 * @return EOK on success or anerror code335 */ 336 errno_t vbd_suggest_ptype(vbd_t *vbd, service_id_t disk, label_pcnt_t pcnt,333 * @return EOK on success or negative error code 334 */ 335 int vbd_suggest_ptype(vbd_t *vbd, service_id_t disk, label_pcnt_t pcnt, 337 336 label_ptype_t *ptype) 338 337 { 339 338 async_exch_t *exch; 340 errno_t retval;339 sysarg_t retval; 341 340 ipc_call_t answer; 342 341 343 342 exch = async_exchange_begin(vbd->sess); 344 343 aid_t req = async_send_2(exch, VBD_SUGGEST_PTYPE, disk, pcnt, &answer); 345 errno_t rc = async_data_read_start(exch, ptype, sizeof(label_ptype_t));344 int rc = async_data_read_start(exch, ptype, sizeof(label_ptype_t)); 346 345 async_exchange_end(exch); 347 346
Note:
See TracChangeset
for help on using the changeset viewer.