Changeset b7a4d06 in mainline for uspace/srv/bd/vbd/vbd.c


Ignore:
Timestamp:
2015-07-18T12:55:12Z (9 years ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
c43db5f
Parents:
70815a24
Message:

Most of extended (but not logical) partition support.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/bd/vbd/vbd.c

    r70815a24 rb7a4d06  
    107107{
    108108        service_id_t disk_sid;
    109         vbds_disk_info_t dinfo;
     109        vbd_disk_info_t dinfo;
    110110        int rc;
    111111
     
    127127        }
    128128
    129         if (size != sizeof(vbds_disk_info_t)) {
     129        if (size != sizeof(vbd_disk_info_t)) {
    130130                async_answer_0(callid, EINVAL);
    131131                async_answer_0(iid, EINVAL);
     
    219219        part = IPC_GET_ARG1(*icall);
    220220        rc = vbds_part_get_info(part, &pinfo);
    221         async_answer_5(iid, (sysarg_t)rc, pinfo.index,
    222             LOWER32(pinfo.block0), UPPER32(pinfo.block0),
    223             LOWER32(pinfo.nblocks), UPPER32(pinfo.nblocks));
     221        if (rc != EOK) {
     222                async_answer_0(iid, rc);
     223                return;
     224        }
     225
     226        ipc_callid_t callid;
     227        size_t size;
     228        if (!async_data_read_receive(&callid, &size)) {
     229                async_answer_0(callid, EREFUSED);
     230                async_answer_0(iid, EREFUSED);
     231                return;
     232        }
     233
     234        if (size != sizeof(vbd_part_info_t)) {
     235                async_answer_0(callid, EINVAL);
     236                async_answer_0(iid, EINVAL);
     237                return;
     238        }
     239
     240        rc = async_data_read_finalize(callid, &pinfo,
     241            min(size, sizeof(pinfo)));
     242        if (rc != EOK) {
     243                async_answer_0(callid, rc);
     244                async_answer_0(iid, rc);
     245                return;
     246        }
     247
     248        async_answer_0(iid, EOK);
    224249}
    225250
Note: See TracChangeset for help on using the changeset viewer.