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


Ignore:
Timestamp:
2015-08-11T16:03:59Z (9 years ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
0bde8523
Parents:
1b23e33
Message:

Set partition type based on selected filesystem type.

File:
1 edited

Legend:

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

    r1b23e33 rf57ccb5  
    208208}
    209209
    210 
    211210static void vbds_part_get_info_srv(ipc_callid_t iid, ipc_call_t *icall)
    212211{
     
    302301}
    303302
     303static void vbds_suggest_ptype_srv(ipc_callid_t iid, ipc_call_t *icall)
     304{
     305        service_id_t disk_sid;
     306        label_ptype_t ptype;
     307        label_pcnt_t pcnt;
     308        int rc;
     309
     310        log_msg(LOG_DEFAULT, LVL_NOTE, "vbds_suggest_ptype_srv()");
     311
     312        disk_sid = IPC_GET_ARG1(*icall);
     313        pcnt = IPC_GET_ARG2(*icall);
     314
     315        rc = vbds_suggest_ptype(disk_sid, pcnt, &ptype);
     316        if (rc != EOK) {
     317                async_answer_0(iid, rc);
     318                return;
     319        }
     320
     321        ipc_callid_t callid;
     322        size_t size;
     323        if (!async_data_read_receive(&callid, &size)) {
     324                async_answer_0(callid, EREFUSED);
     325                async_answer_0(iid, EREFUSED);
     326                return;
     327        }
     328
     329        if (size != sizeof(label_ptype_t)) {
     330                async_answer_0(callid, EINVAL);
     331                async_answer_0(iid, EINVAL);
     332                return;
     333        }
     334
     335        rc = async_data_read_finalize(callid, &ptype, sizeof(label_ptype_t));
     336        if (rc != EOK) {
     337                async_answer_0(callid, rc);
     338                async_answer_0(iid, rc);
     339                return;
     340        }
     341
     342        async_answer_0(iid, EOK);
     343}
     344
    304345static void vbds_ctl_conn(ipc_callid_t iid, ipc_call_t *icall, void *arg)
    305346{
     
    348389                        vbds_part_delete_srv(callid, &call);
    349390                        break;
     391                case VBD_SUGGEST_PTYPE:
     392                        vbds_suggest_ptype_srv(callid, &call);
     393                        break;
    350394                default:
    351395                        async_answer_0(callid, EINVAL);
Note: See TracChangeset for help on using the changeset viewer.