Changeset 1c8bfe8 in mainline for uspace/lib/gpt/libgpt.h
- Timestamp:
- 2013-06-25T00:27:47Z (11 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 6317b33, 9256d093
- Parents:
- 6e8e4e19 (diff), cb328ab (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/gpt/libgpt.h
r6e8e4e19 r1c8bfe8 53 53 #define GPT_IGNORE_FILL_NUM 10 54 54 55 /** Unused partition entry */ 56 #define GPT_PTE_UNUSED 0 57 55 58 /** GPT header signature ("EFI PART" in ASCII) */ 56 59 extern const uint8_t efi_signature[8]; … … 86 89 typedef struct { 87 90 /** Raw header. Has more bytes alloced than sizeof(gpt_header_t)! 88 * See gpt_read_gpt_header() to know why. */ 89 gpt_header_t * raw_data; 90 /** Device where the data are from */ 91 service_id_t device; 92 /** Linked list of partitions (initially NULL) */ 91 * See gpt_alloc_header() to know why. */ 92 gpt_header_t *header; 93 93 } gpt_t; 94 94 … … 123 123 size_t arr_size; 124 124 /** Resizable partition array */ 125 gpt_entry_t * 125 gpt_entry_t *part_array; 126 126 } gpt_partitions_t; 127 127 128 128 129 129 typedef struct gpt_table { 130 gpt_t * gpt; 131 gpt_partitions_t * parts; 130 gpt_t *gpt; 131 gpt_partitions_t *parts; 132 service_id_t device; 132 133 } gpt_label_t; 133 134 134 135 struct partition_type { 135 const char * 136 const char * 136 const char *desc; 137 const char *guid; 137 138 }; 138 139 139 140 extern const struct partition_type gpt_ptypes[]; 140 141 142 extern gpt_label_t * gpt_alloc_label(void); 143 extern void gpt_free_label(gpt_label_t *); 141 144 142 extern gpt_t * gpt_alloc_ gpt_header(void);143 extern gpt_t * gpt_read_gpt_header(service_id_t dev_handle);144 extern int gpt_write_ gpt_header(gpt_t * header, service_id_t dev_handle);145 extern gpt_t * gpt_alloc_header(size_t); 146 extern int gpt_read_header(gpt_label_t *, service_id_t); 147 extern int gpt_write_header(gpt_label_t *, service_id_t); 145 148 146 149 extern gpt_partitions_t * gpt_alloc_partitions(void); 147 extern gpt_partitions_t * gpt_read_partitions(gpt_t * gpt); 148 extern int gpt_write_partitions(gpt_partitions_t * parts, gpt_t * header, service_id_t dev_handle); 149 extern gpt_part_t * gpt_alloc_partition (gpt_partitions_t * parts); 150 extern int gpt_add_partition (gpt_partitions_t * parts, gpt_part_t * partition); 151 extern int gpt_remove_partition(gpt_partitions_t * parts, size_t idx); 150 extern int gpt_read_partitions (gpt_label_t *); 151 extern int gpt_write_partitions(gpt_label_t *, service_id_t); 152 extern gpt_part_t * gpt_alloc_partition (void); 153 extern gpt_part_t * gpt_get_partition (gpt_label_t *); 154 extern gpt_part_t * gpt_get_partition_at(gpt_label_t *, size_t); 155 extern int gpt_add_partition (gpt_label_t *, gpt_part_t *); 156 extern int gpt_remove_partition(gpt_label_t *, size_t); 152 157 153 extern size_t gpt_get_part_type(gpt_part_t * p);154 extern void gpt_set_part_type(gpt_part_t * p, size_t type);155 extern void gpt_set_start_lba(gpt_part_t * p, uint64_t start);156 extern uint64_t gpt_get_start_lba(gpt_part_t * p);157 extern void gpt_set_end_lba (gpt_part_t * p, uint64_t end);158 extern uint64_t gpt_get_end_lba (gpt_part_t * p);159 extern unsigned char * gpt_get_part_name(gpt_part_t * p);160 extern void gpt_set_part_name(gpt_part_t * p, char * name[], size_t length);161 extern bool gpt_get_flag (gpt_part_t * p, GPT_ATTR flag);162 extern void gpt_set_flag (gpt_part_t * p, GPT_ATTR flag, bool value);158 extern size_t gpt_get_part_type(gpt_part_t *); 159 extern void gpt_set_part_type(gpt_part_t *, size_t); 160 extern void gpt_set_start_lba(gpt_part_t *, uint64_t); 161 extern uint64_t gpt_get_start_lba(gpt_part_t *); 162 extern void gpt_set_end_lba (gpt_part_t *, uint64_t); 163 extern uint64_t gpt_get_end_lba (gpt_part_t *); 164 extern unsigned char * gpt_get_part_name(gpt_part_t *); 165 extern void gpt_set_part_name(gpt_part_t *, char *, size_t); 166 extern bool gpt_get_flag (gpt_part_t *, GPT_ATTR); 167 extern void gpt_set_flag (gpt_part_t *, GPT_ATTR, bool); 163 168 164 169 165 170 166 #define gpt_part_foreach( parts, iterator) \167 for(gpt_part_t * iterator = ( parts)->part_array; \168 iterator < ( parts)->part_array + (parts)->fill; ++iterator)171 #define gpt_part_foreach(label, iterator) \ 172 for(gpt_part_t * iterator = (label)->parts->part_array; \ 173 iterator < (label)->parts->part_array + (label)->parts->fill; ++iterator) 169 174 170 extern void gpt_free_gpt(gpt_t * gpt);171 extern void gpt_free_partitions(gpt_partitions_t * parts);175 extern void gpt_free_gpt(gpt_t *); 176 extern void gpt_free_partitions(gpt_partitions_t *); 172 177 173 178 #endif
Note:
See TracChangeset
for help on using the changeset viewer.