Changes in uspace/app/hdisk/func_mbr.c [a2aa81cb:9bda5d90] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/app/hdisk/func_mbr.c
ra2aa81cb r9bda5d90 41 41 #include "input.h" 42 42 43 static int set_mbr_partition(tinput_t *in, mbr_part_t *p); 44 45 int add_mbr_part(tinput_t *in, union label_data *data) 43 static int set_mbr_partition(tinput_t * in, mbr_part_t * p); 44 45 46 int add_mbr_part(tinput_t * in, union table_data * data) 46 47 { 47 48 int rc; 48 49 49 mbr_part_t * part = mbr_alloc_partition();50 mbr_part_t * part = mbr_alloc_partition(); 50 51 51 52 set_mbr_partition(in, part); 52 53 53 rc = mbr_add_partition(data->mbr , part);54 rc = mbr_add_partition(data->mbr.parts, part); 54 55 if (rc != EOK) { 55 56 printf("Error adding partition.\n"); 56 57 } 57 58 58 return EOK; 59 } 60 61 int delete_mbr_part(tinput_t *in, union label_data *data) 59 60 return rc; 61 } 62 63 int delete_mbr_part(tinput_t * in, union table_data * data) 62 64 { 63 65 int rc; … … 70 72 return errno; 71 73 72 rc = mbr_remove_partition(data->mbr , idx);74 rc = mbr_remove_partition(data->mbr.parts, idx); 73 75 if(rc != EOK) { 74 76 printf("Error: something.\n"); … … 78 80 } 79 81 80 int destroy_mbr_label(union label_data *data) 81 { 82 mbr_free_label(data->mbr); 83 return EOK; 84 } 85 86 int new_mbr_label(union label_data *data) 87 { 88 data->mbr = mbr_alloc_label(); 89 if (data->mbr == NULL) 90 return ENOMEM; 91 else 92 return EOK; 82 int new_mbr_table(tinput_t * in, union table_data * data) 83 { 84 data->mbr.mbr = mbr_alloc_mbr(); 85 data->mbr.parts = mbr_alloc_partitions(); 86 return EOK; 93 87 } 94 88 95 89 /** Print current partition scheme */ 96 int print_mbr_parts(union label_data *data)90 int print_mbr_parts(union table_data * data) 97 91 { 98 92 int num = 0; … … 102 96 printf("\t\t%10s %10s %10s %10s %7s\n", "Bootable:", "Start:", "End:", "Length:", "Type:"); 103 97 104 mbr_part_t * it;105 mbr_part_foreach(data->mbr ->parts, it) {98 mbr_part_t * it; 99 mbr_part_foreach(data->mbr.parts, it) { 106 100 if (it->type == PT_UNUSED) 107 101 continue; … … 123 117 } 124 118 125 int read_mbr_parts(service_id_t dev_handle, union label_data *data) 126 { 127 int rc; 128 printf("mbr\n"); 129 rc = mbr_read_mbr(data->mbr, dev_handle); 130 if (rc != EOK) 131 return rc; 132 printf("ismbr\n"); 133 if (!mbr_is_mbr(data->mbr)) 134 return EINVAL; 135 printf("parts\n"); 136 rc = mbr_read_partitions(data->mbr); 137 if (rc != EOK) 138 return rc; 139 printf("end\n"); 140 return EOK; 141 } 142 143 int write_mbr_parts(service_id_t dev_handle, union label_data *data) 144 { 145 int rc = mbr_write_partitions(data->mbr, dev_handle); 119 int write_mbr_parts(service_id_t dev_handle, union table_data * data) 120 { 121 int rc = mbr_write_partitions(data->mbr.parts, data->mbr.mbr, dev_handle); 146 122 if (rc != EOK) { 147 123 printf("Error occured during writing: ERR: %d: %s\n", rc, str_error(rc)); … … 151 127 } 152 128 153 int extra_mbr_funcs(tinput_t * in, service_id_t dev_handle, union label_data *data)129 int extra_mbr_funcs(tinput_t * in, service_id_t dev_handle, union table_data * data) 154 130 { 155 131 printf("Not implemented.\n"); … … 157 133 } 158 134 159 static int set_mbr_partition(tinput_t * in, mbr_part_t *p)135 static int set_mbr_partition(tinput_t * in, mbr_part_t * p) 160 136 { 161 137 int c; … … 183 159 return errno; 184 160 185 ///TODO: there can only be one boo labelpartition; let's do it just like fdisk161 ///TODO: there can only be one bootable partition; let's do it just like fdisk 186 162 printf("Bootable? (y/n): "); 187 163 c = getchar();
Note:
See TracChangeset
for help on using the changeset viewer.