| // Copyright 2021 The Chromium OS Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef LIBHWSEC_FOUNDATION_TPM_ERROR_TPM_ERROR_DATA_H_ |
| #define LIBHWSEC_FOUNDATION_TPM_ERROR_TPM_ERROR_DATA_H_ |
| |
| #include <stdint.h> |
| |
| #if defined(__cplusplus) |
| #include <type_traits> |
| #include <vector> |
| #endif |
| |
| #if defined(__cplusplus) |
| extern "C" { |
| #endif |
| |
| // The data that describes a TPM command and the response. |
| struct TpmErrorData { |
| uint32_t command; |
| uint32_t response; |
| }; |
| |
| // It has to be POD so it's C-compatible. |
| #if defined(__cplusplus) |
| static_assert(std::is_trivial<TpmErrorData>::value); |
| static_assert(std::is_standard_layout<TpmErrorData>::value); |
| #endif |
| |
| #if defined(__cplusplus) |
| } |
| #endif |
| |
| #if defined(__cplusplus) |
| bool operator==(const struct TpmErrorData& a, const struct TpmErrorData& b); |
| bool operator<(const struct TpmErrorData& a, const struct TpmErrorData& b); |
| |
| // Get SHA256 value from vector of TpmErrorData. |
| uint32_t GetHashFromTpmDataSet( |
| const std::vector<struct TpmErrorData>& data_set); |
| #endif |
| |
| #endif // LIBHWSEC_FOUNDATION_TPM_ERROR_TPM_ERROR_DATA_H_ |