Changeset 6453e306 in mainline for uspace/lib/mbr/libmbr.h


Ignore:
Timestamp:
2013-12-25T16:09:43Z (10 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
ac36aed
Parents:
d51beba3
Message:

basic code review and coding style cleanup

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/mbr/libmbr.h

    rd51beba3 r6453e306  
    11/*
    22 * Copyright (c) 2009 Jiri Svoboda
    3  * Copyright (c) 2011, 2012, 2013 Dominik Taborsky
     3 * Copyright (c) 2011-2013 Dominik Taborsky
    44 * All rights reserved.
    55 *
     
    2828 */
    2929
    30  /** @addtogroup libmbr
     30/** @addtogroup libmbr
    3131 * @{
    3232 */
     
    4040#include "mbr.h"
    4141
    42 #define LIBMBR_NAME     "libmbr"
     42/*
     43 * WARNING: When changing both header and partitions, write first header,
     44 * then partitions. The MBR headers' raw_data is not updated to follow
     45 * partition changes.
     46 *
     47 * NOTE: Writing partitions writes the complete header as well.
     48 */
    4349
    4450typedef enum {
     
    4854        /** Logical partition, 0 = primary, 1 = logical*/
    4955        ST_LOGIC = 8
    50 } MBR_FLAGS;
     56} mbr_flags_t;
    5157
    5258typedef enum {
     
    7783} mbr_t;
    7884
    79 
    8085/** Partition */
    8186typedef struct mbr_part {
     
    9196        uint32_t length;
    9297        /** Points to Extended Boot Record of logical partition */
    93         br_block_t * ebr;
     98        br_block_t *ebr;
    9499        /** EBR address */
    95100        uint32_t ebr_addr;
     
    101106        unsigned char n_primary;
    102107        /** Index to the extended partition in the array */
    103         link_t * l_extended;
     108        link_t *l_extended;
    104109        /** Number of logical partitions */
    105110        unsigned int n_logical;
     
    111116typedef struct mbr_label {
    112117        /** MBR header */
    113         mbr_t * mbr;
     118        mbr_t *mbr;
    114119        /** Partition list */
    115120        mbr_partitions_t * parts;
     
    118123} mbr_label_t;
    119124
    120 /* Alloc complete label structure */
    121 extern mbr_label_t * mbr_alloc_label(void);
     125#define mbr_part_foreach(label, iterator) \
     126        for (iterator = list_get_instance((label)->parts->list.head.next, mbr_part_t, link); \
     127            iterator != list_get_instance(&((label)->parts->list.head), mbr_part_t, link); \
     128            iterator = list_get_instance(iterator->link.next, mbr_part_t, link))
     129
     130extern mbr_label_t *mbr_alloc_label(void);
     131
    122132extern void mbr_set_device(mbr_label_t *, service_id_t);
    123 
    124 /* Read/Write MBR header.
    125  * WARNING: when changing both header and partitions, write first header,
    126  * then partitions. The MBR headers' raw_data is NOT updated to follow
    127  * partition changes. */
    128 extern mbr_t * mbr_alloc_mbr(void);
     133extern mbr_t *mbr_alloc_mbr(void);
    129134extern int mbr_read_mbr(mbr_label_t *, service_id_t);
    130135extern int mbr_write_mbr(mbr_label_t *, service_id_t);
    131136extern int mbr_is_mbr(mbr_label_t *);
    132137
    133 /* Read/Write/Set MBR partitions.
    134  * NOTE: Writing partitions writes the complete header as well. */
    135 extern int          mbr_read_partitions(mbr_label_t *);
    136 extern int          mbr_write_partitions(mbr_label_t *, service_id_t);
    137 extern mbr_part_t * mbr_alloc_partition(void);
    138 extern mbr_partitions_t * mbr_alloc_partitions(void);
    139 extern mbr_err_val  mbr_add_partition(mbr_label_t *, mbr_part_t *);
    140 extern int          mbr_remove_partition(mbr_label_t *, size_t);
    141 extern int          mbr_get_flag(mbr_part_t *, MBR_FLAGS);
    142 extern void         mbr_set_flag(mbr_part_t *, MBR_FLAGS, bool);
    143 extern uint32_t     mbr_get_next_aligned(uint32_t, unsigned int);
    144 extern list_t *     mbr_get_list(mbr_label_t *);
    145 extern mbr_part_t * mbr_get_first_partition(mbr_label_t *);
    146 extern mbr_part_t * mbr_get_next_partition(mbr_label_t *, mbr_part_t *);
     138extern int mbr_read_partitions(mbr_label_t *);
     139extern int mbr_write_partitions(mbr_label_t *, service_id_t);
     140extern mbr_part_t *mbr_alloc_partition(void);
     141extern mbr_partitions_t *mbr_alloc_partitions(void);
     142extern mbr_err_val mbr_add_partition(mbr_label_t *, mbr_part_t *);
     143extern int mbr_remove_partition(mbr_label_t *, size_t);
     144extern int mbr_get_flag(mbr_part_t *, mbr_flags_t);
     145extern void mbr_set_flag(mbr_part_t *, mbr_flags_t, bool);
     146extern uint32_t mbr_get_next_aligned(uint32_t, unsigned int);
     147extern list_t *mbr_get_list(mbr_label_t *);
     148extern mbr_part_t *mbr_get_first_partition(mbr_label_t *);
     149extern mbr_part_t *mbr_get_next_partition(mbr_label_t *, mbr_part_t *);
    147150
    148 #define mbr_part_foreach(label, iterator) \
    149         for (iterator  = list_get_instance((label)->parts->list.head.next, mbr_part_t, link); \
    150              iterator != list_get_instance(&((label)->parts->list.head), mbr_part_t, link); \
    151              iterator  = list_get_instance(iterator->link.next, mbr_part_t, link))
    152 
    153 
    154 /* free() wrapper functions. */
    155151extern void mbr_free_label(mbr_label_t *);
    156152extern void mbr_free_mbr(mbr_t *);
     
    159155
    160156#endif
    161 
Note: See TracChangeset for help on using the changeset viewer.