Changeset f57ccb5 in mainline for uspace/lib/fdisk/src/fdisk.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/lib/fdisk/src/fdisk.c

    r1b23e33 rf57ccb5  
    912912        aoff64_t fnblocks;
    913913        uint64_t block_size;
     914        label_pcnt_t pcnt;
    914915        unsigned i;
    915916        int index;
     
    932933        req_blocks = fdisk_ba_align_up(dev, req_blocks);
    933934
     935        pcnt = -1;
     936
     937        switch (pspec->fstype) {
     938        case fdfs_none:
     939        case fdfs_unknown:
     940                break;
     941        case fdfs_exfat:
     942                pcnt = lpc_exfat;
     943                break;
     944        case fdfs_fat:
     945                pcnt = lpc_fat32; /* XXX Detect FAT12/16 vs FAT32 */
     946                break;
     947        case fdfs_minix:
     948                pcnt = lpc_minix;
     949                break;
     950        case fdfs_ext4:
     951                pcnt = lpc_ext4;
     952                break;
     953        }
     954
     955        if (pcnt < 0)
     956                return EINVAL;
     957
    934958        printf("fdisk_part_spec_prepare() - switch\n");
    935959        switch (pspec->pkind) {
     
    952976                vpspec->nblocks = req_blocks;
    953977                vpspec->pkind = pspec->pkind;
    954                 if (pspec->pkind != lpk_extended)
    955                         vpspec->ptype = 42;
    956978                break;
    957979        case lpk_logical:
     
    967989                vpspec->nblocks = req_blocks;
    968990                vpspec->pkind = lpk_logical;
    969                 vpspec->ptype = 42;
    970                 break;
     991                vpspec->ptype.fmt = lptf_num;
     992                vpspec->ptype.t.num = 42;
     993                break;
     994        }
     995
     996        if (pspec->pkind != lpk_extended) {
     997                rc = vbd_suggest_ptype(dev->fdisk->vbd, dev->sid, pcnt,
     998                    &vpspec->ptype);
     999                if (rc != EOK)
     1000                        return EIO;
    9711001        }
    9721002
Note: See TracChangeset for help on using the changeset viewer.