Changeset 22fb7ab in mainline for uspace/app/fdisk/fdisk.c


Ignore:
Timestamp:
2015-06-26T16:15:31Z (10 years ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
28ed0d9
Parents:
1356f85a
Message:

Delegate disks to volsrv and labels to vbd.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/app/fdisk/fdisk.c

    r1356f85a r22fb7ab  
    4343
    4444static bool quit = false;
     45static fdisk_t *fdisk;
    4546
    4647/** Device menu actions */
     
    8889        }
    8990
    90         rc = fdisk_dev_list_get(&devlist);
     91        rc = fdisk_dev_list_get(fdisk, &devlist);
    9192        if (rc != EOK) {
    9293                printf("Error getting device list.\n");
     
    207208        }
    208209
    209         for (i = FDL_CREATE_LO; i < FDL_CREATE_HI; i++) {
     210        for (i = 0; i < LT_LIMIT; i++) {
    210211                rc = fdisk_ltype_format(i, &sltype);
    211212                if (rc != EOK)
     
    229230        }
    230231
    231         rc = fdisk_label_create(dev, (fdisk_label_type_t)sel);
     232        rc = fdisk_label_create(dev, (label_type_t)sel);
    232233        if (rc != EOK) {
    233234                printf("Error creating label.\n");
     
    505506        }
    506507
    507         rc = fdisk_label_get_info(dev, &linfo);
    508         if (rc != EOK) {
    509                 printf("Error getting label information.\n");
    510                 goto error;
    511         }
    512 
    513         rc = fdisk_ltype_format(linfo.ltype, &sltype);
    514         if (rc != EOK) {
    515                 assert(rc == ENOMEM);
    516                 printf("Out of memory.\n");
    517                 goto error;
    518         }
    519 
    520508        printf("Device: %s, %s\n", sdcap, svcname);
    521         printf("Label type: %s\n", sltype);
    522         free(sltype);
    523         sltype = NULL;
    524509        free(sdcap);
    525510        sdcap = NULL;
     511
     512        rc = fdisk_label_get_info(dev, &linfo);
     513        if (rc != EOK) {
     514                printf("Error getting label information.\n");
     515                goto error;
     516        }
     517
     518        switch (linfo.dcnt) {
     519        case dc_empty:
     520                printf("Disk is empty.\n");
     521                break;
     522        case dc_label:
     523                rc = fdisk_ltype_format(linfo.ltype, &sltype);
     524                if (rc != EOK) {
     525                        assert(rc == ENOMEM);
     526                        printf("Out of memory.\n");
     527                        goto error;
     528                }
     529
     530                printf("Label type: %s\n", sltype);
     531                free(sltype);
     532                sltype = NULL;
     533                break;
     534        case dc_fs:
     535                printf("Disk contains a file system.\n");
     536                break;
     537        case dc_unknown:
     538                printf("Disk contains unknown data.\n");
     539                break;
     540        }
    526541
    527542        part = fdisk_part_first(dev);
     
    563578        }
    564579
    565         if (linfo.ltype != fdl_none) {
     580        if (linfo.dcnt == dc_label) {
    566581                rc = nchoice_add(choice, "Create partition",
    567582                    (void *)devac_create_part);
     
    583598        }
    584599
    585         if (linfo.ltype == fdl_none) {
     600        if (linfo.dcnt == dc_empty) {
    586601                rc = nchoice_add(choice, "Create label",
    587602                    (void *)devac_create_label);
     
    616631        switch ((devac_t)sel) {
    617632        case devac_create_label:
    618                 rc = fdsk_create_label(dev);
    619                 if (rc != EOK)
    620                         goto error;
     633                (void) fdsk_create_label(dev);
    621634                break;
    622635        case devac_delete_label:
    623                 rc = fdsk_delete_label(dev);
    624                 if (rc != EOK)
    625                         goto error;
     636                (void) fdsk_delete_label(dev);
    626637                break;
    627638        case devac_create_part:
    628                 rc = fdsk_create_part(dev);
    629                 if (rc != EOK)
    630                         goto error;
     639                (void) fdsk_create_part(dev);
    631640                break;
    632641        case devac_delete_part:
    633                 rc = fdsk_delete_part(dev);
    634                 if (rc != EOK)
    635                         goto error;
     642                (void) fdsk_delete_part(dev);
    636643                break;
    637644        case devac_exit:
     
    658665        int rc;
    659666
     667        rc = fdisk_create(&fdisk);
     668        if (rc != EOK) {
     669                printf("Error initializing Fdisk.\n");
     670                return 1;
     671        }
     672
    660673        rc = fdsk_dev_sel_choice(&svcid);
    661674        if (rc != EOK)
     
    665678                return 0;
    666679
    667         rc = fdisk_dev_open(svcid, &dev);
     680        rc = fdisk_dev_open(fdisk, svcid, &dev);
    668681        if (rc != EOK) {
    669682                printf("Error opening device.\n");
     
    680693
    681694        fdisk_dev_close(dev);
     695        fdisk_destroy(fdisk);
    682696
    683697        return 0;
Note: See TracChangeset for help on using the changeset viewer.