blob: 49b6f262e8ba73b1d7b49a9ddc01e5396fb2b4b0 [file] [log] [blame]
Vishwanatha Subbanna506aa0f2017-01-24 14:58:25 +05301/**
2 * Copyright © 2016 IBM Corporation
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
Vishwanatha Subbannad27e71e2017-02-01 18:02:38 +053016#include <chrono>
17#include <phosphor-logging/log.hpp>
Vishwanatha Subbanna7cc9d712017-01-24 18:48:40 +053018#include "softoff.hpp"
Vishwanatha Subbannad27e71e2017-02-01 18:02:38 +053019#include "config.h"
Vishwanatha Subbanna506aa0f2017-01-24 14:58:25 +053020namespace phosphor
21{
22namespace ipmi
23{
Vishwanatha Subbanna7cc9d712017-01-24 18:48:40 +053024
Vishwanatha Subbanna7cc9d712017-01-24 18:48:40 +053025/** @brief Send the SMS_ATN to host if value is set */
26void SoftPowerOff::sendSMSAttn()
27{
Vishwanatha Subbannad27e71e2017-02-01 18:02:38 +053028 using namespace std::chrono;
Vishwanatha Subbanna7cc9d712017-01-24 18:48:40 +053029 auto method = bus.new_method_call(HOST_IPMI_BUS,
30 HOST_IPMI_OBJ,
31 HOST_IPMI_INTF,
32 "setAttention");
33
34 // If there is any exception, would be thrown here.
35 // BT returns '0' on success and bus_error on failure.
36 bus.call_noreply(method);
37
Vishwanatha Subbannad27e71e2017-02-01 18:02:38 +053038 // Start the timer
39 auto time = duration_cast<microseconds>(
40 seconds(IPMI_SMS_ATN_ACK_TIMEOUT_SECS));
41 auto r = timer.startTimer(time);
42 if (r < 0)
43 {
44 throw std::runtime_error("Error starting timer");
45 }
Vishwanatha Subbanna7cc9d712017-01-24 18:48:40 +053046 return;
47}
Vishwanatha Subbannabcb76882017-01-25 16:29:43 +053048
Vishwanatha Subbanna506aa0f2017-01-24 14:58:25 +053049} // namespace ipmi
50} // namespace phosphor