diff options
Diffstat (limited to 'src/coreboot-partition-map-parse.c')
| -rw-r--r-- | src/coreboot-partition-map-parse.c | 74 |
1 files changed, 28 insertions, 46 deletions
diff --git a/src/coreboot-partition-map-parse.c b/src/coreboot-partition-map-parse.c index 85ccf1b..7d8f80f 100644 --- a/src/coreboot-partition-map-parse.c +++ b/src/coreboot-partition-map-parse.c @@ -1,60 +1,42 @@ /* ------------------------------------------- - Copyright (C) 2024, Amlal EL Mahrouss, all rights reserved. + Copyright (C) 2024, Amlal EL Mahrouss, all rights reserved. ------------------------------------------- */ #include <lib/partition-map.h> -bool cb_parse_partition_block_data_at(voidptr_t blob, size_t blob_sz, size_t index, size_t* end_lba, size_t* start_lba, size_t* sector_sz) -{ - if (!start_lba || - !end_lba || - !blob || - !blob_sz || - !sector_sz || - (sizeof(part_block_t) * index) > blob_sz) - return false; - - part_block_t* block = (part_block_t*)(blob + (sizeof(part_block_t) * index)); - - if (block->version != EPM_REVISION || - block->num_blocks < 1 || - block->num_blocks > EPM_MAX_BLKS || - strcmp(block->magic, EPM_MAGIC) > 0 || - block->lba_end == 0 || - block->lba_start == 0) - { - return false; - } - - *end_lba = block->lba_end; - *start_lba = block->lba_start; - *sector_sz = block->sector_sz; - - return true; +bool cb_parse_partition_block_data_at(voidptr_t blob, size_t blob_sz, size_t index, size_t* end_lba, + size_t* start_lba, size_t* sector_sz) { + if (!start_lba || !end_lba || !blob || !blob_sz || !sector_sz || + (sizeof(part_block_t) * index) > blob_sz) + return false; + + part_block_t* block = (part_block_t*) (blob + (sizeof(part_block_t) * index)); + + if (block->version != EPM_REVISION || block->num_blocks < 1 || block->num_blocks > EPM_MAX_BLKS || + strcmp(block->magic, EPM_MAGIC) > 0 || block->lba_end == 0 || block->lba_start == 0) { + return false; + } + + *end_lba = block->lba_end; + *start_lba = block->lba_start; + *sector_sz = block->sector_sz; + + return true; } -part_block_t* cb_parse_partition_block_at(voidptr_t blob, size_t blob_sz, size_t index) -{ - if (!blob || - !blob_sz || - (sizeof(part_block_t) * index) > blob_sz) - return nil; +part_block_t* cb_parse_partition_block_at(voidptr_t blob, size_t blob_sz, size_t index) { + if (!blob || !blob_sz || (sizeof(part_block_t) * index) > blob_sz) return nil; - part_block_t* block = (part_block_t*)(blob + (sizeof(part_block_t) * index)); + part_block_t* block = (part_block_t*) (blob + (sizeof(part_block_t) * index)); - cb_put_string(block->magic); + cb_put_string(block->magic); - if (block->version != EPM_REVISION || - block->num_blocks < 1 || - block->num_blocks > EPM_MAX_BLKS || - strcmp(block->magic, EPM_MAGIC) > 0 || - block->lba_end == 0 || - block->lba_start == 0) - { - return nil; - } + if (block->version != EPM_REVISION || block->num_blocks < 1 || block->num_blocks > EPM_MAX_BLKS || + strcmp(block->magic, EPM_MAGIC) > 0 || block->lba_end == 0 || block->lba_start == 0) { + return nil; + } - return block; + return block; }
\ No newline at end of file |
