firmware: add handler for static layout
Add static layout handler.
Change-Id: I5c4cfe9782d59d32b16556e1d82b468c119eeb76
Signed-off-by: Patrick Venture <venture@google.com>
diff --git a/firmware_handler.hpp b/firmware_handler.hpp
index 18b04fc..1a9e8b0 100644
--- a/firmware_handler.hpp
+++ b/firmware_handler.hpp
@@ -1,5 +1,7 @@
#pragma once
+#include "image_handler.hpp"
+
#include <blobs-ipmid/blobs.hpp>
#include <cstdint>
#include <memory>
@@ -29,19 +31,20 @@
* @param[in] transports - bitmask of transports to support.
*/
static std::unique_ptr<GenericBlobInterface>
- CreateFirmwareBlobHandler(const std::vector<std::string>& firmwares,
+ CreateFirmwareBlobHandler(const std::vector<HandlerPack>& firmwares,
std::uint16_t transports);
/**
* Create a FirmwareBlobHandler.
*
- * @param[in] blobs - list of blobs_ids to support.
+ * @param[in] blobs - list of blobs_ids to support and their image handlers.
* @param[in] transports - bitmask of transports to support.
*/
- FirmwareBlobHandler(const std::vector<std::string>& blobs,
+ FirmwareBlobHandler(const std::vector<HandlerPack>& firmwares,
+ const std::vector<std::string>& blobs,
std::uint16_t transports) :
- blobIDs(blobs),
- transports(transports)
+ handlers(firmwares),
+ blobIDs(blobs), transports(transports)
{
}
~FirmwareBlobHandler() = default;
@@ -72,6 +75,9 @@
static const std::string activeHashBlobID;
private:
+ /** List of handlers by type. */
+ std::vector<HandlerPack> handlers;
+
/** Active list of blobIDs. */
std::vector<std::string> blobIDs;