Changeset 8f6c7785 in mainline for uspace/lib/gpt/libgpt.c


Ignore:
Timestamp:
2013-04-26T02:55:32Z (12 years ago)
Author:
Dominik Taborsky (AT DOT) <brembyseznamcz>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
700f89e
Parents:
d617050
Message:

logical write functional

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/gpt/libgpt.c

    rd617050 r8f6c7785  
    6767        int rc;
    6868        size_t b_size;
    69 
     69       
     70        rc = block_init(EXCHANGE_ATOMIC, dev_handle, 512);
     71        if (rc != EOK)
     72                return NULL;
     73       
    7074        rc = block_get_bsize(dev_handle, &b_size);
    7175        if (rc != EOK) {
     
    7377                return NULL;
    7478        }
    75 
     79       
    7680        gpt_t * gpt = malloc(sizeof(gpt_t));
    7781        if (gpt == NULL) {
     
    8084        }
    8185
    82         gpt->raw_data = malloc(b_size);// We might need only sizeof(gpt_header_t),
     86        gpt->raw_data = malloc(b_size); // We might need only sizeof(gpt_header_t),
    8387        if (gpt == NULL) {                              // but we should follow specs and have
    8488                free(gpt);                                      // zeroes through all the rest of the block
     
    8690                return NULL;
    8791        }
    88 
    89 
     92       
     93       
    9094        rc = load_and_check_header(dev_handle, GPT_HDR_BA, b_size, gpt->raw_data);
    9195        if (rc == EBADCHECKSUM || rc == EINVAL) {
     
    103107                }
    104108        }
    105 
     109       
    106110        gpt->device = dev_handle;
    107 
     111        block_fini(dev_handle);
    108112        return gpt;
    109 
     113       
    110114fail:
     115        block_fini(dev_handle);
    111116        gpt_free_gpt(gpt);
    112117        return NULL;
     
    130135                                        uint32_t_le2host(gpt->raw_data->header_size));
    131136
     137        rc = block_init(EXCHANGE_ATOMIC, dev_handle, b_size);
     138        if (rc != EOK)
     139                return rc;
     140
    132141        rc = block_get_bsize(dev_handle, &b_size);
    133         if (rc != EOK)
    134                 return rc;
    135 
    136         rc = block_init(EXCHANGE_ATOMIC, dev_handle, b_size);
    137142        if (rc != EOK)
    138143                return rc;
     
    252257        gpt->raw_data->pe_array_crc32 = compute_crc32((uint8_t *) parts->part_array, parts->fill * gpt->raw_data->entry_size);
    253258
     259        rc = block_init(EXCHANGE_ATOMIC, dev_handle, b_size);
     260        if (rc != EOK)
     261                return rc;
     262
    254263        rc = block_get_bsize(dev_handle, &b_size);
    255         if (rc != EOK)
    256                 return rc;
    257 
    258         rc = block_init(EXCHANGE_ATOMIC, dev_handle, b_size);
    259264        if (rc != EOK)
    260265                return rc;
     
    473478        int rc;
    474479
    475         rc = block_init(EXCHANGE_ATOMIC, dev_handle, b_size);
    476         if (rc != EOK)
    477                 return rc;
    478 
    479480        rc = block_read_direct(dev_handle, addr, GPT_HDR_BS, header);
    480         block_fini(dev_handle);
    481         if (rc != EOK)
    482                 return rc;
    483 
     481        if (rc != EOK)
     482                return rc;
    484483
    485484        unsigned int i;
Note: See TracChangeset for help on using the changeset viewer.