blob: f0d57753bb018c0711261351a953e6ce38b6beb1 [file] [log] [blame]
Willy Tua2056e92021-10-10 13:36:16 -07001// Copyright 2021 Google LLC
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
Patrick Venture4d49ae62018-09-17 11:35:32 -070015#pragma once
16
Patrick Ventureaa374122019-03-15 15:09:10 -070017#include "handler.hpp"
18
William A. Kennington III2c9e1622019-02-07 15:45:19 -080019#include <ipmid/api.h>
Patrick Venture4d49ae62018-09-17 11:35:32 -070020
21namespace google
22{
23namespace ipmi
24{
25
Patrick Ventureaa374122019-03-15 15:09:10 -070026struct PsuResetRequest
27{
28 uint8_t subcommand;
29 // Delay in seconds.
30 uint32_t delay;
31} __attribute__((packed));
32
Shounak Mitraac4a16f2021-02-02 11:11:44 -080033struct PsuResetOnShutdownRequest
34{
35 uint8_t subcommand;
36} __attribute__((packed));
37
Patrick Venture4d49ae62018-09-17 11:35:32 -070038// Set a time-delayed PSU hard reset.
Patrick Venture45fad1b2019-03-18 16:52:14 -070039ipmi_ret_t psuHardReset(const uint8_t* reqBuf, uint8_t* replyBuf,
Patrick Venturec87de552020-05-20 20:25:39 -070040 size_t* dataLen, const HandlerInterface* handler);
Patrick Venture4d49ae62018-09-17 11:35:32 -070041
Shounak Mitraac4a16f2021-02-02 11:11:44 -080042// Arm for PSU hard reset on host shutdown.
43ipmi_ret_t psuHardResetOnShutdown(const uint8_t* reqBuf, uint8_t* replyBuf,
44 size_t* dataLen,
45 const HandlerInterface* handler);
46
Patrick Venture4d49ae62018-09-17 11:35:32 -070047} // namespace ipmi
48} // namespace google