summaryrefslogtreecommitdiff
path: root/gpt.h
diff options
context:
space:
mode:
authorRod Smith <rodsmith@rodsbooks.com>2017-07-21 21:48:13 -0400
committerRod Smith <rodsmith@rodsbooks.com>2017-07-21 21:48:13 -0400
commit503e9ada12d38394381442a944d5c9da847800b6 (patch)
tree9ee8654a5dd22cea6fb0cf0d0b161c4bb764400e /gpt.h
parente7452642ac5fa514bd359bc3f93b6b46b1714213 (diff)
downloadsgdisk-503e9ada12d38394381442a944d5c9da847800b6.tar.gz
Initial commit of support for moving main partition table to arbitrary
location on disk (within limits based on existing partitions).
Diffstat (limited to 'gpt.h')
-rw-r--r--gpt.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/gpt.h b/gpt.h
index e9afd06..2528b92 100644
--- a/gpt.h
+++ b/gpt.h
@@ -140,6 +140,7 @@ public:
// Adjust GPT structures WITHOUT user interaction...
int SetGPTSize(uint32_t numEntries, int fillGPTSectors = 1);
+ int MoveMainTable(uint64_t pteSector);
void BlankPartitions(void);
int DeletePartition(uint32_t partNum);
uint32_t CreatePartition(uint32_t partNum, uint64_t startSector, uint64_t endSector);
@@ -162,6 +163,8 @@ public:
int GetPartRange(uint32_t* low, uint32_t* high);
int FindFirstFreePart(void);
uint32_t GetNumParts(void) {return mainHeader.numParts;}
+ uint64_t GetTableSizeInSectors(void) {return (((numParts * GPT_SIZE) / blockSize) +
+ (((numParts * GPT_SIZE) % blockSize) != 0)); }
uint64_t GetMainHeaderLBA(void) {return mainHeader.currentLBA;}
uint64_t GetSecondHeaderLBA(void) {return secondHeader.currentLBA;}
uint64_t GetMainPartsLBA(void) {return mainHeader.partitionEntriesLBA;}
@@ -176,6 +179,7 @@ public:
// Find information about free space
uint64_t FindFirstAvailable(uint64_t start = 0);
+ uint64_t FindFirstUsedLBA(void);
uint64_t FindFirstInLargest(void);
uint64_t FindLastAvailable();
uint64_t FindLastInFree(uint64_t start);