Ignore:
File:
1 edited

Legend:

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

    r372df8f rb7fd2a0  
    3333 */
    3434
     35#include <abi/ipc/interfaces.h>
    3536#include <errno.h>
    3637#include <ipc/services.h>
     
    4344#include <vbd.h>
    4445
    45 static int vbd_get_ids_internal(vbd_t *, sysarg_t, sysarg_t, sysarg_t **,
     46static errno_t vbd_get_ids_internal(vbd_t *, sysarg_t, sysarg_t, sysarg_t **,
    4647    size_t *);
    4748
    48 int vbd_create(vbd_t **rvbd)
     49errno_t vbd_create(vbd_t **rvbd)
    4950{
    5051        vbd_t *vbd;
    5152        service_id_t vbd_svcid;
    52         int rc;
     53        errno_t rc;
    5354
    5455        vbd = calloc(1, sizeof(vbd_t));
     
    6566        }
    6667
    67         vbd->sess = loc_service_connect(EXCHANGE_SERIALIZE, vbd_svcid,
     68        vbd->sess = loc_service_connect(vbd_svcid, INTERFACE_VBD,
    6869            IPC_FLAG_BLOCKING);
    6970        if (vbd->sess == NULL) {
     
    9495 * @param count Place to store length of array (number of entries)
    9596 *
    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)
     97 * @return EOK on success or an error code
     98 */
     99errno_t vbd_get_disks(vbd_t *vbd, service_id_t **data, size_t *count)
    99100{
    100101        return vbd_get_ids_internal(vbd, VBD_GET_DISKS, 0, data, count);
     
    102103
    103104/** Get disk information. */
    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;
     105errno_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;
    108109        ipc_call_t answer;
    109110
    110111        exch = async_exchange_begin(vbd->sess);
    111112        aid_t req = async_send_1(exch, VBD_DISK_INFO, sid, &answer);
    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;
     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
     128errno_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;
    131132
    132133        exch = async_exchange_begin(vbd->sess);
     
    140141}
    141142
    142 int vbd_label_delete(vbd_t *vbd, service_id_t sid)
    143 {
    144         async_exch_t *exch;
    145         int retval;
     143errno_t vbd_label_delete(vbd_t *vbd, service_id_t sid)
     144{
     145        async_exch_t *exch;
     146        errno_t retval;
    146147
    147148        exch = async_exchange_begin(vbd->sess);
     
    164165 * @param act_size Place to store actual size of complete data.
    165166 *
    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,
     167 * @return EOK on success or an error code.
     168 */
     169static errno_t vbd_get_ids_once(vbd_t *vbd, sysarg_t method, sysarg_t arg1,
    169170    sysarg_t *id_buf, size_t buf_size, size_t *act_size)
    170171{
     
    173174        ipc_call_t answer;
    174175        aid_t req = async_send_1(exch, method, arg1, &answer);
    175         int rc = async_data_read_start(exch, id_buf, buf_size);
     176        errno_t rc = async_data_read_start(exch, id_buf, buf_size);
    176177
    177178        async_exchange_end(exch);
     
    182183        }
    183184
    184         sysarg_t retval;
     185        errno_t retval;
    185186        async_wait_for(req, &retval);
    186187
     
    202203 * @param data   Place to store pointer to array of IDs
    203204 * @param count  Place to store number of IDs
    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,
     205 * @return       EOK on success or an error code
     206 */
     207static errno_t vbd_get_ids_internal(vbd_t *vbd, sysarg_t method, sysarg_t arg1,
    207208    sysarg_t **data, size_t *count)
    208209{
     
    211212
    212213        size_t act_size = 0;
    213         int rc = vbd_get_ids_once(vbd, method, arg1, NULL, 0, &act_size);
     214        errno_t rc = vbd_get_ids_once(vbd, method, arg1, NULL, 0, &act_size);
    214215        if (rc != EOK)
    215216                return rc;
     
    246247 * @param count Place to store length of array (number of entries)
    247248 *
    248  * @return EOK on success or negative error code
    249  */
    250 int vbd_label_get_parts(vbd_t *vbd, service_id_t disk,
     249 * @return EOK on success or an error code
     250 */
     251errno_t vbd_label_get_parts(vbd_t *vbd, service_id_t disk,
    251252    service_id_t **data, size_t *count)
    252253{
     
    255256}
    256257
    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;
     258errno_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;
    261262        ipc_call_t answer;
    262263
    263264        exch = async_exchange_begin(vbd->sess);
    264265        aid_t req = async_send_1(exch, VBD_PART_GET_INFO, part, &answer);
    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,
     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
     281errno_t vbd_part_create(vbd_t *vbd, service_id_t disk, vbd_part_spec_t *pspec,
    281282    vbd_part_id_t *rpart)
    282283{
    283284        async_exch_t *exch;
    284         sysarg_t retval;
     285        errno_t retval;
    285286        ipc_call_t answer;
    286287
    287288        exch = async_exchange_begin(vbd->sess);
    288289        aid_t req = async_send_1(exch, VBD_PART_CREATE, disk, &answer);
    289         int rc = async_data_write_start(exch, pspec, sizeof(vbd_part_spec_t));
     290        errno_t rc = async_data_write_start(exch, pspec, sizeof(vbd_part_spec_t));
    290291        async_exchange_end(exch);
    291292
     
    304305}
    305306
    306 int vbd_part_delete(vbd_t *vbd, vbd_part_id_t part)
    307 {
    308         async_exch_t *exch;
    309         int retval;
     307errno_t vbd_part_delete(vbd_t *vbd, vbd_part_id_t part)
     308{
     309        async_exch_t *exch;
     310        errno_t retval;
    310311
    311312        exch = async_exchange_begin(vbd->sess);
     
    331332 * @param ptype Place to store suggested partition type
    332333 *
    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,
     334 * @return EOK on success or an error code
     335 */
     336errno_t vbd_suggest_ptype(vbd_t *vbd, service_id_t disk, label_pcnt_t pcnt,
    336337    label_ptype_t *ptype)
    337338{
    338339        async_exch_t *exch;
    339         sysarg_t retval;
     340        errno_t retval;
    340341        ipc_call_t answer;
    341342
    342343        exch = async_exchange_begin(vbd->sess);
    343344        aid_t req = async_send_2(exch, VBD_SUGGEST_PTYPE, disk, pcnt, &answer);
    344         int rc = async_data_read_start(exch, ptype, sizeof(label_ptype_t));
     345        errno_t rc = async_data_read_start(exch, ptype, sizeof(label_ptype_t));
    345346        async_exchange_end(exch);
    346347
Note: See TracChangeset for help on using the changeset viewer.