Home | History | Annotate | Download | only in lib

Lines Matching refs:GptData

24 int AllocAndReadGptData(VbExDiskHandle_t disk_handle, GptData *gptdata)
30 gptdata->modified = 0;
33 gptdata->primary_header = (uint8_t *)VbExMalloc(gptdata->sector_bytes);
34 gptdata->secondary_header =
35 (uint8_t *)VbExMalloc(gptdata->sector_bytes);
36 gptdata->primary_entries = (uint8_t *)VbExMalloc(max_entries_bytes);
37 gptdata->secondary_entries = (uint8_t *)VbExMalloc(max_entries_bytes);
39 if (gptdata->primary_header == NULL ||
40 gptdata->secondary_header == NULL ||
41 gptdata->primary_entries == NULL ||
42 gptdata->secondary_entries == NULL)
46 if (0 != VbExDiskRead(disk_handle, 1, 1, gptdata->primary_header))
50 GptHeader* primary_header = (GptHeader*)gptdata->primary_header;
52 gptdata->streaming_drive_sectors,
53 gptdata->gpt_drive_sectors,
54 gptdata->flags)) {
59 / gptdata->sector_bytes;
63 gptdata->primary_entries))
70 if (0 != VbExDiskRead(disk_handle, gptdata->gpt_drive_sectors - 1, 1,
71 gptdata->secondary_header))
75 GptHeader* secondary_header = (GptHeader*)gptdata->secondary_header;
77 gptdata->streaming_drive_sectors,
78 gptdata->gpt_drive_sectors,
79 gptdata->flags)) {
84 / gptdata->sector_bytes;
88 gptdata->secondary_entries))
103 int WriteAndFreeGptData(VbExDiskHandle_t disk_handle, GptData *gptdata)
106 GptHeader *header = (GptHeader *)gptdata->primary_header;
109 uint64_t entries_sectors = entries_bytes / gptdata->sector_bytes;
117 if (gptdata->primary_header) {
118 GptHeader *h = (GptHeader *)(gptdata->primary_header);
126 if (gptdata->modified) {
130 if (gptdata->modified & GPT_MODIFIED_HEADER1) {
137 gptdata->primary_header))
143 if (gptdata->primary_entries) {
144 if (gptdata->modified & GPT_MODIFIED_ENTRIES1) {
152 gptdata->primary_entries))
158 entries_lba = (gptdata->gpt_drive_sectors - entries_sectors -
160 if (gptdata->secondary_header) {
161 GptHeader *h = (GptHeader *)(gptdata->secondary_header);
163 if (gptdata->modified & GPT_MODIFIED_HEADER2) {
166 gptdata->gpt_drive_sectors - 1, 1,
167 gptdata->secondary_header))
172 if (gptdata->secondary_entries) {
173 if (gptdata->modified & GPT_MODIFIED_ENTRIES2) {
177 gptdata->secondary_entries))
186 if (gptdata->primary_header)
187 VbExFree(gptdata->primary_header);
188 if (gptdata->primary_entries)
189 VbExFree(gptdata->primary_entries);
190 if (gptdata->secondary_entries)
191 VbExFree(gptdata->secondary_entries);
192 if (gptdata->secondary_header)
193 VbExFree(gptdata->secondary_header);
220 size_t GptGetEntrySizeBytes(const GptData *gpt, const GptEntry *e)