Index: src/platform/vboot_reference/utility/include/gbb_utility.h |
diff --git a/src/platform/vboot_reference/utility/include/gbb_utility.h b/src/platform/vboot_reference/utility/include/gbb_utility.h |
index 70a4527504f424e6f92ec5fb535191b97a1fbb87..021eb80fcd8597d1c87d957aa041f3c78752b217 100644 |
--- a/src/platform/vboot_reference/utility/include/gbb_utility.h |
+++ b/src/platform/vboot_reference/utility/include/gbb_utility.h |
@@ -13,6 +13,14 @@ namespace vboot_reference { |
class GoogleBinaryBlockUtil { |
public: |
+ // enumerate of available data fields |
+ enum PROPINDEX { |
+ PROP_HWID, // hardware id |
+ PROP_ROOTKEY, // root key |
+ PROP_BMPFV, // bitmap FV |
+ PROP_RANGE, // indicator of valid property range |
+ }; |
+ |
GoogleBinaryBlockUtil(); |
~GoogleBinaryBlockUtil(); |
@@ -24,22 +32,27 @@ class GoogleBinaryBlockUtil { |
// return true on success. |
bool save_to_file(const char *filename); |
- // getters and setters of properties in GBB |
- bool set_hwid(const char *hwid); // hwid is NUL-terminated. |
+ // retrieve the value of a property from GBB data. |
+ // return the property value. |
+ std::string get_property(PROPINDEX i) const; |
+ |
+ // overwrite a property in GBB data. |
+ // return true on success. |
+ bool set_property(PROPINDEX i, const std::string &value); |
+ |
+ // get a readable name by a property index. |
+ // return the name for valid properties, otherwise unexpected empty string. |
+ std::string get_property_name(PROPINDEX i) const; |
+ |
+ // quick getters and setters of known properties in GBB |
+ bool set_hwid(const char *hwid); // NOTE: hwid is NUL-terminated. |
bool set_rootkey(const std::string &value); |
bool set_bmpfv(const std::string &value); |
- std::string get_hwid() const { return get_property(PROP_HWID); } |
+ std::string get_hwid() const { return get_property(PROP_HWID); } |
std::string get_rootkey() const { return get_property(PROP_ROOTKEY); } |
- std::string get_bmpfv() const { return get_property(PROP_BMPFV); } |
+ std::string get_bmpfv() const { return get_property(PROP_BMPFV); } |
private: |
- // enumerate of available data fields |
- enum PROPINDEX { |
- PROP_HWID, // hardware id |
- PROP_ROOTKEY, // root key |
- PROP_BMPFV, // bitmap FV |
- }; |
- |
// clear all cached data and initialize to original state |
void initialize(); |
@@ -52,17 +65,12 @@ class GoogleBinaryBlockUtil { |
bool load_gbb_header(const std::string &image, long offset, |
GoogleBinaryBlockHeader *phdr) const; |
- // retrieve a property from GBB data. |
- // return the property value. |
- std::string get_property(PROPINDEX i) const; |
- |
- // overwrite a property in GBB data. |
- // return true on success. |
- bool set_property(PROPINDEX i, const std::string &value); |
- |
- // find the size and offset information for given property |
- // return true if the offset and size are assign to *poffset and *psize. |
- bool find_property(PROPINDEX i, uint32_t *poffset, uint32_t *psize) const; |
+ // find the size, offset, and name information for given property. |
+ // return true if the offset and size are assign to *poffset and *psize; |
+ // if pname is not NULL, *pname will hold a pointer to a readable name. |
+ // return false if the property index is invalid. |
+ bool find_property(PROPINDEX i, uint32_t *poffset, uint32_t *psize, |
+ const char **pname) const; |
GoogleBinaryBlockHeader header_; // copy of GBB header from image |
std::string file_content_; // complete image file content |