Add function to send SMS_ATTN to host

This patch overrides one of the base API and sends a message that
enables the current HOST IPMI BT provider to actually set the SMS_ATTN.

Change-Id: I250ea6bed99e569e493251f6fc298aa7ed7c776f
Signed-off-by: Vishwanatha Subbanna <vishwa@linux.vnet.ibm.com>
diff --git a/softoff/softoff.cpp b/softoff/softoff.cpp
index 3505e5a..bd6a72d 100644
--- a/softoff/softoff.cpp
+++ b/softoff/softoff.cpp
@@ -13,10 +13,30 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+#include "softoff.hpp"
 namespace phosphor
 {
 namespace ipmi
 {
-    // Will be populated in the next patchset.
+
+// Need this to send SMS_ATTN
+constexpr auto HOST_IPMI_BUS  = "org.openbmc.HostIpmi";
+constexpr auto HOST_IPMI_OBJ  = "/org/openbmc/HostIpmi/1";
+constexpr auto HOST_IPMI_INTF = "org.openbmc.HostIpmi";
+
+/** @brief Send the SMS_ATN to host if value is set */
+void SoftPowerOff::sendSMSAttn()
+{
+    auto method = bus.new_method_call(HOST_IPMI_BUS,
+                                      HOST_IPMI_OBJ,
+                                      HOST_IPMI_INTF,
+                                      "setAttention");
+
+    // If there is any exception, would be thrown here.
+    // BT returns '0' on success and bus_error on failure.
+    bus.call_noreply(method);
+
+    return;
+}
 } // namespace ipmi
 } // namespace phosphor