Changeset 9c2c7d2 in mainline for uspace/lib/c/generic/vol.c


Ignore:
Timestamp:
2017-07-06T15:52:15Z (7 years ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
5cd1eb9a
Parents:
d858a660
Message:

Fdisk should be able to set volume label for newly created partitions.

File:
1 edited

Legend:

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

    rd858a660 r9c2c7d2  
    3939#include <loc.h>
    4040#include <stdlib.h>
     41#include <str.h>
    4142#include <vol.h>
    4243
     
    251252}
    252253
     254/** Get volume label support. */
     255int vol_part_get_lsupp(vol_t *vol, vol_fstype_t fstype,
     256    vol_label_supp_t *vlsupp)
     257{
     258        async_exch_t *exch;
     259        sysarg_t retval;
     260        ipc_call_t answer;
     261
     262        exch = async_exchange_begin(vol->sess);
     263        aid_t req = async_send_1(exch, VOL_PART_LSUPP, fstype, &answer);
     264        int rc = async_data_read_start(exch, vlsupp, sizeof(vol_label_supp_t));
     265        async_exchange_end(exch);
     266
     267        if (rc != EOK) {
     268                async_forget(req);
     269                return EIO;
     270        }
     271
     272        async_wait_for(req, &retval);
     273        if (retval != EOK)
     274                return EIO;
     275
     276        return EOK;
     277}
     278
    253279/** Create file system. */
    254 int vol_part_mkfs(vol_t *vol, service_id_t sid, vol_fstype_t fstype)
    255 {
    256         async_exch_t *exch;
    257         int retval;
    258 
    259         exch = async_exchange_begin(vol->sess);
    260         retval = async_req_2_0(exch, VOL_PART_MKFS, sid, fstype);
    261         async_exchange_end(exch);
     280int vol_part_mkfs(vol_t *vol, service_id_t sid, vol_fstype_t fstype,
     281    const char *label)
     282{
     283        async_exch_t *exch;
     284        ipc_call_t answer;
     285        sysarg_t retval;
     286
     287        exch = async_exchange_begin(vol->sess);
     288        aid_t req = async_send_2(exch, VOL_PART_MKFS, sid, fstype, &answer);
     289        retval = async_data_write_start(exch, label, str_size(label));
     290        async_exchange_end(exch);
     291
     292        if (retval != EOK) {
     293                async_forget(req);
     294                return retval;
     295        }
     296
     297        async_wait_for(req, &retval);
    262298
    263299        if (retval != EOK)
Note: See TracChangeset for help on using the changeset viewer.