Changeset 6453e306 in mainline for uspace/lib/gpt/libgpt.h


Ignore:
Timestamp:
2013-12-25T16:09:43Z (11 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
  • TabularUnified uspace/lib/gpt/libgpt.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 *
     
    3737#define LIBGPT_LIBGPT_H_
    3838
    39 #define LIBGPT_NAME     "libgpt"
    40 
    4139#include <loc.h>
    4240#include <sys/types.h>
    43 
    4441#include "gpt.h"
    4542
    4643/** Block address of GPT header. */
    47 #define GPT_HDR_BA      1
     44#define GPT_HDR_BA  1
     45
    4846/** Block size of GPT header. */
    49 #define GPT_HDR_BS      1
     47#define GPT_HDR_BS  1
     48
    5049/** Minimum number of GPT partition entries */
    51 #define GPT_MIN_PART_NUM 128
     50#define GPT_MIN_PART_NUM  128
     51
    5252/** Basic number of GPT partition entries */
    53 #define GPT_BASE_PART_NUM (GPT_MIN_PART_NUM)
     53#define GPT_BASE_PART_NUM  (GPT_MIN_PART_NUM)
     54
    5455/** How much fill we ignore before resizing partition array */
    55 #define GPT_IGNORE_FILL_NUM 10
     56#define GPT_IGNORE_FILL_NUM  10
    5657
    5758/** Unused partition entry */
    58 #define GPT_PTE_UNUSED 0
     59#define GPT_PTE_UNUSED  0
     60
     61/** Raw GPT header.
     62 *
     63 * Uses more bytes than sizeof(gpt_header_t).
     64 */
     65typedef struct {
     66        gpt_header_t *header;
     67} gpt_t;
     68
     69typedef gpt_entry_t gpt_part_t;
     70
     71typedef struct {
     72        /** Number of entries */
     73        size_t fill;
     74       
     75        /** Size of the array */
     76        size_t arr_size;
     77       
     78        /** Resizable partition array */
     79        gpt_part_t *part_array;
     80} gpt_partitions_t;
     81
     82typedef struct {
     83        gpt_t *gpt;
     84        gpt_partitions_t *parts;
     85        service_id_t device;
     86} gpt_label_t;
     87
     88typedef struct {
     89        const char *desc;
     90        const char *guid;
     91} partition_type_t;
    5992
    6093/** GPT header signature ("EFI PART" in ASCII) */
     
    6295extern const uint8_t revision[4];
    6396
    64 typedef struct {
    65         /** Raw header. Has more bytes alloced than sizeof(gpt_header_t)!
    66          * See gpt_alloc_header() to know why. */
    67         gpt_header_t *header;
    68 } gpt_t;
     97extern const partition_type_t gpt_ptypes[];
    6998
    70 typedef gpt_entry_t gpt_part_t;
    71 
    72 typedef struct gpt_parts {
    73         /** Number of entries */
    74         size_t fill;
    75         /** Size of the array */
    76         size_t arr_size;
    77         /** Resizable partition array */
    78         gpt_entry_t *part_array;
    79 } gpt_partitions_t;
    80 
    81 
    82 typedef struct gpt_table {
    83         gpt_t *gpt;
    84         gpt_partitions_t *parts;
    85         service_id_t device;
    86 } gpt_label_t;
    87 
    88 struct partition_type {
    89         const char *desc;
    90         const char *guid;
    91 };
    92 
    93 extern const struct partition_type gpt_ptypes[];
    94 
    95 extern gpt_label_t * gpt_alloc_label(void);
     99extern gpt_label_t *gpt_alloc_label(void);
    96100extern void gpt_free_label(gpt_label_t *);
    97101
    98 extern gpt_t * gpt_alloc_header(size_t);
    99 extern int     gpt_read_header(gpt_label_t *, service_id_t);
    100 extern int     gpt_write_header(gpt_label_t *, service_id_t);
     102extern gpt_t *gpt_alloc_header(size_t);
     103extern int gpt_read_header(gpt_label_t *, service_id_t);
     104extern int gpt_write_header(gpt_label_t *, service_id_t);
    101105
    102 extern gpt_partitions_t * gpt_alloc_partitions(void);
    103 extern int             gpt_read_partitions (gpt_label_t *);
    104 extern int             gpt_write_partitions(gpt_label_t *, service_id_t);
    105 extern gpt_part_t *    gpt_alloc_partition (void);
    106 extern gpt_part_t *    gpt_get_partition   (gpt_label_t *);
    107 extern gpt_part_t *    gpt_get_partition_at(gpt_label_t *, size_t);
    108 extern int             gpt_add_partition   (gpt_label_t *, gpt_part_t *);
    109 extern int             gpt_remove_partition(gpt_label_t *, size_t);
     106extern gpt_partitions_t *gpt_alloc_partitions(void);
     107extern int gpt_read_partitions(gpt_label_t *);
     108extern int gpt_write_partitions(gpt_label_t *, service_id_t);
     109extern gpt_part_t *gpt_alloc_partition(void);
     110extern gpt_part_t *gpt_get_partition(gpt_label_t *);
     111extern gpt_part_t *gpt_get_partition_at(gpt_label_t *, size_t);
     112extern int gpt_add_partition(gpt_label_t *, gpt_part_t *);
     113extern int gpt_remove_partition(gpt_label_t *, size_t);
    110114
    111 extern size_t          gpt_get_part_type(gpt_part_t *);
    112 extern void            gpt_set_part_type(gpt_part_t *, size_t);
    113 extern void            gpt_set_start_lba(gpt_part_t *, uint64_t);
    114 extern uint64_t        gpt_get_start_lba(gpt_part_t *);
    115 extern void            gpt_set_end_lba  (gpt_part_t *, uint64_t);
    116 extern uint64_t        gpt_get_end_lba  (gpt_part_t *);
    117 extern unsigned char * gpt_get_part_name(gpt_part_t *);
    118 extern void            gpt_set_part_name(gpt_part_t *, char *, size_t);
    119 extern bool            gpt_get_flag     (gpt_part_t *, GPT_ATTR);
    120 extern void            gpt_set_flag     (gpt_part_t *, GPT_ATTR, bool);
     115extern size_t gpt_get_part_type(gpt_part_t *);
     116extern void gpt_set_part_type(gpt_part_t *, size_t);
     117extern void gpt_set_start_lba(gpt_part_t *, uint64_t);
     118extern uint64_t gpt_get_start_lba(gpt_part_t *);
     119extern void gpt_set_end_lba(gpt_part_t *, uint64_t);
     120extern uint64_t gpt_get_end_lba(gpt_part_t *);
     121extern unsigned char *gpt_get_part_name(gpt_part_t *);
     122extern void gpt_set_part_name(gpt_part_t *, char *, size_t);
     123extern bool gpt_get_flag(gpt_part_t *, gpt_attr_t);
     124extern void gpt_set_flag(gpt_part_t *, gpt_attr_t, bool);
    121125
    122 extern void            gpt_set_random_uuid(uint8_t *);
    123 extern uint64_t        gpt_get_next_aligned(uint64_t, unsigned int);
     126extern void gpt_set_random_uuid(uint8_t *);
     127extern uint64_t gpt_get_next_aligned(uint64_t, unsigned int);
    124128
    125129
    126130#define gpt_part_foreach(label, iterator) \
    127                 for(gpt_part_t * iterator = (label)->parts->part_array; \
    128                     iterator < (label)->parts->part_array + (label)->parts->arr_size; ++iterator)
     131        for (gpt_part_t *iterator = (label)->parts->part_array; \
     132            iterator < (label)->parts->part_array + (label)->parts->arr_size; \
     133            iterator++)
    129134
    130135extern void gpt_free_gpt(gpt_t *);
     
    132137
    133138#endif
    134 
Note: See TracChangeset for help on using the changeset viewer.