Add sys command for powercycle on host shutdown.

The new command will trigger a power cycle the next time the host shuts
down. This can exist in parallel with the existing mechanism to trigger
a power cycle after a specified time interval.

The implementation of host state detection and power cycling is platfrom
specific; the new command will just add a temporary file that marks the
system ready to powercycle on the next shutdown. Usually, a systemd unit
would be enabled by the presence of this file to handle the power
cycling process.

Signed-off-by: Shounak Mitra <shounak@google.com>
Change-Id: I0cc40307748fb996be3f6062d8cba1a4b5049683
diff --git a/psu.hpp b/psu.hpp
index d45ce7f..8407a06 100644
--- a/psu.hpp
+++ b/psu.hpp
@@ -16,9 +16,19 @@
     uint32_t delay;
 } __attribute__((packed));
 
+struct PsuResetOnShutdownRequest
+{
+    uint8_t subcommand;
+} __attribute__((packed));
+
 // Set a time-delayed PSU hard reset.
 ipmi_ret_t psuHardReset(const uint8_t* reqBuf, uint8_t* replyBuf,
                         size_t* dataLen, const HandlerInterface* handler);
 
+// Arm for PSU hard reset on host shutdown.
+ipmi_ret_t psuHardResetOnShutdown(const uint8_t* reqBuf, uint8_t* replyBuf,
+                                  size_t* dataLen,
+                                  const HandlerInterface* handler);
+
 } // namespace ipmi
 } // namespace google