#pragma once #include #include namespace phosphor { namespace host { namespace command { /** @detail After sending SMS_ATN to the Host, Host comes down and * asks why an 'SMS_ATN` was sent. * BMC then sends 'There is a Message to be Read` as response. * Host then comes down asks for Message and the specified * commands and data would go as data conforming to IPMI spec. * * Refer: 6.13.2 Send Message Command From System Interface * in IPMI V2.0 spec. */ /** @brief IPMI command */ using IPMIcmd = uint8_t; /** @brief Data associated with command */ using Data = uint8_t; /** @brief to be sent as payload when Host asks for * the message that can be associated with the previous SMS_ATN */ using IpmiCmdData = std::pair; /** @detail Implementation specific callback function to be invoked * conveying the status of the executed command. Specific * implementations may then broadcast an agreed signal */ using CallBack = std::function; /** @detail Tuple encapsulating above 2 to enable using Manager by * different implementations. Users of Manager will supply * along with the callback handler. * Manager will invoke the handler onveying the status of * the command. */ using CommandHandler = std::tuple; } // namespace command } // namespace host } // namespace phosphor