Changeset 6e8e4e19 in mainline for uspace/app/hdisk/func_gpt.c
- Timestamp:
- 2013-06-16T14:50:59Z (12 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 1c8bfe8
- Parents:
- c9f61150
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/app/hdisk/func_gpt.c
rc9f61150 r6e8e4e19 43 43 static int set_gpt_partition(tinput_t *, gpt_part_t *); 44 44 45 int add_gpt_part(tinput_t * in, union label_data * data) 45 46 int construct_gpt_label(label_t *this) 46 47 { 47 gpt_part_t * p = gpt_alloc_partition(data->gpt->parts); 48 this->layout = LYT_GPT; 49 this->alignment = 1; 50 51 this->add_part = add_gpt_part; 52 this->delete_part = delete_gpt_part; 53 this->new_label = new_gpt_label; 54 this->print_parts = print_gpt_parts; 55 this->read_parts = read_gpt_parts; 56 this->write_parts = write_gpt_parts; 57 this->extra_funcs = extra_gpt_funcs; 58 59 return this->new_label(this); 60 } 61 62 int add_gpt_part(label_t *this, tinput_t * in) 63 { 64 gpt_part_t * p = gpt_alloc_partition(this->data.gpt->parts); 48 65 if (p == NULL) { 49 66 return ENOMEM; … … 53 70 } 54 71 55 int delete_gpt_part( tinput_t * in, union label_data * data)72 int delete_gpt_part(label_t *this, tinput_t * in) 56 73 { 57 74 size_t idx; … … 60 77 idx = get_input_size_t(in); 61 78 62 if (gpt_remove_partition( data->gpt->parts, idx) == -1) {79 if (gpt_remove_partition(this->data.gpt->parts, idx) == -1) { 63 80 printf("Warning: running low on memory, not resizing...\n"); 64 81 } … … 67 84 } 68 85 69 int destroy_gpt_label( union label_data *data)86 int destroy_gpt_label(label_t *this) 70 87 { 71 88 return EOK; 72 89 } 73 90 74 int new_gpt_label( union label_data *data)91 int new_gpt_label(label_t *this) 75 92 { 76 data->gpt->gpt = gpt_alloc_gpt_header();77 data->gpt->parts = gpt_alloc_partitions();93 this->data.gpt->gpt = gpt_alloc_gpt_header(); 94 this->data.gpt->parts = gpt_alloc_partitions(); 78 95 return EOK; 79 96 } 80 97 81 int print_gpt_parts( union label_data *data)98 int print_gpt_parts(label_t *this) 82 99 { 83 100 //int rc; … … 87 104 size_t i = 0; 88 105 89 gpt_part_foreach(data->gpt->parts, iter) { 106 gpt_part_foreach(this->data.gpt->parts, iter) { 107 //FIXMEE!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 108 if (gpt_get_part_type(iter) == 62) 109 continue; 110 90 111 //printf("\t%10u %10u %10u %3d\n", iter->start_addr, iter->start_addr + iter->length, 91 112 // iter->length, gpt_get_part_type(iter), gpt_get_part_name(iter)); … … 100 121 } 101 122 102 int read_gpt_parts( service_id_t dev_handle, union label_data *data)123 int read_gpt_parts(label_t *this, service_id_t dev_handle) 103 124 { 104 125 return EOK; 105 126 } 106 127 107 int write_gpt_parts( service_id_t dev_handle, union label_data * data)128 int write_gpt_parts(label_t *this, service_id_t dev_handle) 108 129 { 109 130 int rc; 110 131 111 rc = gpt_write_partitions( data->gpt->parts, data->gpt->gpt, dev_handle);132 rc = gpt_write_partitions(this->data.gpt->parts, this->data.gpt->gpt, dev_handle); 112 133 if (rc != EOK) { 113 134 printf("Error: Writing partitions failed: %d (%s)\n", rc, str_error(rc)); … … 115 136 } 116 137 117 rc = gpt_write_gpt_header( data->gpt->gpt, dev_handle);138 rc = gpt_write_gpt_header(this->data.gpt->gpt, dev_handle); 118 139 if (rc != EOK) { 119 140 printf("Error: Writing partitions failed: %d (%s)\n", rc, str_error(rc)); … … 124 145 } 125 146 126 int extra_gpt_funcs( tinput_t * in, service_id_t dev_handle, union label_data * data)147 int extra_gpt_funcs(label_t *this, tinput_t * in, service_id_t dev_handle) 127 148 { 128 149 printf("Not implemented.\n");
Note:
See TracChangeset
for help on using the changeset viewer.