Lines Matching refs:drive
24 static int GptCreate(struct drive *drive, CgptCreateParams *params) { in GptCreate() argument
26 if (!memcmp(((GptHeader*)drive->gpt.primary_header)->signature, in GptCreate()
28 drive->gpt.ignored |= MASK_PRIMARY; in GptCreate()
32 if (!memcmp(((GptHeader*)drive->gpt.secondary_header)->signature, in GptCreate()
34 drive->gpt.ignored |= MASK_SECONDARY; in GptCreate()
41 AllocAndClear(&drive->gpt.primary_header, in GptCreate()
42 drive->gpt.sector_bytes * GPT_HEADER_SECTORS); in GptCreate()
43 AllocAndClear(&drive->gpt.secondary_header, in GptCreate()
44 drive->gpt.sector_bytes * GPT_HEADER_SECTORS); in GptCreate()
46 drive->gpt.modified |= (GPT_MODIFIED_HEADER1 | GPT_MODIFIED_ENTRIES1 | in GptCreate()
51 GptHeader *h = (GptHeader *)drive->gpt.primary_header; in GptCreate()
56 h->alternate_lba = drive->gpt.gpt_drive_sectors - GPT_HEADER_SECTORS; in GptCreate()
65 if (drive->gpt.flags & GPT_FLAG_EXTERNAL) { in GptCreate()
76 (GPT_PMBR_SECTORS + GPT_HEADER_SECTORS) * drive->gpt.sector_bytes; in GptCreate()
80 (drive->gpt.gpt_drive_sectors / 2) * drive->gpt.sector_bytes; in GptCreate()
95 if (!(drive->gpt.flags & GPT_FLAG_EXTERNAL)) { in GptCreate()
98 drive->gpt.sector_bytes); in GptCreate()
100 (drive->gpt.streaming_drive_sectors - GPT_HEADER_SECTORS - in GptCreate()
101 CalculateEntriesSectors(h, drive->gpt.sector_bytes) - 1); in GptCreate()
104 h->last_usable_lba = (drive->gpt.streaming_drive_sectors - 1); in GptCreate()
108 AllocAndClear(&drive->gpt.primary_entries, entries_size); in GptCreate()
109 AllocAndClear(&drive->gpt.secondary_entries, entries_size); in GptCreate()
112 RepairHeader(&drive->gpt, MASK_PRIMARY); in GptCreate()
114 UpdateCrc(&drive->gpt); in GptCreate()
121 struct drive drive; in CgptCreate() local
126 if (CGPT_OK != DriveOpen(params->drive_name, &drive, O_RDWR, in CgptCreate()
130 if (GptCreate(&drive, params)) in CgptCreate()
134 return DriveClose(&drive, 1); in CgptCreate()
138 DriveClose(&drive, 0); in CgptCreate()