| #pragma once |
| |
| #include <sdbusplus/bus.hpp> |
| #include <sdbusplus/server/object.hpp> |
| #include <xyz/openbmc_project/Control/Host/NMI/server.hpp> |
| |
| namespace openpower |
| { |
| namespace proc |
| { |
| |
| using Base = sdbusplus::xyz::openbmc_project::Control::Host::server::NMI; |
| using Interface = sdbusplus::server::object::object<Base>; |
| |
| /* @class NMI |
| * @brief Implementation of NMI (Soft Reset) |
| */ |
| class NMI : public Interface |
| { |
| public: |
| NMI() = delete; |
| NMI(const NMI&) = delete; |
| NMI& operator=(const NMI&) = delete; |
| NMI(NMI&&) = delete; |
| NMI& operator=(NMI&&) = delete; |
| virtual ~NMI() = default; |
| |
| /* @brief Constructor to put object onto bus at a dbus path. |
| * @param[in] bus - sdbusplus D-Bus to attach to. |
| * @param[in] path - Path to attach to. |
| */ |
| NMI(sdbusplus::bus::bus& bus, const char* path); |
| |
| /* @brief trigger stop followed by soft reset. |
| */ |
| void nmi() override; |
| |
| private: |
| /** @brief sdbus handle */ |
| sdbusplus::bus::bus& bus; |
| |
| /** @brief object path */ |
| std::string objectPath; |
| }; |
| |
| } // namespace proc |
| } // namespace openpower |