diff options
author | james <james> | 2011-08-07 11:33:43 +0000 |
---|---|---|
committer | james <james> | 2011-08-07 11:33:43 +0000 |
commit | 5eca00f7b8db381ce2584736e3589bec47e1d46f (patch) | |
tree | 6fbe1673e67e5759be56b4d8b263d0a5a4075e44 /src/header.c | |
parent | e2d7e909efa62075d6322df2427b03f4d2ba7024 (diff) | |
download | gpt-5eca00f7b8db381ce2584736e3589bec47e1d46f.tar.gz gpt-5eca00f7b8db381ce2584736e3589bec47e1d46f.tar.bz2 gpt-5eca00f7b8db381ce2584736e3589bec47e1d46f.zip |
add support for repairing half a table
Diffstat (limited to 'src/header.c')
-rw-r--r-- | src/header.c | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/header.c b/src/header.c index 22c255c..e4a7e15 100644 --- a/src/header.c +++ b/src/header.c @@ -195,3 +195,35 @@ headers_get (DISK * d) return ret; } + +GPT_headers +headers_get_one (DISK * d) +{ + GPT_headers ret; + uint8_t buf[512]; + uint64_t lbas; + int table_size; + + + + lbas = disk_lbas (d); + + disk_read (d, buf, 1, 1); + memcpy (&ret.header, buf, sizeof (ret.header)); + + table_size=ret.header.first_usable_lba; + + ret.header.last_usable_lba=lbas-table_size; + + ret.alt_header=ret.header; + + ret.header.alternate_lba=lbas-1; + + ret.alt_header.alternate_lba=1; + ret.alt_header.my_lba=lbas-1; + ret.alt_header.partition_entry_lba = (lbas - table_size)+1; + + + + return ret; +} |