blob: a5882fc06738ccb8bacae6d10844db3afc3c25c8 [file] [log] [blame]
Adriana Kobylak70ca2422018-09-06 14:23:38 -05001#pragma once
2
3// With OpenSSL 1.1.0, some functions were deprecated. Need to abstract them
4// to make the code backward compatible with older OpenSSL veresions.
5// Reference: https://wiki.openssl.org/index.php/OpenSSL_1.1.0_Changes
6#if OPENSSL_VERSION_NUMBER < 0x10100000L
7
8#include <openssl/evp.h>
9
Lei YUe4994462019-03-14 14:41:53 +080010#include <sdbusplus/bus.hpp>
Brad Bishop8facccf2020-11-04 09:44:58 -050011
Andrew Geisslerab139ce2020-05-16 13:22:09 -050012#include <string>
Lei YUe4994462019-03-14 14:41:53 +080013
Brad Bishop8facccf2020-11-04 09:44:58 -050014extern "C"
15{
16 EVP_MD_CTX* EVP_MD_CTX_new(void);
17 void EVP_MD_CTX_free(EVP_MD_CTX* ctx);
Adriana Kobylak70ca2422018-09-06 14:23:38 -050018}
19
Lei YUe4994462019-03-14 14:41:53 +080020namespace utils
21{
22
23/**
24 * @brief Gets the D-Bus Service name for the input D-Bus path
25 *
26 * @param[in] bus - Bus handler
27 * @param[in] path - Object Path
28 * @param[in] intf - Interface
29 *
30 * @return Service name
31 * @error InternalFailure exception thrown
32 */
Patrick Williams0dea1992022-07-22 19:26:52 -050033std::string getService(sdbusplus::bus_t& bus, const std::string& path,
Lei YUe4994462019-03-14 14:41:53 +080034 const std::string& intf);
35
36/** @brief Suspend hiomapd.
37 *
38 * @param[in] bus - The D-Bus bus object.
39 */
Patrick Williams0dea1992022-07-22 19:26:52 -050040void hiomapdSuspend(sdbusplus::bus_t& bus);
Lei YUe4994462019-03-14 14:41:53 +080041
42/** @brief Resume hiomapd.
43 *
44 * @param[in] bus - The D-Bus bus object.
45 */
Patrick Williams0dea1992022-07-22 19:26:52 -050046void hiomapdResume(sdbusplus::bus_t& bus);
Lei YUe4994462019-03-14 14:41:53 +080047
Adriana Kobylak56a46772022-02-25 16:37:37 +000048/** @brief Set the Hardware Management Console Managed bios attribute to
49 * Disabled to clear the indication that the system is HMC-managed.
50 *
51 * @param[in] bus - The D-Bus bus object.
52 */
Patrick Williams0dea1992022-07-22 19:26:52 -050053void clearHMCManaged(sdbusplus::bus_t& bus);
Adriana Kobylak56a46772022-02-25 16:37:37 +000054
Adriana Kobylakf9a72a72022-05-20 14:52:29 +000055/** @brief Set the Clear hypervisor NVRAM bios attribute to Enabled to indicate
56 * to the hypervisor to clear its NVRAM.
57 *
58 * @param[in] bus - The D-Bus bus object.
59 */
Patrick Williams0dea1992022-07-22 19:26:52 -050060void setClearNvram(sdbusplus::bus_t& bus);
Adriana Kobylakf9a72a72022-05-20 14:52:29 +000061
Adriana Kobylak267c4132022-02-25 20:00:07 +000062/** @brief DeleteAll error logs
63 *
64 * @param[in] bus - The D-Bus bus object.
65 */
Patrick Williams0dea1992022-07-22 19:26:52 -050066void deleteAllErrorLogs(sdbusplus::bus_t& bus);
Adriana Kobylak267c4132022-02-25 20:00:07 +000067
Lei YUe4994462019-03-14 14:41:53 +080068} // namespace utils
69
Adriana Kobylak70ca2422018-09-06 14:23:38 -050070#endif // OPENSSL_VERSION_NUMBER < 0x10100000L