diff options
author | Dan Ehrenberg <dehrenberg@chromium.org> | 2014-12-09 13:42:15 -0800 |
---|---|---|
committer | chrome-internal-fetch <chrome-internal-fetch@google.com> | 2014-12-11 03:12:14 +0000 |
commit | b3d38f5c620da89662deb1a08971c5025d6c1132 (patch) | |
tree | 1a401569a1d4faf8c45c32708a1b3856b707e190 /cgpt/cgpt_common.c | |
parent | cfe83a827d40b310003fc6996b9978d8cf301444 (diff) | |
download | vboot-b3d38f5c620da89662deb1a08971c5025d6c1132.tar.gz |
vboot: GPT interface cleanup
- Rename drive_sectors to streaming_drive_sectors, to contrast with
gpt_drive_sectors
- Replace stored_on_device field with flags field for future
extensibility
BUG=chromium:433433
TEST=make runtests
BRANCH=none
Change-Id: I785a3b735b8eb96f647a334659329db3ee43eb80
Signed-off-by: Dan Ehrenberg <dehrenberg@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/234283
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
Diffstat (limited to 'cgpt/cgpt_common.c')
-rw-r--r-- | cgpt/cgpt_common.c | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/cgpt/cgpt_common.c b/cgpt/cgpt_common.c index 1438dfb3..b580e33a 100644 --- a/cgpt/cgpt_common.c +++ b/cgpt/cgpt_common.c @@ -150,11 +150,11 @@ static int GptLoad(struct drive *drive, uint32_t sector_bytes) { (long long unsigned int)drive->size, drive->gpt.sector_bytes); return -1; } - drive->gpt.drive_sectors = drive->size / drive->gpt.sector_bytes; + drive->gpt.streaming_drive_sectors = drive->size / drive->gpt.sector_bytes; /* TODO(namnguyen): Remove this and totally trust gpt_drive_sectors. */ - if (drive->gpt.stored_on_device == GPT_STORED_ON_DEVICE) { - drive->gpt.gpt_drive_sectors = drive->gpt.drive_sectors; + if (!(drive->gpt.flags & GPT_FLAG_EXTERNAL)) { + drive->gpt.gpt_drive_sectors = drive->gpt.streaming_drive_sectors; } /* Else, we trust gpt.gpt_drive_sectors. */ // Read the data. @@ -171,9 +171,9 @@ static int GptLoad(struct drive *drive, uint32_t sector_bytes) { return -1; } GptHeader* primary_header = (GptHeader*)drive->gpt.primary_header; - if (CheckHeader(primary_header, 0, drive->gpt.drive_sectors, + if (CheckHeader(primary_header, 0, drive->gpt.streaming_drive_sectors, drive->gpt.gpt_drive_sectors, - drive->gpt.stored_on_device) == 0) { + drive->gpt.flags) == 0) { if (CGPT_OK != Load(drive, &drive->gpt.primary_entries, primary_header->entries_lba, drive->gpt.sector_bytes, GPT_ENTRIES_SECTORS)) { @@ -184,9 +184,9 @@ static int GptLoad(struct drive *drive, uint32_t sector_bytes) { Warning("Primary GPT header is invalid\n"); } GptHeader* secondary_header = (GptHeader*)drive->gpt.secondary_header; - if (CheckHeader(secondary_header, 1, drive->gpt.drive_sectors, + if (CheckHeader(secondary_header, 1, drive->gpt.streaming_drive_sectors, drive->gpt.gpt_drive_sectors, - drive->gpt.stored_on_device) == 0) { + drive->gpt.flags) == 0) { if (CGPT_OK != Load(drive, &drive->gpt.secondary_entries, secondary_header->entries_lba, drive->gpt.sector_bytes, GPT_ENTRIES_SECTORS)) { @@ -284,7 +284,6 @@ int DriveOpen(const char *drive_path, struct drive *drive, int mode, // Clear struct for proper error handling. memset(drive, 0, sizeof(struct drive)); - drive->gpt.stored_on_device = GPT_STORED_ON_DEVICE; drive->fd = open(drive_path, mode | O_LARGEFILE | O_NOFOLLOW); if (drive->fd == -1) { @@ -303,10 +302,10 @@ int DriveOpen(const char *drive_path, struct drive *drive, int mode, drive->gpt.gpt_drive_sectors = gpt_drive_size / sector_bytes; if (drive_size == 0) { drive->size = gpt_drive_size; - drive->gpt.stored_on_device = GPT_STORED_ON_DEVICE; + drive->gpt.flags = 0; } else { drive->size = drive_size; - drive->gpt.stored_on_device = GPT_STORED_OFF_DEVICE; + drive->gpt.flags = GPT_FLAG_EXTERNAL; } |