summaryrefslogtreecommitdiff
path: root/firmware/lib/cgptlib/include/gpt.h
diff options
context:
space:
mode:
authorRandall Spangler <rspangler@chromium.org>2010-06-23 10:15:38 -0700
committerRandall Spangler <rspangler@chromium.org>2010-06-23 10:15:38 -0700
commit81d0996901387619cc782ca258fcb4a9f3f591e7 (patch)
tree47cb5ad05a2a051b2dc0ddecebfc57becfc3102a /firmware/lib/cgptlib/include/gpt.h
parent361049ce199cf57333d4419262e1b7f6394883ec (diff)
downloadvboot-81d0996901387619cc782ca258fcb4a9f3f591e7.tar.gz
Assorted integration fixes.
MSVC does not like bitfields with extra bits in them, so it made the GptEntry struct too big. Fixed a missing return value in LoadFirmware(). Added some debug output. Fixed calls to SetupTPM(). Tested with 'make && make runtests'. No errors. Review URL: http://codereview.chromium.org/2865014
Diffstat (limited to 'firmware/lib/cgptlib/include/gpt.h')
-rw-r--r--firmware/lib/cgptlib/include/gpt.h14
1 files changed, 12 insertions, 2 deletions
diff --git a/firmware/lib/cgptlib/include/gpt.h b/firmware/lib/cgptlib/include/gpt.h
index cd5e12b9..79cc8b2b 100644
--- a/firmware/lib/cgptlib/include/gpt.h
+++ b/firmware/lib/cgptlib/include/gpt.h
@@ -12,6 +12,8 @@
#include "sysincludes.h"
+PACK_START /* Support packing for MSVC */
+
#define GPT_HEADER_SIGNATURE "EFI PART"
#define GPT_HEADER_SIGNATURE_SIZE sizeof(GPT_HEADER_SIGNATURE)
#define GPT_HEADER_REVISION 0x00010000
@@ -58,6 +60,8 @@ typedef struct {
} u;
} __attribute__((packed)) Guid;
+#define GUID_EXPECTED_SIZE GUID_SIZE
+
/* Some constant values */
extern const Guid guid_unused;
extern const Guid guid_chromeos_kernel;
@@ -86,6 +90,8 @@ typedef struct {
/* Remainder of sector is reserved and should be 0 */
} __attribute__((packed)) GptHeader;
+#define GPTHEADER_EXPECTED_SIZE 92
+
/* GPT partition entry defines the starting and ending LBAs of a partition.
* It also contains the unique GUID, type, and attribute bits.
*
@@ -98,8 +104,8 @@ typedef struct {
uint64_t ending_lba;
union {
struct {
- uint64_t : 48;
- uint16_t gpt_att : 16;
+ uint16_t reserved[3];
+ uint16_t gpt_att;
} __attribute__((packed)) fields;
uint64_t whole;
} attrs;
@@ -107,4 +113,8 @@ typedef struct {
/* Remainder of entry is reserved and should be 0 */
} __attribute__((packed)) GptEntry;
+#define GPTENTRY_EXPECTED_SIZE 128
+
+PACK_STOP /* Support packing for MSVC */
+
#endif /* VBOOT_REFERENCE_CGPTLIB_GPT_H_ */