Lines Matching refs:mainHeader

84    mainHeader.numParts = 0;
85 mainHeader.firstUsableLBA = 0;
86 mainHeader.lastUsableLBA = 0;
97 mainHeader = orig.mainHeader;
149 mainHeader.numParts = 0;
150 mainHeader.lastUsableLBA = 0;
168 mainHeader = orig.mainHeader;
250 if (mainHeader.currentLBA != 1) {
255 mainHeader.currentLBA = 1;
266 if (mainHeader.currentLBA != secondHeader.backupLBA) {
268 cout << "\nProblem: main GPT header's current LBA pointer (" << mainHeader.currentLBA
272 if (mainHeader.backupLBA != secondHeader.currentLBA) {
274 cout << "\nProblem: main GPT header's backup LBA pointer (" << mainHeader.backupLBA
279 if (mainHeader.firstUsableLBA != secondHeader.firstUsableLBA) {
281 cout << "\nProblem: main GPT header's first usable LBA pointer (" << mainHeader.firstUsableLBA
285 if (mainHeader.lastUsableLBA != secondHeader.lastUsableLBA) {
287 cout << "\nProblem: main GPT header's last usable LBA pointer (" << mainHeader.lastUsableLBA
292 if ((mainHeader.diskGUID != secondHeader.diskGUID)) {
294 cout << "\nProblem: main header's disk GUID (" << mainHeader.diskGUID
300 if (mainHeader.numParts != secondHeader.numParts) {
302 cout << "\nProblem: main GPT header's number of partitions (" << mainHeader.numParts
307 if (mainHeader.sizeOfPartitionEntries != secondHeader.sizeOfPartitionEntries) {
310 << mainHeader.sizeOfPartitionEntries << ") doesn't\n"
319 if (mainHeader.backupLBA >= diskSize) {
323 << mainHeader.backupLBA + UINT64_C(1) << " sectors.)\n"
328 if (mainHeader.partitionEntriesLBA + GetTableSizeInSectors() > mainHeader.firstUsableLBA) {
333 if (mainHeader.partitionEntriesLBA < 2) {
343 if (mainHeader.partitionEntriesLBA != 2) {
345 << "partition table (sector " << mainHeader.partitionEntriesLBA
353 << ") and the secondary metadata (sector " << mainHeader.backupLBA << ").\n"
357 if (mainHeader.partitionEntriesLBA + GetTableSizeInSectors() != mainHeader.firstUsableLBA) {
359 << mainHeader.partitionEntriesLBA + GetTableSizeInSectors() - 1 << ")\n"
360 << "and the first usable sector (" << mainHeader.firstUsableLBA << "). This is helpful in some exotic configurations,\n"
365 if (mainHeader.sizeOfPartitionEntries * mainHeader.numParts < 16384) {
366 cout << "\nWarning: The size of the partition table (" << mainHeader.sizeOfPartitionEntries * mainHeader.numParts
373 if ((mainHeader.lastUsableLBA >= diskSize) || (mainHeader.lastUsableLBA > mainHeader.backupLBA)) {
376 << "sector is " << mainHeader.lastUsableLBA << ", but backup header is at\n"
377 << mainHeader.backupLBA << " and disk size is " << diskSize << " sectors.\n"
476 if (mainHeader.firstUsableLBA > firstUsedBlock) {
477 overlap = mainHeader.firstUsableLBA - firstUsedBlock;
488 if (mainHeader.lastUsableLBA < lastUsedBlock) {
489 overlap = lastUsedBlock - mainHeader.lastUsableLBA;
516 if ((mainHeader.signature != GPT_SIGNATURE) || (!CheckHeaderCRC(&mainHeader, 1))) {
518 } else if ((mainHeader.revision != 0x00010000) && valid) {
522 cout << hex << mainHeader.revision << ", should be\n0x";
539 if (((mainHeader.signature << 32) == APM_SIGNATURE1) ||
540 (mainHeader.signature << 32) == APM_SIGNATURE2) {
606 if (mainHeader.headerSize > sizeof(GPTHeader))
607 hSize = secondHeader.headerSize = mainHeader.headerSize = HEADER_SIZE;
609 hSize = secondHeader.headerSize = mainHeader.headerSize;
613 ReverseHeaderBytes(&mainHeader);
619 mainHeader.partitionEntriesCRC = crc;
622 ReverseBytes(&mainHeader.partitionEntriesCRC, 4);
627 mainHeader.headerCRC = 0;
630 crc = chksum_crc32((unsigned char*) &mainHeader, hSize);
633 mainHeader.headerCRC = crc;
640 ReverseHeaderBytes(&mainHeader);
649 mainHeader.signature = GPT_SIGNATURE;
650 mainHeader.revision = secondHeader.revision;
651 mainHeader.headerSize = secondHeader.headerSize;
652 mainHeader.headerCRC = UINT32_C(0);
653 mainHeader.reserved = secondHeader.reserved;
654 mainHeader.currentLBA = secondHeader.backupLBA;
655 mainHeader.backupLBA = secondHeader.currentLBA;
656 mainHeader.firstUsableLBA = secondHeader.firstUsableLBA;
657 mainHeader.lastUsableLBA = secondHeader.lastUsableLBA;
658 mainHeader.diskGUID = secondHeader.diskGUID;
659 mainHeader.numParts = secondHeader.numParts;
660 mainHeader.partitionEntriesLBA = secondHeader.firstUsableLBA - GetTableSizeInSectors();
661 mainHeader.sizeOfPartitionEntries = secondHeader.sizeOfPartitionEntries;
662 mainHeader.partitionEntriesCRC = secondHeader.partitionEntriesCRC;
663 memcpy(mainHeader.reserved2, secondHeader.reserved2, sizeof(mainHeader.reserved2));
665 SetGPTSize(mainHeader.numParts, 0);
671 secondHeader.revision = mainHeader.revision;
672 secondHeader.headerSize = mainHeader.headerSize;
674 secondHeader.reserved = mainHeader.reserved;
675 secondHeader.currentLBA = mainHeader.backupLBA;
676 secondHeader.backupLBA = mainHeader.currentLBA;
677 secondHeader.firstUsableLBA = mainHeader.firstUsableLBA;
678 secondHeader.lastUsableLBA = mainHeader.lastUsableLBA;
679 secondHeader.diskGUID = mainHeader.diskGUID;
681 secondHeader.numParts = mainHeader.numParts;
682 secondHeader.sizeOfPartitionEntries = mainHeader.sizeOfPartitionEntries;
683 secondHeader.partitionEntriesCRC = mainHeader.partitionEntriesCRC;
684 memcpy(secondHeader.reserved2, mainHeader.reserved2, sizeof(secondHeader.reserved2));
926 allOK = LoadHeader(&mainHeader, myDisk, 1, &mainCrcOk);
928 if (mainCrcOk && (mainHeader.backupLBA < diskSize)) {
929 allOK = LoadHeader(&secondHeader, myDisk, mainHeader.backupLBA, &secondCrcOk) && allOK;
932 if (mainCrcOk && (mainHeader.backupLBA >= diskSize))
991 mainPartsCrcOk = CheckTable(&mainHeader);
1039 return LoadPartitionTable(mainHeader, myDisk);
1164 if (header == &mainHeader)
1167 otherHeader = &mainHeader;
1198 if (mainHeader.backupLBA >= diskSize) {
1212 if (mainHeader.backupLBA < (diskSize - UINT64_C(1))) {
1227 if ((mainHeader.lastUsableLBA >= diskSize) || (mainHeader.lastUsableLBA > mainHeader.backupLBA)) {
1283 allOK = allOK && SaveHeader(&secondHeader, myDisk, mainHeader.backupLBA);
1286 allOK = allOK && SavePartitionTable(myDisk, mainHeader.partitionEntriesLBA);
1289 allOK = allOK && SaveHeader(&mainHeader, myDisk, 1);
1348 allOK = SaveHeader(&mainHeader, backupFile, 1);
1403 if (disk.Write(partitions, mainHeader.sizeOfPartitionEntries * numParts) == -1)
1425 LoadHeader(&mainHeader, backupFile, 1, &mainCrcOk);
1432 (mainHeader.numParts * mainHeader.sizeOfPartitionEntries) + 1024);
1449 SetGPTSize(mainHeader.numParts, 0);
1458 if (!LoadPartitionTable(mainHeader, backupFile, (uint64_t) (3 - shortBackup)))
1494 if (!myDisk.Seek(mainHeader.currentLBA))
1500 if (!myDisk.Seek(mainHeader.partitionEntriesLBA))
1502 tableSize = numParts * mainHeader.sizeOfPartitionEntries;
1599 cout << "Disk identifier (GUID): " << mainHeader.diskGUID << "\n";
1601 cout << "Main partition table begins at sector " << mainHeader.partitionEntriesLBA
1602 << " and ends at sector " << mainHeader.partitionEntriesLBA + GetTableSizeInSectors() - 1 << "\n";
1603 cout << "First usable sector is " << mainHeader.firstUsableLBA
1604 << ", last usable sector is " << mainHeader.lastUsableLBA << "\n";
1894 mainHeader.firstUsableLBA = GetTableSizeInSectors() + mainHeader.partitionEntriesLBA;
1895 secondHeader.firstUsableLBA = mainHeader.firstUsableLBA;
1904 mainHeader.numParts = numParts;
1916 mainHeader.partitionEntriesLBA = pteSector;
1917 mainHeader.firstUsableLBA = pteSector + pteSize;
1934 mainHeader.lastUsableLBA = secondHeader.partitionEntriesLBA - UINT64_C(1);
2041 mainHeader.signature = GPT_SIGNATURE;
2042 mainHeader.revision = 0x00010000;
2043 mainHeader.headerSize = HEADER_SIZE;
2044 mainHeader.reserved = 0;
2045 mainHeader.currentLBA = UINT64_C(1);
2046 mainHeader.partitionEntriesLBA = (uint64_t) 2;
2047 mainHeader.sizeOfPartitionEntries = GPT_SIZE;
2048 mainHeader.firstUsableLBA = GetTableSizeInSectors() + mainHeader.partitionEntriesLBA;
2050 mainHeader.reserved2[i] = '\0';
2058 mainHeader.backupLBA = diskSize - UINT64_C(1);
2059 mainHeader.lastUsableLBA = diskSize - mainHeader.firstUsableLBA;
2062 mainHeader.diskGUID.Randomize();
2087 mainHeader.backupLBA = secondHeader.currentLBA = diskSize - UINT64_C(1);
2088 if (mainHeader.lastUsableLBA != diskSize - mainHeader.firstUsableLBA) {
2096 mainHeader.lastUsableLBA = secondHeader.lastUsableLBA = diskSize - mainHeader.firstUsableLBA;
2117 mainHeader.diskGUID = newGUID;
2141 mainHeader.diskGUID.Randomize();
2142 secondHeader.diskGUID = mainHeader.diskGUID;
2190 if (earlier >= mainHeader.firstUsableLBA) {
2202 if ((sectorOK != 1) && (later <= mainHeader.lastUsableLBA)) {
2291 if (start < mainHeader.firstUsableLBA)
2292 first = mainHeader.firstUsableLBA;
2311 if (first > mainHeader.lastUsableLBA)
2373 last = mainHeader.lastUsableLBA;
2389 if (last < mainHeader.firstUsableLBA)
2403 nearestEnd = mainHeader.lastUsableLBA;
2465 if ((sector < mainHeader.firstUsableLBA) ||
2466 (sector > mainHeader.lastUsableLBA)) {
2609 return mainHeader.diskGUID;