xref: /openbmc/phosphor-ipmi-flash/tools/helper.hpp (revision 328f520f44a4e986d58b204468660e7ddeedc189)
1  #pragma once
2  
3  #include <ipmiblob/blob_interface.hpp>
4  
5  #include <cstdint>
6  
7  namespace host_tool
8  {
9  
10  /**
11   * Poll an open verification session.
12   *
13   * @param[in] session - the open verification session
14   * @param[in] blob - pointer to blob interface implementation object.
15   * @return true if the verification was successful.
16   */
17  bool pollStatus(std::uint16_t session, ipmiblob::BlobInterface* blob);
18  
19  /**
20   * Poll an open firmware version blob session and check if it ready to read.
21   *
22   * @param[in] session - the open firmware version blob session
23   * @param[in] blob - pointer to blob interface implementation object
24   * @return the polling status and blob buffer size
25   */
26  std::pair<bool, uint32_t> pollReadReady(std::uint16_t session,
27                                          ipmiblob::BlobInterface* blob);
28  
29  /**
30   * Aligned memcpy
31   * @param[out] destination - destination memory pointer
32   * @param[in] source - source memory pointer
33   * @param[in] size - bytes to copy
34   * @return destination pointer
35   */
36  void* memcpyAligned(void* destination, const void* source, std::size_t size);
37  
38  } // namespace host_tool
39