Changeset 6bc542b in mainline for uspace/lib/c/generic/vbd.c


Ignore:
Timestamp:
2015-07-02T21:53:12Z (9 years ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
99c23405
Parents:
6a0d4ce2
Message:

Allocate and create partition with libfdisk (except actual modification of on-disk label).

File:
1 edited

Legend:

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

    r6a0d4ce2 r6bc542b  
    107107}
    108108
    109 #include <io/log.h>
    110109/** Get disk information. */
    111110int vbd_disk_info(vbd_t *vbd, service_id_t sid, vbd_disk_info_t *vinfo)
     
    115114        ipc_call_t answer;
    116115
    117         log_msg(LOG_DEFAULT, LVL_DEBUG, "vbd_disk_info() begin exchange");
    118116        exch = async_exchange_begin(vbd->sess);
    119117        aid_t req = async_send_1(exch, VBD_DISK_INFO, sid, &answer);
    120         log_msg(LOG_DEFAULT, LVL_DEBUG, "vbd_disk_info() read start");
    121118        int rc = async_data_read_start(exch, vinfo, sizeof(vbd_disk_info_t));
    122         log_msg(LOG_DEFAULT, LVL_DEBUG, "vbd_disk_info() end exch");
    123119        async_exchange_end(exch);
    124120
     
    128124        }
    129125
    130         log_msg(LOG_DEFAULT, LVL_DEBUG, "vbd_disk_info() wait fore req reply");
    131126        async_wait_for(req, &retval);
    132127        if (retval != EOK)
    133128                return EIO;
    134129
    135         log_msg(LOG_DEFAULT, LVL_DEBUG, "vbd_disk_info() done");
    136130        return EOK;
    137131}
     
    293287{
    294288        async_exch_t *exch;
    295         sysarg_t part;
     289        sysarg_t retval;
     290        ipc_call_t answer;
     291
     292        exch = async_exchange_begin(vbd->sess);
     293        aid_t req = async_send_1(exch, VBD_PART_CREATE, disk, &answer);
     294        int rc = async_data_write_start(exch, pspec, sizeof(vbd_part_spec_t));
     295        async_exchange_end(exch);
     296
     297        if (rc != EOK) {
     298                async_forget(req);
     299                return EIO;
     300        }
     301
     302        async_wait_for(req, &retval);
     303        if (retval != EOK)
     304                return EIO;
     305
     306        *rpart = (vbd_part_id_t)IPC_GET_ARG1(answer);
     307        return EOK;
     308
     309}
     310
     311int vbd_part_delete(vbd_t *vbd, vbd_part_id_t part)
     312{
     313        async_exch_t *exch;
    296314        int retval;
    297315
    298316        exch = async_exchange_begin(vbd->sess);
    299         retval = async_req_1_1(exch, VBD_PART_CREATE, disk, &part);
    300         async_exchange_end(exch);
    301 
    302         if (retval != EOK)
    303                 return EIO;
    304 
    305         *rpart = (vbd_part_id_t)part;
    306         return EOK;
    307 }
    308 
    309 int vbd_part_delete(vbd_t *vbd, vbd_part_id_t part)
    310 {
    311         async_exch_t *exch;
    312         int retval;
    313 
    314         exch = async_exchange_begin(vbd->sess);
    315317        retval = async_req_1_0(exch, VBD_PART_DELETE, part);
    316318        async_exchange_end(exch);
Note: See TracChangeset for help on using the changeset viewer.