Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/app/hdisk/func_mbr.c

    ra2aa81cb r9bda5d90  
    4141#include "input.h"
    4242
    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)
     43static int set_mbr_partition(tinput_t * in, mbr_part_t * p);
     44
     45
     46int add_mbr_part(tinput_t * in, union table_data * data)
    4647{
    4748        int rc;
    4849       
    49         mbr_part_t *part = mbr_alloc_partition();
     50        mbr_part_t * part = mbr_alloc_partition();
    5051
    5152        set_mbr_partition(in, part);
    5253
    53         rc = mbr_add_partition(data->mbr, part);
     54        rc = mbr_add_partition(data->mbr.parts, part);
    5455        if (rc != EOK) {
    5556                printf("Error adding partition.\n");
    5657        }
    5758       
    58         return EOK;
    59 }
    60 
    61 int delete_mbr_part(tinput_t *in, union label_data *data)
     59       
     60        return rc;
     61}
     62
     63int delete_mbr_part(tinput_t * in, union table_data * data)
    6264{
    6365        int rc;
     
    7072                return errno;
    7173       
    72         rc = mbr_remove_partition(data->mbr, idx);
     74        rc = mbr_remove_partition(data->mbr.parts, idx);
    7375        if(rc != EOK) {
    7476                printf("Error: something.\n");
     
    7880}
    7981
    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;
     82int 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;
    9387}
    9488
    9589/** Print current partition scheme */
    96 int print_mbr_parts(union label_data *data)
     90int print_mbr_parts(union table_data * data)
    9791{
    9892        int num = 0;
     
    10296        printf("\t\t%10s  %10s %10s %10s %7s\n", "Bootable:", "Start:", "End:", "Length:", "Type:");
    10397       
    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) {
    106100                if (it->type == PT_UNUSED)
    107101                        continue;
     
    123117}
    124118
    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);
     119int 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);
    146122        if (rc != EOK) {
    147123                printf("Error occured during writing: ERR: %d: %s\n", rc, str_error(rc));
     
    151127}
    152128
    153 int extra_mbr_funcs(tinput_t *in, service_id_t dev_handle, union label_data *data)
     129int extra_mbr_funcs(tinput_t * in, service_id_t dev_handle, union table_data * data)
    154130{
    155131        printf("Not implemented.\n");
     
    157133}
    158134
    159 static int set_mbr_partition(tinput_t *in, mbr_part_t *p)
     135static int set_mbr_partition(tinput_t * in, mbr_part_t * p)
    160136{
    161137        int c;
     
    183159                return errno;
    184160
    185         ///TODO: there can only be one boolabel partition; let's do it just like fdisk
     161        ///TODO: there can only be one bootable partition; let's do it just like fdisk
    186162        printf("Bootable? (y/n): ");
    187163        c = getchar();
Note: See TracChangeset for help on using the changeset viewer.