19e905375SDhruvaraj Subhashchandran #pragma once
29e905375SDhruvaraj Subhashchandran 
39e905375SDhruvaraj Subhashchandran #include "dump_utils.hpp"
49e905375SDhruvaraj Subhashchandran 
59e905375SDhruvaraj Subhashchandran namespace openpower
69e905375SDhruvaraj Subhashchandran {
79e905375SDhruvaraj Subhashchandran namespace dump
89e905375SDhruvaraj Subhashchandran {
99e905375SDhruvaraj Subhashchandran namespace util
109e905375SDhruvaraj Subhashchandran {
119e905375SDhruvaraj Subhashchandran 
129e905375SDhruvaraj Subhashchandran /** @brief Check whether OpenPOWER dumps are enabled
139e905375SDhruvaraj Subhashchandran  *
149e905375SDhruvaraj Subhashchandran  * param[in] bus - D-Bus handle
159e905375SDhruvaraj Subhashchandran  *
169e905375SDhruvaraj Subhashchandran  * If the settings service is not running then considering as
179e905375SDhruvaraj Subhashchandran  * the dumps are enabled.
189e905375SDhruvaraj Subhashchandran  * @return true - if dumps are enabled, false - if dumps are not enabled
199e905375SDhruvaraj Subhashchandran  */
20*8098ca6aSPatrick Williams bool isOPDumpsEnabled(sdbusplus::bus_t& bus);
219e905375SDhruvaraj Subhashchandran 
221ddb006bSDhruvaraj Subhashchandran using BIOSAttrValueType = std::variant<int64_t, std::string>;
231ddb006bSDhruvaraj Subhashchandran 
241ddb006bSDhruvaraj Subhashchandran /** @brief Read a BIOS attribute value
251ddb006bSDhruvaraj Subhashchandran  *
261ddb006bSDhruvaraj Subhashchandran  *  @param[in] attrName - Name of the BIOS attribute
271ddb006bSDhruvaraj Subhashchandran  *  @param[in] bus - D-Bus handle
281ddb006bSDhruvaraj Subhashchandran  *
291ddb006bSDhruvaraj Subhashchandran  *  @return The value of the BIOS attribute as a variant of possible types
301ddb006bSDhruvaraj Subhashchandran  *
311ddb006bSDhruvaraj Subhashchandran  *  @throws sdbusplus::exception::SdBusError if failed to read the attribute
321ddb006bSDhruvaraj Subhashchandran  */
331ddb006bSDhruvaraj Subhashchandran BIOSAttrValueType readBIOSAttribute(const std::string& attrName,
34*8098ca6aSPatrick Williams                                     sdbusplus::bus_t& bus);
351ddb006bSDhruvaraj Subhashchandran 
361ddb006bSDhruvaraj Subhashchandran /** @brief Check whether a system is in progress or available to offload.
371ddb006bSDhruvaraj Subhashchandran  *
381ddb006bSDhruvaraj Subhashchandran  *  @param[in] bus - D-Bus handle
391ddb006bSDhruvaraj Subhashchandran  *
401ddb006bSDhruvaraj Subhashchandran  *  @return true - A dump is in progress or available to offload
411ddb006bSDhruvaraj Subhashchandran  *          false - No dump in progress
421ddb006bSDhruvaraj Subhashchandran  */
43*8098ca6aSPatrick Williams bool isSystemDumpInProgress(sdbusplus::bus_t& bus);
449e905375SDhruvaraj Subhashchandran } // namespace util
459e905375SDhruvaraj Subhashchandran } // namespace dump
469e905375SDhruvaraj Subhashchandran } // namespace openpower
47