psu.hpp (a2056e9ca86e767a774d621c5117939562c5aa54) psu.hpp (ff3cd8e91958cadd6a9f72f2ad69c00abae3c7cf)
1// 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//

--- 4 unchanged lines hidden (view full) ---

13// limitations under the License.
14
15#pragma once
16
17#include "handler.hpp"
18
19#include <ipmid/api.h>
20
1// 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//

--- 4 unchanged lines hidden (view full) ---

13// limitations under the License.
14
15#pragma once
16
17#include "handler.hpp"
18
19#include <ipmid/api.h>
20
21#include <ipmid/api-types.hpp>
22#include <vector>
23
21namespace google
22{
23namespace ipmi
24{
25
26struct PsuResetRequest
27{
24namespace google
25{
26namespace ipmi
27{
28
29struct PsuResetRequest
30{
28 uint8_t subcommand;
29 // Delay in seconds.
30 uint32_t delay;
31} __attribute__((packed));
32
31 // Delay in seconds.
32 uint32_t delay;
33} __attribute__((packed));
34
33struct PsuResetOnShutdownRequest
34{
35 uint8_t subcommand;
36} __attribute__((packed));
37
38// Set a time-delayed PSU hard reset.
35// Set a time-delayed PSU hard reset.
39ipmi_ret_t psuHardReset(const uint8_t* reqBuf, uint8_t* replyBuf,
40 size_t* dataLen, const HandlerInterface* handler);
36Resp psuHardReset(const std::vector<std::uint8_t>& data,
37 const HandlerInterface* handler);
41
42// Arm for PSU hard reset on host shutdown.
38
39// 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);
40Resp psuHardResetOnShutdown(const std::vector<std::uint8_t>& data,
41 const HandlerInterface* handler);
46
47} // namespace ipmi
48} // namespace google
42
43} // namespace ipmi
44} // namespace google