Changeset b7fd2a0 in mainline for uspace/lib/label/src/mbr.c
- Timestamp:
- 2018-01-13T03:10:29Z (6 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- a53ed3a
- Parents:
- 36f0738
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/label/src/mbr.c
r36f0738 rb7fd2a0 43 43 #include "mbr.h" 44 44 45 static int mbr_open(label_bd_t *, label_t **);46 static int mbr_open_ext(label_t *);47 static int mbr_create(label_bd_t *, label_t **);45 static errno_t mbr_open(label_bd_t *, label_t **); 46 static errno_t mbr_open_ext(label_t *); 47 static errno_t mbr_create(label_bd_t *, label_t **); 48 48 static void mbr_close(label_t *); 49 static int mbr_destroy(label_t *);50 static int mbr_get_info(label_t *, label_info_t *);49 static errno_t mbr_destroy(label_t *); 50 static errno_t mbr_get_info(label_t *, label_info_t *); 51 51 static label_part_t *mbr_part_first(label_t *); 52 52 static label_part_t *mbr_part_next(label_part_t *); 53 53 static void mbr_part_get_info(label_part_t *, label_part_info_t *); 54 static int mbr_part_create(label_t *, label_part_spec_t *, label_part_t **);55 static int mbr_part_destroy(label_part_t *);56 static int mbr_suggest_ptype(label_t *, label_pcnt_t, label_ptype_t *);57 58 static int mbr_check_free_idx(label_t *, int);59 static int mbr_check_free_pri_range(label_t *, uint64_t, uint64_t);60 static int mbr_check_free_log_range(label_t *, uint64_t, uint64_t, uint64_t);54 static errno_t mbr_part_create(label_t *, label_part_spec_t *, label_part_t **); 55 static errno_t mbr_part_destroy(label_part_t *); 56 static errno_t mbr_suggest_ptype(label_t *, label_pcnt_t, label_ptype_t *); 57 58 static errno_t mbr_check_free_idx(label_t *, int); 59 static errno_t mbr_check_free_pri_range(label_t *, uint64_t, uint64_t); 60 static errno_t mbr_check_free_log_range(label_t *, uint64_t, uint64_t, uint64_t); 61 61 62 62 static void mbr_unused_pte(mbr_pte_t *); 63 static int mbr_part_to_pte(label_part_t *, mbr_pte_t *);64 static int mbr_pte_to_part(label_t *, mbr_pte_t *, int);65 static int mbr_pte_to_log_part(label_t *, uint64_t, mbr_pte_t *);63 static errno_t mbr_part_to_pte(label_part_t *, mbr_pte_t *); 64 static errno_t mbr_pte_to_part(label_t *, mbr_pte_t *, int); 65 static errno_t mbr_pte_to_log_part(label_t *, uint64_t, mbr_pte_t *); 66 66 static void mbr_log_part_to_ptes(label_part_t *, mbr_pte_t *, mbr_pte_t *); 67 static int mbr_pte_update(label_t *, mbr_pte_t *, int);68 static int mbr_log_part_insert(label_t *, label_part_t *);69 static int mbr_ebr_create(label_t *, label_part_t *);70 static int mbr_ebr_delete(label_t *, label_part_t *);71 static int mbr_ebr_update_next(label_t *, label_part_t *);67 static errno_t mbr_pte_update(label_t *, mbr_pte_t *, int); 68 static errno_t mbr_log_part_insert(label_t *, label_part_t *); 69 static errno_t mbr_ebr_create(label_t *, label_part_t *); 70 static errno_t mbr_ebr_delete(label_t *, label_part_t *); 71 static errno_t mbr_ebr_update_next(label_t *, label_part_t *); 72 72 static void mbr_update_log_indices(label_t *); 73 73 … … 86 86 }; 87 87 88 static int mbr_open(label_bd_t *bd, label_t **rlabel)88 static errno_t mbr_open(label_bd_t *bd, label_t **rlabel) 89 89 { 90 90 label_t *label = NULL; … … 96 96 aoff64_t nblocks; 97 97 uint32_t entry; 98 int rc;98 errno_t rc; 99 99 100 100 rc = bd->ops->get_bsize(bd->arg, &bsize); … … 202 202 203 203 /** Open extended partition */ 204 static int mbr_open_ext(label_t *label)204 static errno_t mbr_open_ext(label_t *label) 205 205 { 206 206 mbr_br_block_t *ebr = NULL; … … 215 215 uint64_t pnblocks; 216 216 uint64_t ep_b0; 217 int rc;217 errno_t rc; 218 218 219 219 ebr = calloc(1, label->block_size); … … 300 300 } 301 301 302 static int mbr_create(label_bd_t *bd, label_t **rlabel)302 static errno_t mbr_create(label_bd_t *bd, label_t **rlabel) 303 303 { 304 304 label_t *label = NULL; … … 307 307 size_t bsize; 308 308 int i; 309 int rc;309 errno_t rc; 310 310 311 311 rc = bd->ops->get_bsize(bd->arg, &bsize); … … 389 389 } 390 390 391 static int mbr_destroy(label_t *label)391 static errno_t mbr_destroy(label_t *label) 392 392 { 393 393 mbr_br_block_t *mbr = NULL; 394 394 label_part_t *part; 395 int rc;395 errno_t rc; 396 396 397 397 part = mbr_part_first(label); … … 428 428 } 429 429 430 static int mbr_get_info(label_t *label, label_info_t *linfo)430 static errno_t mbr_get_info(label_t *label, label_info_t *linfo) 431 431 { 432 432 memset(linfo, 0, sizeof(label_info_t)); … … 546 546 } 547 547 548 static int mbr_part_create(label_t *label, label_part_spec_t *pspec,548 static errno_t mbr_part_create(label_t *label, label_part_spec_t *pspec, 549 549 label_part_t **rpart) 550 550 { … … 553 553 label_part_t *next; 554 554 mbr_pte_t pte; 555 int rc;555 errno_t rc; 556 556 557 557 if (pspec->ptype.fmt != lptf_num) … … 694 694 } 695 695 696 static int mbr_part_destroy(label_part_t *part)696 static errno_t mbr_part_destroy(label_part_t *part) 697 697 { 698 698 mbr_pte_t pte; … … 700 700 label_part_t *next; 701 701 uint64_t ep_b0; 702 int rc;702 errno_t rc; 703 703 704 704 if (link_used(&part->lpri)) { … … 776 776 } 777 777 778 static int mbr_suggest_ptype(label_t *label, label_pcnt_t pcnt,778 static errno_t mbr_suggest_ptype(label_t *label, label_pcnt_t pcnt, 779 779 label_ptype_t *ptype) 780 780 { … … 813 813 814 814 /** Verify that the specified index is valid and free. */ 815 static int mbr_check_free_idx(label_t *label, int index)815 static errno_t mbr_check_free_idx(label_t *label, int index) 816 816 { 817 817 label_part_t *part; … … 830 830 } 831 831 832 static int mbr_check_free_pri_range(label_t *label, uint64_t block0,832 static errno_t mbr_check_free_pri_range(label_t *label, uint64_t block0, 833 833 uint64_t nblocks) 834 834 { … … 850 850 } 851 851 852 static int mbr_check_free_log_range(label_t *label, uint64_t hdr_blocks,852 static errno_t mbr_check_free_log_range(label_t *label, uint64_t hdr_blocks, 853 853 uint64_t block0, uint64_t nblocks) 854 854 { … … 877 877 } 878 878 879 static int mbr_part_to_pte(label_part_t *part, mbr_pte_t *pte)879 static errno_t mbr_part_to_pte(label_part_t *part, mbr_pte_t *pte) 880 880 { 881 881 if ((part->block0 >> 32) != 0) … … 893 893 } 894 894 895 static int mbr_pte_to_part(label_t *label, mbr_pte_t *pte, int index)895 static errno_t mbr_pte_to_part(label_t *label, mbr_pte_t *pte, int index) 896 896 { 897 897 label_part_t *part; … … 931 931 } 932 932 933 static int mbr_pte_to_log_part(label_t *label, uint64_t ebr_b0,933 static errno_t mbr_pte_to_log_part(label_t *label, uint64_t ebr_b0, 934 934 mbr_pte_t *pte) 935 935 { … … 1009 1009 * @a pte. 1010 1010 */ 1011 static int mbr_pte_update(label_t *label, mbr_pte_t *pte, int index)1011 static errno_t mbr_pte_update(label_t *label, mbr_pte_t *pte, int index) 1012 1012 { 1013 1013 mbr_br_block_t *br; 1014 int rc;1014 errno_t rc; 1015 1015 1016 1016 br = calloc(1, label->block_size); … … 1040 1040 1041 1041 /** Insert logical partition into logical partition list. */ 1042 static int mbr_log_part_insert(label_t *label, label_part_t *part)1042 static errno_t mbr_log_part_insert(label_t *label, label_part_t *part) 1043 1043 { 1044 1044 label_part_t *cur; … … 1066 1066 * @return EOK on success or non-zero error code 1067 1067 */ 1068 static int mbr_ebr_create(label_t *label, label_part_t *part)1068 static errno_t mbr_ebr_create(label_t *label, label_part_t *part) 1069 1069 { 1070 1070 mbr_br_block_t *br; 1071 1071 uint64_t ba; 1072 int rc;1072 errno_t rc; 1073 1073 1074 1074 br = calloc(1, label->block_size); … … 1099 1099 } 1100 1100 1101 static int mbr_ebr_delete(label_t *label, label_part_t *part)1101 static errno_t mbr_ebr_delete(label_t *label, label_part_t *part) 1102 1102 { 1103 1103 mbr_br_block_t *br; 1104 1104 uint64_t ba; 1105 int rc;1105 errno_t rc; 1106 1106 1107 1107 br = calloc(1, label->block_size); … … 1125 1125 1126 1126 /** Update 'next' PTE in EBR of partition. */ 1127 static int mbr_ebr_update_next(label_t *label, label_part_t *part)1127 static errno_t mbr_ebr_update_next(label_t *label, label_part_t *part) 1128 1128 { 1129 1129 mbr_br_block_t *br; 1130 1130 uint64_t ba; 1131 1131 uint16_t sgn; 1132 int rc;1132 errno_t rc; 1133 1133 1134 1134 ba = part->block0 - part->hdr_blocks;
Note:
See TracChangeset
for help on using the changeset viewer.