Fork us on GitHub Follow us on Facebook Follow us on Twitter

Changeset 3faa03d in mainline for uspace/srv/bd/vbd/disk.c


Ignore:
Timestamp:
2015-07-02T16:30:16Z (6 years ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
master
Children:
1626cd4
Parents:
78d50bd
Message:

Liblabel reading GPT and MBR partitions (primary only).

File:
1 edited

Legend:

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

    r78d50bd r3faa03d  
    9696static int vbds_part_by_id(vbds_part_id_t partid, vbds_part_t **rpart)
    9797{
     98        log_msg(LOG_DEFAULT, LVL_NOTE, "vbds_part_by_id(%zu)", partid);
     99
    98100        list_foreach(vbds_parts, lparts, vbds_part_t, part) {
     101                log_msg(LOG_DEFAULT, LVL_NOTE, "%zu == %zu ?", part->id, partid);
    99102                if (part->id == partid) {
     103                        log_msg(LOG_DEFAULT, LVL_NOTE, "Found match.");
    100104                        *rpart = part;
    101105                        return EOK;
     
    103107        }
    104108
     109        log_msg(LOG_DEFAULT, LVL_NOTE, "No match.");
    105110        return ENOENT;
    106111}
     
    146151        part->lpart = lpart;
    147152        part->disk = disk;
     153        part->id = (vbds_part_id_t)psid;
    148154        part->block0 = lpinfo.block0;
    149155        part->nblocks = lpinfo.nblocks;
     
    161167int vbds_disk_add(service_id_t sid)
    162168{
    163         label_t *label;
     169        label_t *label = NULL;
    164170        label_part_t *part;
    165171        vbds_disk_t *disk = NULL;
     
    206212        rc = label_open(sid, &label);
    207213        if (rc != EOK) {
     214                log_msg(LOG_DEFAULT, LVL_NOTE, "Label in disk %s not recognized.",
     215                    disk->svc_name);
    208216                rc = EIO;
    209217                goto error;
     
    216224        list_initialize(&disk->parts);
    217225        list_append(&disk->ldisks, &vbds_disks);
     226
     227        log_msg(LOG_DEFAULT, LVL_NOTE, "Recognized disk label. Adding partitions.");
    218228
    219229        part = label_part_first(label);
     
    462472static int vbds_bd_get_block_size(bd_srv_t *bd, size_t *rsize)
    463473{
     474        vbds_part_t *part = bd_srv_part(bd);
     475
    464476        log_msg(LOG_DEFAULT, LVL_NOTE, "vbds_bd_get_block_size()");
     477        *rsize = part->disk->block_size;
    465478        return EOK;
    466479}
     
    468481static int vbds_bd_get_num_blocks(bd_srv_t *bd, aoff64_t *rnb)
    469482{
     483        vbds_part_t *part = bd_srv_part(bd);
     484
    470485        log_msg(LOG_DEFAULT, LVL_NOTE, "vbds_bd_get_num_blocks()");
     486        *rnb = part->nblocks;
    471487        return EOK;
    472488}
     
    478494        service_id_t partid;
    479495
     496        log_msg(LOG_DEFAULT, LVL_NOTE, "vbds_bd_conn()");
     497
    480498        partid = IPC_GET_ARG1(*icall);
    481499
     500        log_msg(LOG_DEFAULT, LVL_NOTE, "vbds_bd_conn() - partid=%zu", partid);
     501
    482502        rc = vbds_part_by_id(partid, &part);
    483503        if (rc != EOK) {
     504                log_msg(LOG_DEFAULT, LVL_NOTE, "vbd_bd_conn() - partition "
     505                    "not found.");
    484506                async_answer_0(iid, EINVAL);
    485507                return;
    486508        }
    487509
     510        log_msg(LOG_DEFAULT, LVL_NOTE, "vbds_bd_conn() - call bd_conn");
    488511        bd_conn(iid, icall, &part->bds);
    489512}
Note: See TracChangeset for help on using the changeset viewer.