Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/c/generic/vbd.c

    rb7fd2a0 r372df8f  
    3333 */
    3434
    35 #include <abi/ipc/interfaces.h>
    3635#include <errno.h>
    3736#include <ipc/services.h>
     
    4443#include <vbd.h>
    4544
    46 static errno_t vbd_get_ids_internal(vbd_t *, sysarg_t, sysarg_t, sysarg_t **,
     45static int vbd_get_ids_internal(vbd_t *, sysarg_t, sysarg_t, sysarg_t **,
    4746    size_t *);
    4847
    49 errno_t vbd_create(vbd_t **rvbd)
     48int vbd_create(vbd_t **rvbd)
    5049{
    5150        vbd_t *vbd;
    5251        service_id_t vbd_svcid;
    53         errno_t rc;
     52        int rc;
    5453
    5554        vbd = calloc(1, sizeof(vbd_t));
     
    6665        }
    6766
    68         vbd->sess = loc_service_connect(vbd_svcid, INTERFACE_VBD,
     67        vbd->sess = loc_service_connect(EXCHANGE_SERIALIZE, vbd_svcid,
    6968            IPC_FLAG_BLOCKING);
    7069        if (vbd->sess == NULL) {
     
    9594 * @param count Place to store length of array (number of entries)
    9695 *
    97  * @return EOK on success or an error code
    98  */
    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 */
     98int vbd_get_disks(vbd_t *vbd, service_id_t **data, size_t *count)
    10099{
    101100        return vbd_get_ids_internal(vbd, VBD_GET_DISKS, 0, data, count);
     
    103102
    104103/** 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;
     104int 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;
    109108        ipc_call_t answer;
    110109
    111110        exch = async_exchange_begin(vbd->sess);
    112111        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
     127int vbd_label_create(vbd_t *vbd, service_id_t sid, label_type_t ltype)
     128{
     129        async_exch_t *exch;
     130        int retval;
    132131
    133132        exch = async_exchange_begin(vbd->sess);
     
    141140}
    142141
    143 errno_t vbd_label_delete(vbd_t *vbd, service_id_t sid)
    144 {
    145         async_exch_t *exch;
    146         errno_t retval;
     142int vbd_label_delete(vbd_t *vbd, service_id_t sid)
     143{
     144        async_exch_t *exch;
     145        int retval;
    147146
    148147        exch = async_exchange_begin(vbd->sess);
     
    165164 * @param act_size Place to store actual size of complete data.
    166165 *
    167  * @return EOK on success or an error 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 */
     168static int vbd_get_ids_once(vbd_t *vbd, sysarg_t method, sysarg_t arg1,
    170169    sysarg_t *id_buf, size_t buf_size, size_t *act_size)
    171170{
     
    174173        ipc_call_t answer;
    175174        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);
    177176
    178177        async_exchange_end(exch);
     
    183182        }
    184183
    185         errno_t retval;
     184        sysarg_t retval;
    186185        async_wait_for(req, &retval);
    187186
     
    203202 * @param data   Place to store pointer to array of IDs
    204203 * @param count  Place to store number of IDs
    205  * @return       EOK on success or an error code
    206  */
    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 */
     206static int vbd_get_ids_internal(vbd_t *vbd, sysarg_t method, sysarg_t arg1,
    208207    sysarg_t **data, size_t *count)
    209208{
     
    212211
    213212        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);
    215214        if (rc != EOK)
    216215                return rc;
     
    247246 * @param count Place to store length of array (number of entries)
    248247 *
    249  * @return EOK on success or an error code
    250  */
    251 errno_t vbd_label_get_parts(vbd_t *vbd, service_id_t disk,
     248 * @return EOK on success or negative error code
     249 */
     250int vbd_label_get_parts(vbd_t *vbd, service_id_t disk,
    252251    service_id_t **data, size_t *count)
    253252{
     
    256255}
    257256
    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;
     257int 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;
    262261        ipc_call_t answer;
    263262
    264263        exch = async_exchange_begin(vbd->sess);
    265264        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
     280int vbd_part_create(vbd_t *vbd, service_id_t disk, vbd_part_spec_t *pspec,
    282281    vbd_part_id_t *rpart)
    283282{
    284283        async_exch_t *exch;
    285         errno_t retval;
     284        sysarg_t retval;
    286285        ipc_call_t answer;
    287286
    288287        exch = async_exchange_begin(vbd->sess);
    289288        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));
    291290        async_exchange_end(exch);
    292291
     
    305304}
    306305
    307 errno_t vbd_part_delete(vbd_t *vbd, vbd_part_id_t part)
    308 {
    309         async_exch_t *exch;
    310         errno_t retval;
     306int vbd_part_delete(vbd_t *vbd, vbd_part_id_t part)
     307{
     308        async_exch_t *exch;
     309        int retval;
    311310
    312311        exch = async_exchange_begin(vbd->sess);
     
    332331 * @param ptype Place to store suggested partition type
    333332 *
    334  * @return EOK on success or an error code
    335  */
    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 */
     335int vbd_suggest_ptype(vbd_t *vbd, service_id_t disk, label_pcnt_t pcnt,
    337336    label_ptype_t *ptype)
    338337{
    339338        async_exch_t *exch;
    340         errno_t retval;
     339        sysarg_t retval;
    341340        ipc_call_t answer;
    342341
    343342        exch = async_exchange_begin(vbd->sess);
    344343        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));
    346345        async_exchange_end(exch);
    347346
Note: See TracChangeset for help on using the changeset viewer.