Changeset 30440ed in mainline for uspace/lib/gpt/libgpt.h


Ignore:
Timestamp:
2013-04-08T23:15:42Z (12 years ago)
Author:
Dominik Taborsky (AT DOT) <brembyseznamcz>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
256cbfe
Parents:
271e24a
Message:

save progress

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/gpt/libgpt.h

    r271e24a r30440ed  
    4949/** Basic number of GPT partition entries */
    5050#define GPT_BASE_PART_NUM (GPT_MIN_PART_NUM)
     51/** How much fill we ignore before resizing partition array */
     52#define GPT_IGNORE_FILL_NUM 10
    5153
    5254/** GPT header signature ("EFI PART" in ASCII) */
    5355extern const uint8_t efi_signature[8];
     56
     57typedef enum {
     58        AT_REQ_PART = 0,
     59        AT_NO_BLOCK_IO,
     60        AT_LEGACY_BOOT,
     61        AT_UNDEFINED,
     62        AT_SPECIFIC = 48
     63} GPT_ATTR;
    5464
    5565/** GPT header
     
    6878        uint8_t disk_guid[16];
    6979        uint64_t entry_lba;
    70         uint32_t num_entries;
     80        uint32_t fillries;
    7181        uint32_t entry_size;
    7282        uint32_t pe_array_crc32;
     
    105115typedef struct gpt_parts {
    106116        /** Number of entries */
    107         unsigned int num_ent;
     117        size_t fill;
    108118        /** Size of the array */
    109         unsigned int arr_size;
     119        size_t arr_size;
    110120        /** Resizable partition array */
    111121        gpt_entry_t * part_array;
     
    132142extern gpt_partitions_t * gpt_read_partitions(gpt_t * gpt);
    133143extern int                                gpt_write_partitions(gpt_partitions_t * parts, gpt_t * header, service_id_t dev_handle);
    134 extern gpt_partitions_t * gpt_add_partition(gpt_partitions_t * parts, gpt_part_t * partition);
    135 extern gpt_partitions_t * gpt_remove_partition(gpt_partitions_t * parts, size_t idx);
    136 extern void                       gpt_set_part_type(gpt_part_t * p, int type);
     144extern gpt_part_t *               gpt_alloc_partition(gpt_partitions_t * parts);
     145extern int                                gpt_add_partition(gpt_partitions_t * parts, gpt_part_t * partition);
     146extern int                                gpt_remove_partition(gpt_partitions_t * parts, size_t idx);
     147extern size_t                     gpt_get_part_type(gpt_part_t * p);
     148extern void                       gpt_set_part_type(gpt_part_t * p, size_t type);
     149extern char *                     gpt_get_part_name(gpt_entry_t * p);
    137150extern void                       gpt_set_part_name(gpt_entry_t * p, char * name[], size_t length);
     151extern bool                               gpt_get_flag(gpt_part_t * p, GPT_ATTR flag);
     152extern void                               gpt_set_flag(gpt_part_t * p, GPT_ATTR flag, bool value);
     153
     154#define gpt_foreach(parts, i, iterator) \
     155                for(size_t i = 0, gpt_part_t * iterator = parts->part_array;
     156                    i < parts->fill; i++, iterator++)
    138157
    139158extern void gpt_free_gpt(gpt_t * gpt);
Note: See TracChangeset for help on using the changeset viewer.