clang-format: re-format for clang-18
clang-format-18 isn't compatible with the clang-format-17 output, so we
need to reformat the code with the latest version. The way clang-18
handles lambda formatting also changed, so we have made changes to the
organization default style format to better handle lambda formatting.
See I5e08687e696dd240402a2780158664b7113def0e for updated style.
See Iea0776aaa7edd483fa395e23de25ebf5a6288f71 for clang-18 enablement.
Change-Id: I474dc261d5698b702bab7b9305c1d6958f43d40f
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
diff --git a/.clang-format b/.clang-format
index d43e884..28e3328 100644
--- a/.clang-format
+++ b/.clang-format
@@ -87,7 +87,7 @@
IndentWrappedFunctionNames: true
InsertNewlineAtEOF: true
KeepEmptyLinesAtTheStartOfBlocks: false
-LambdaBodyIndentation: OuterScope
+LambdaBodyIndentation: Signature
LineEnding: LF
MacroBlockBegin: ''
MacroBlockEnd: ''
@@ -98,13 +98,14 @@
ObjCSpaceBeforeProtocolList: true
PackConstructorInitializers: BinPack
PenaltyBreakAssignment: 25
-PenaltyBreakBeforeFirstCallParameter: 19
+PenaltyBreakBeforeFirstCallParameter: 50
PenaltyBreakComment: 300
PenaltyBreakFirstLessLess: 120
PenaltyBreakString: 1000
+PenaltyBreakTemplateDeclaration: 10
PenaltyExcessCharacter: 1000000
PenaltyReturnTypeOnItsOwnLine: 60
-PenaltyIndentedWhitespace: 0
+PenaltyIndentedWhitespace: 1
PointerAlignment: Left
QualifierAlignment: Left
ReferenceAlignment: Left
diff --git a/src/power_control.cpp b/src/power_control.cpp
index 1e1fb0a..c73810c 100644
--- a/src/power_control.cpp
+++ b/src/power_control.cpp
@@ -212,14 +212,14 @@
conn->async_method_call(
[](boost::system::error_code ec) {
- if (ec)
- {
- lg2::error(
- "beep returned error with async_method_call (ec = {ERROR_MSG})",
- "ERROR_MSG", ec.message());
- return;
- }
- },
+ if (ec)
+ {
+ lg2::error(
+ "beep returned error with async_method_call (ec = {ERROR_MSG})",
+ "ERROR_MSG", ec.message());
+ return;
+ }
+ },
"xyz.openbmc_project.BeepCode", "/xyz/openbmc_project/BeepCode",
"xyz.openbmc_project.BeepCode", "Beep", uint8_t(beepPriority));
}
@@ -688,11 +688,11 @@
{
conn->async_method_call(
[](boost::system::error_code ec) {
- if (ec)
- {
- lg2::error("failed to reset ACBoot property");
- }
- },
+ if (ec)
+ {
+ lg2::error("failed to reset ACBoot property");
+ }
+ },
"xyz.openbmc_project.Settings",
"/xyz/openbmc_project/control/host0/ac_boot",
"org.freedesktop.DBus.Properties", "Set",
@@ -946,8 +946,8 @@
void PowerRestoreController::run()
{
- std::string powerRestorePolicyObject = "/xyz/openbmc_project/control/host" +
- node + "/power_restore_policy";
+ std::string powerRestorePolicyObject =
+ "/xyz/openbmc_project/control/host" + node + "/power_restore_policy";
powerRestorePolicyLog();
// this list only needs to be created once
if (matches.empty())
@@ -976,12 +976,12 @@
conn->async_method_call(
[this](boost::system::error_code ec,
const dbusPropertiesList properties) {
- if (ec)
- {
- return;
- }
- setProperties(properties);
- },
+ if (ec)
+ {
+ return;
+ }
+ setProperties(properties);
+ },
setingsService, powerRestorePolicyObject,
"org.freedesktop.DBus.Properties", "GetAll", powerRestorePolicyIface);
@@ -990,12 +990,12 @@
conn->async_method_call(
[this](boost::system::error_code ec,
const dbusPropertiesList properties) {
- if (ec)
- {
- return;
- }
- setProperties(properties);
- },
+ if (ec)
+ {
+ return;
+ }
+ setProperties(properties);
+ },
setingsService, powerACBootObject, "org.freedesktop.DBus.Properties",
"GetAll", powerACBootIface);
#endif
@@ -1073,8 +1073,8 @@
powerRestoreTimer.expires_after(std::chrono::seconds(delay));
lg2::info("Power Restore delay of {DELAY} seconds started", "DELAY",
delay);
- powerRestoreTimer.async_wait(
- [this](const boost::system::error_code ec) {
+ powerRestoreTimer.async_wait([this](const boost::system::error_code
+ ec) {
if (ec)
{
// operation_aborted is expected if timer is canceled before
@@ -1145,26 +1145,27 @@
return state == "xyz.openbmc_project.State.Chassis.PowerState.On";
}
-static void waitForGPIOEvent(const std::string& name,
- const std::function<void(bool)>& eventHandler,
- gpiod::line& line,
- boost::asio::posix::stream_descriptor& event)
+static void waitForGPIOEvent(
+ const std::string& name, const std::function<void(bool)>& eventHandler,
+ gpiod::line& line, boost::asio::posix::stream_descriptor& event)
{
- event.async_wait(boost::asio::posix::stream_descriptor::wait_read,
- [&name, eventHandler, &line,
- &event](const boost::system::error_code ec) {
- if (ec)
- {
- lg2::error("{GPIO_NAME} fd handler error: {ERROR_MSG}", "GPIO_NAME",
- name, "ERROR_MSG", ec.message());
- // TODO: throw here to force power-control to
- // restart?
- return;
- }
- gpiod::line_event line_event = line.event_read();
- eventHandler(line_event.event_type == gpiod::line_event::RISING_EDGE);
- waitForGPIOEvent(name, eventHandler, line, event);
- });
+ event.async_wait(
+ boost::asio::posix::stream_descriptor::wait_read,
+ [&name, eventHandler, &line,
+ &event](const boost::system::error_code ec) {
+ if (ec)
+ {
+ lg2::error("{GPIO_NAME} fd handler error: {ERROR_MSG}",
+ "GPIO_NAME", name, "ERROR_MSG", ec.message());
+ // TODO: throw here to force power-control to
+ // restart?
+ return;
+ }
+ gpiod::line_event line_event = line.event_read();
+ eventHandler(line_event.event_type ==
+ gpiod::line_event::RISING_EDGE);
+ waitForGPIOEvent(name, eventHandler, line, event);
+ });
}
static bool requestGPIOEvents(
@@ -1244,20 +1245,20 @@
gpioAssertTimer.expires_after(std::chrono::milliseconds(durationMs));
gpioAssertTimer.async_wait(
[maskedGPIOLine, value, name](const boost::system::error_code ec) {
- // Set the masked GPIO line back to the opposite value
- maskedGPIOLine.set_value(!value);
- lg2::info("{GPIO_NAME} released", "GPIO_NAME", name);
- if (ec)
- {
- // operation_aborted is expected if timer is canceled before
- // completion.
- if (ec != boost::asio::error::operation_aborted)
+ // Set the masked GPIO line back to the opposite value
+ maskedGPIOLine.set_value(!value);
+ lg2::info("{GPIO_NAME} released", "GPIO_NAME", name);
+ if (ec)
{
- lg2::error("{GPIO_NAME} async_wait failed: {ERROR_MSG}",
- "GPIO_NAME", name, "ERROR_MSG", ec.message());
+ // operation_aborted is expected if timer is canceled before
+ // completion.
+ if (ec != boost::asio::error::operation_aborted)
+ {
+ lg2::error("{GPIO_NAME} async_wait failed: {ERROR_MSG}",
+ "GPIO_NAME", name, "ERROR_MSG", ec.message());
+ }
}
- }
- });
+ });
return 0;
}
@@ -1287,20 +1288,20 @@
gpioAssertTimer.expires_after(std::chrono::milliseconds(durationMs));
gpioAssertTimer.async_wait(
[gpioLine, value, name](const boost::system::error_code ec) {
- // Set the GPIO line back to the opposite value
- gpioLine.set_value(!value);
- lg2::info("{GPIO_NAME} released", "GPIO_NAME", name);
- if (ec)
- {
- // operation_aborted is expected if timer is canceled before
- // completion.
- if (ec != boost::asio::error::operation_aborted)
+ // Set the GPIO line back to the opposite value
+ gpioLine.set_value(!value);
+ lg2::info("{GPIO_NAME} released", "GPIO_NAME", name);
+ if (ec)
{
- lg2::error("{GPIO_NAME} async_wait failed: {ERROR_MSG}",
- "GPIO_NAME", name, "ERROR_MSG", ec.message());
+ // operation_aborted is expected if timer is canceled before
+ // completion.
+ if (ec != boost::asio::error::operation_aborted)
+ {
+ lg2::error("{GPIO_NAME} async_wait failed: {ERROR_MSG}",
+ "GPIO_NAME", name, "ERROR_MSG", ec.message());
+ }
}
- }
- });
+ });
return 0;
}
@@ -1541,32 +1542,32 @@
conn->async_method_call(
[](boost::system::error_code ec,
const std::variant<uint32_t>& pohCounterProperty) {
- if (ec)
- {
- lg2::error("error getting poh counter");
- return;
- }
- const uint32_t* pohCounter =
- std::get_if<uint32_t>(&pohCounterProperty);
- if (pohCounter == nullptr)
- {
- lg2::error("unable to read poh counter");
- return;
- }
-
- conn->async_method_call(
- [](boost::system::error_code ec) {
if (ec)
{
- lg2::error("failed to set poh counter");
+ lg2::error("error getting poh counter");
+ return;
}
+ const uint32_t* pohCounter =
+ std::get_if<uint32_t>(&pohCounterProperty);
+ if (pohCounter == nullptr)
+ {
+ lg2::error("unable to read poh counter");
+ return;
+ }
+
+ conn->async_method_call(
+ [](boost::system::error_code ec) {
+ if (ec)
+ {
+ lg2::error("failed to set poh counter");
+ }
+ },
+ "xyz.openbmc_project.Settings",
+ "/xyz/openbmc_project/state/chassis0",
+ "org.freedesktop.DBus.Properties", "Set",
+ "xyz.openbmc_project.State.PowerOnHours", "POHCounter",
+ std::variant<uint32_t>(*pohCounter + 1));
},
- "xyz.openbmc_project.Settings",
- "/xyz/openbmc_project/state/chassis0",
- "org.freedesktop.DBus.Properties", "Set",
- "xyz.openbmc_project.State.PowerOnHours", "POHCounter",
- std::variant<uint32_t>(*pohCounter + 1));
- },
"xyz.openbmc_project.Settings",
"/xyz/openbmc_project/state/chassis0",
"org.freedesktop.DBus.Properties", "Get",
@@ -1592,74 +1593,76 @@
setRestartCause();
}
- static auto match =
- sdbusplus::bus::match_t(*conn,
- "type='signal',member='PropertiesChanged', "
- "interface='org.freedesktop.DBus.Properties', "
- "arg0='xyz.openbmc_project.State.Host'",
- [](sdbusplus::message_t& message) {
- std::string intfName;
- std::map<std::string, std::variant<std::string>> properties;
+ static auto match = sdbusplus::bus::match_t(
+ *conn,
+ "type='signal',member='PropertiesChanged', "
+ "interface='org.freedesktop.DBus.Properties', "
+ "arg0='xyz.openbmc_project.State.Host'",
+ [](sdbusplus::message_t& message) {
+ std::string intfName;
+ std::map<std::string, std::variant<std::string>> properties;
- try
- {
- message.read(intfName, properties);
- }
- catch (const std::exception& e)
- {
- lg2::error("Unable to read host state: {ERROR}", "ERROR", e);
- return;
- }
- if (properties.empty())
- {
- lg2::error("ERROR: Empty PropertiesChanged signal received");
- return;
- }
+ try
+ {
+ message.read(intfName, properties);
+ }
+ catch (const std::exception& e)
+ {
+ lg2::error("Unable to read host state: {ERROR}", "ERROR", e);
+ return;
+ }
+ if (properties.empty())
+ {
+ lg2::error("ERROR: Empty PropertiesChanged signal received");
+ return;
+ }
- // We only want to check for CurrentHostState
- if (properties.begin()->first != "CurrentHostState")
- {
- return;
- }
- std::string* currentHostState =
- std::get_if<std::string>(&(properties.begin()->second));
- if (currentHostState == nullptr)
- {
- lg2::error("{PROPERTY} property invalid", "PROPERTY",
- properties.begin()->first);
- return;
- }
+ // We only want to check for CurrentHostState
+ if (properties.begin()->first != "CurrentHostState")
+ {
+ return;
+ }
+ std::string* currentHostState =
+ std::get_if<std::string>(&(properties.begin()->second));
+ if (currentHostState == nullptr)
+ {
+ lg2::error("{PROPERTY} property invalid", "PROPERTY",
+ properties.begin()->first);
+ return;
+ }
- if (*currentHostState ==
- "xyz.openbmc_project.State.Host.HostState.Running")
- {
- pohCounterTimerStart();
- // Clear the restart cause set for the next restart
- clearRestartCause();
- sd_journal_send("MESSAGE=Host system DC power is on", "PRIORITY=%i",
- LOG_INFO, "REDFISH_MESSAGE_ID=%s",
- "OpenBMC.0.1.DCPowerOn", NULL);
- }
- else
- {
- pohCounterTimer.cancel();
- // POST_COMPLETE GPIO event is not working in some platforms
- // when power state is changed to OFF. This resulted in
- // 'OperatingSystemState' to stay at 'Standby', even though
- // system is OFF. Set 'OperatingSystemState' to 'Inactive'
- // if HostState is trurned to OFF.
- setOperatingSystemState(OperatingSystemStateStage::Inactive);
+ if (*currentHostState ==
+ "xyz.openbmc_project.State.Host.HostState.Running")
+ {
+ pohCounterTimerStart();
+ // Clear the restart cause set for the next restart
+ clearRestartCause();
+ sd_journal_send("MESSAGE=Host system DC power is on",
+ "PRIORITY=%i", LOG_INFO,
+ "REDFISH_MESSAGE_ID=%s",
+ "OpenBMC.0.1.DCPowerOn", NULL);
+ }
+ else
+ {
+ pohCounterTimer.cancel();
+ // POST_COMPLETE GPIO event is not working in some platforms
+ // when power state is changed to OFF. This resulted in
+ // 'OperatingSystemState' to stay at 'Standby', even though
+ // system is OFF. Set 'OperatingSystemState' to 'Inactive'
+ // if HostState is trurned to OFF.
+ setOperatingSystemState(OperatingSystemStateStage::Inactive);
- // Set the restart cause set for this restart
- setRestartCause();
+ // Set the restart cause set for this restart
+ setRestartCause();
#ifdef USE_ACBOOT
- resetACBootProperty();
+ resetACBootProperty();
#endif // USE_ACBOOT
- sd_journal_send("MESSAGE=Host system DC power is off",
- "PRIORITY=%i", LOG_INFO, "REDFISH_MESSAGE_ID=%s",
- "OpenBMC.0.1.DCPowerOff", NULL);
- }
- });
+ sd_journal_send("MESSAGE=Host system DC power is off",
+ "PRIORITY=%i", LOG_INFO,
+ "REDFISH_MESSAGE_ID=%s",
+ "OpenBMC.0.1.DCPowerOff", NULL);
+ }
+ });
}
static void sioPowerGoodWatchdogTimerStart()
@@ -1667,8 +1670,8 @@
lg2::info("SIO power good watchdog timer started");
sioPowerGoodWatchdogTimer.expires_after(
std::chrono::milliseconds(TimerMap["SioPowerGoodWatchdogMs"]));
- sioPowerGoodWatchdogTimer.async_wait(
- [](const boost::system::error_code ec) {
+ sioPowerGoodWatchdogTimer.async_wait([](const boost::system::error_code
+ ec) {
if (ec)
{
// operation_aborted is expected if timer is canceled before
@@ -2095,12 +2098,12 @@
{
conn->async_method_call(
[](boost::system::error_code ec) {
- if (ec)
- {
- lg2::error("Failed to call chassis system reset: {ERR}", "ERR",
- ec.message());
- }
- },
+ if (ec)
+ {
+ lg2::error("Failed to call chassis system reset: {ERR}", "ERR",
+ ec.message());
+ }
+ },
systemdBusname, systemdPath, systemdInterface, "StartUnit",
systemTargetName, "replace");
}
@@ -2110,11 +2113,11 @@
{
conn->async_method_call(
[](boost::system::error_code ec) {
- if (ec)
- {
- lg2::error("failed to set NMI source");
- }
- },
+ if (ec)
+ {
+ lg2::error("failed to set NMI source");
+ }
+ },
"xyz.openbmc_project.Settings",
"/xyz/openbmc_project/Chassis/Control/NMISource",
"org.freedesktop.DBus.Properties", "Set",
@@ -2165,43 +2168,47 @@
"member='PropertiesChanged',"
"arg0namespace='xyz.openbmc_project.Chassis.Control.NMISource'",
[](sdbusplus::message_t& msg) {
- std::string interfaceName;
- boost::container::flat_map<std::string, std::variant<bool, std::string>>
- propertiesChanged;
- std::string state;
- bool value = true;
- try
- {
- msg.read(interfaceName, propertiesChanged);
- if (propertiesChanged.begin()->first == "Enabled")
- {
- value = std::get<bool>(propertiesChanged.begin()->second);
- lg2::info("NMI Enabled propertiesChanged value: {VALUE}",
- "VALUE", value);
- nmiEnabled = value;
- if (nmiEnabled)
+ std::string interfaceName;
+ boost::container::flat_map<std::string,
+ std::variant<bool, std::string>>
+ propertiesChanged;
+ std::string state;
+ bool value = true;
+ try
{
- nmiReset();
+ msg.read(interfaceName, propertiesChanged);
+ if (propertiesChanged.begin()->first == "Enabled")
+ {
+ value =
+ std::get<bool>(propertiesChanged.begin()->second);
+ lg2::info(
+ "NMI Enabled propertiesChanged value: {VALUE}",
+ "VALUE", value);
+ nmiEnabled = value;
+ if (nmiEnabled)
+ {
+ nmiReset();
+ }
+ }
}
- }
- }
- catch (const std::exception& e)
- {
- lg2::error("Unable to read NMI source: {ERROR}", "ERROR", e);
- return;
- }
- });
+ catch (const std::exception& e)
+ {
+ lg2::error("Unable to read NMI source: {ERROR}", "ERROR",
+ e);
+ return;
+ }
+ });
}
static void setNmiSource()
{
conn->async_method_call(
[](boost::system::error_code ec) {
- if (ec)
- {
- lg2::error("failed to set NMI source");
- }
- },
+ if (ec)
+ {
+ lg2::error("failed to set NMI source");
+ }
+ },
"xyz.openbmc_project.Settings",
"/xyz/openbmc_project/Chassis/Control/NMISource",
"org.freedesktop.DBus.Properties", "Set",
@@ -2480,8 +2487,8 @@
}
template <typename T>
-static std::optional<T> getMessageValue(sdbusplus::message_t& msg,
- const std::string& name)
+static std::optional<T>
+ getMessageValue(sdbusplus::message_t& msg, const std::string& name)
{
std::string event;
std::string thresholdInterface;
@@ -2542,15 +2549,15 @@
static sdbusplus::bus::match_t
dbusGPIOMatcher(const ConfigData& cfg, std::function<void(bool)> onMatch)
{
- auto pulseEventMatcherCallback = [&cfg,
- onMatch](sdbusplus::message_t& msg) {
- bool value = false;
- if (!getDbusMsgGPIOState(msg, cfg, value))
- {
- return;
- }
- onMatch(value);
- };
+ auto pulseEventMatcherCallback =
+ [&cfg, onMatch](sdbusplus::message_t& msg) {
+ bool value = false;
+ if (!getDbusMsgGPIOState(msg, cfg, value))
+ {
+ return;
+ }
+ onMatch(value);
+ };
return sdbusplus::bus::match_t(
static_cast<sdbusplus::bus_t&>(*conn),
@@ -3008,93 +3015,96 @@
"RequestedHostTransition",
std::string("xyz.openbmc_project.State.Host.Transition.Off"),
[](const std::string& requested, std::string& resp) {
- if (requested == "xyz.openbmc_project.State.Host.Transition.Off")
- {
- // if power button is masked, ignore this
- if (!powerButtonMask)
+ if (requested == "xyz.openbmc_project.State.Host.Transition.Off")
{
- sendPowerControlEvent(Event::gracefulPowerOffRequest);
- addRestartCause(RestartCause::command);
+ // if power button is masked, ignore this
+ if (!powerButtonMask)
+ {
+ sendPowerControlEvent(Event::gracefulPowerOffRequest);
+ addRestartCause(RestartCause::command);
+ }
+ else
+ {
+ lg2::info("Power Button Masked.");
+ throw std::invalid_argument("Transition Request Masked");
+ return 0;
+ }
+ }
+ else if (requested ==
+ "xyz.openbmc_project.State.Host.Transition.On")
+ {
+ // if power button is masked, ignore this
+ if (!powerButtonMask)
+ {
+ sendPowerControlEvent(Event::powerOnRequest);
+ addRestartCause(RestartCause::command);
+ }
+ else
+ {
+ lg2::info("Power Button Masked.");
+ throw std::invalid_argument("Transition Request Masked");
+ return 0;
+ }
+ }
+ else if (requested ==
+ "xyz.openbmc_project.State.Host.Transition.Reboot")
+ {
+ // if power button is masked, ignore this
+ if (!powerButtonMask)
+ {
+ sendPowerControlEvent(Event::powerCycleRequest);
+ addRestartCause(RestartCause::command);
+ }
+ else
+ {
+ lg2::info("Power Button Masked.");
+ throw std::invalid_argument("Transition Request Masked");
+ return 0;
+ }
+ }
+ else if (
+ requested ==
+ "xyz.openbmc_project.State.Host.Transition.GracefulWarmReboot")
+ {
+ // if reset button is masked, ignore this
+ if (!resetButtonMask)
+ {
+ sendPowerControlEvent(Event::gracefulPowerCycleRequest);
+ addRestartCause(RestartCause::command);
+ }
+ else
+ {
+ lg2::info("Reset Button Masked.");
+ throw std::invalid_argument("Transition Request Masked");
+ return 0;
+ }
+ }
+ else if (
+ requested ==
+ "xyz.openbmc_project.State.Host.Transition.ForceWarmReboot")
+ {
+ // if reset button is masked, ignore this
+ if (!resetButtonMask)
+ {
+ sendPowerControlEvent(Event::resetRequest);
+ addRestartCause(RestartCause::command);
+ }
+ else
+ {
+ lg2::info("Reset Button Masked.");
+ throw std::invalid_argument("Transition Request Masked");
+ return 0;
+ }
}
else
{
- lg2::info("Power Button Masked.");
- throw std::invalid_argument("Transition Request Masked");
+ lg2::error("Unrecognized host state transition request.");
+ throw std::invalid_argument("Unrecognized Transition Request");
return 0;
}
- }
- else if (requested == "xyz.openbmc_project.State.Host.Transition.On")
- {
- // if power button is masked, ignore this
- if (!powerButtonMask)
- {
- sendPowerControlEvent(Event::powerOnRequest);
- addRestartCause(RestartCause::command);
- }
- else
- {
- lg2::info("Power Button Masked.");
- throw std::invalid_argument("Transition Request Masked");
- return 0;
- }
- }
- else if (requested ==
- "xyz.openbmc_project.State.Host.Transition.Reboot")
- {
- // if power button is masked, ignore this
- if (!powerButtonMask)
- {
- sendPowerControlEvent(Event::powerCycleRequest);
- addRestartCause(RestartCause::command);
- }
- else
- {
- lg2::info("Power Button Masked.");
- throw std::invalid_argument("Transition Request Masked");
- return 0;
- }
- }
- else if (requested ==
- "xyz.openbmc_project.State.Host.Transition.GracefulWarmReboot")
- {
- // if reset button is masked, ignore this
- if (!resetButtonMask)
- {
- sendPowerControlEvent(Event::gracefulPowerCycleRequest);
- addRestartCause(RestartCause::command);
- }
- else
- {
- lg2::info("Reset Button Masked.");
- throw std::invalid_argument("Transition Request Masked");
- return 0;
- }
- }
- else if (requested ==
- "xyz.openbmc_project.State.Host.Transition.ForceWarmReboot")
- {
- // if reset button is masked, ignore this
- if (!resetButtonMask)
- {
- sendPowerControlEvent(Event::resetRequest);
- addRestartCause(RestartCause::command);
- }
- else
- {
- lg2::info("Reset Button Masked.");
- throw std::invalid_argument("Transition Request Masked");
- return 0;
- }
- }
- else
- {
- lg2::error("Unrecognized host state transition request.");
- throw std::invalid_argument("Unrecognized Transition Request");
- return 0;
- }
- resp = requested;
- return 1;
- });
+ resp = requested;
+ return 1;
+ });
hostIface->register_property("CurrentHostState",
std::string(getHostState(powerState)));
@@ -3113,61 +3123,62 @@
"RequestedPowerTransition",
std::string("xyz.openbmc_project.State.Chassis.Transition.Off"),
[](const std::string& requested, std::string& resp) {
- if (requested == "xyz.openbmc_project.State.Chassis.Transition.Off")
- {
- // if power button is masked, ignore this
- if (!powerButtonMask)
+ if (requested == "xyz.openbmc_project.State.Chassis.Transition.Off")
{
- sendPowerControlEvent(Event::powerOffRequest);
- addRestartCause(RestartCause::command);
+ // if power button is masked, ignore this
+ if (!powerButtonMask)
+ {
+ sendPowerControlEvent(Event::powerOffRequest);
+ addRestartCause(RestartCause::command);
+ }
+ else
+ {
+ lg2::info("Power Button Masked.");
+ throw std::invalid_argument("Transition Request Masked");
+ return 0;
+ }
+ }
+ else if (requested ==
+ "xyz.openbmc_project.State.Chassis.Transition.On")
+ {
+ // if power button is masked, ignore this
+ if (!powerButtonMask)
+ {
+ sendPowerControlEvent(Event::powerOnRequest);
+ addRestartCause(RestartCause::command);
+ }
+ else
+ {
+ lg2::info("Power Button Masked.");
+ throw std::invalid_argument("Transition Request Masked");
+ return 0;
+ }
+ }
+ else if (requested ==
+ "xyz.openbmc_project.State.Chassis.Transition.PowerCycle")
+ {
+ // if power button is masked, ignore this
+ if (!powerButtonMask)
+ {
+ sendPowerControlEvent(Event::powerCycleRequest);
+ addRestartCause(RestartCause::command);
+ }
+ else
+ {
+ lg2::info("Power Button Masked.");
+ throw std::invalid_argument("Transition Request Masked");
+ return 0;
+ }
}
else
{
- lg2::info("Power Button Masked.");
- throw std::invalid_argument("Transition Request Masked");
+ lg2::error("Unrecognized chassis state transition request.");
+ throw std::invalid_argument("Unrecognized Transition Request");
return 0;
}
- }
- else if (requested == "xyz.openbmc_project.State.Chassis.Transition.On")
- {
- // if power button is masked, ignore this
- if (!powerButtonMask)
- {
- sendPowerControlEvent(Event::powerOnRequest);
- addRestartCause(RestartCause::command);
- }
- else
- {
- lg2::info("Power Button Masked.");
- throw std::invalid_argument("Transition Request Masked");
- return 0;
- }
- }
- else if (requested ==
- "xyz.openbmc_project.State.Chassis.Transition.PowerCycle")
- {
- // if power button is masked, ignore this
- if (!powerButtonMask)
- {
- sendPowerControlEvent(Event::powerCycleRequest);
- addRestartCause(RestartCause::command);
- }
- else
- {
- lg2::info("Power Button Masked.");
- throw std::invalid_argument("Transition Request Masked");
- return 0;
- }
- }
- else
- {
- lg2::error("Unrecognized chassis state transition request.");
- throw std::invalid_argument("Unrecognized Transition Request");
- return 0;
- }
- resp = requested;
- return 1;
- });
+ resp = requested;
+ return 1;
+ });
chassisIface->register_property("CurrentPowerState",
std::string(getChassisState(powerState)));
chassisIface->register_property("LastStateChangeTime", getCurrentTimeMs());
@@ -3188,21 +3199,22 @@
"RequestedPowerTransition",
std::string("xyz.openbmc_project.State.Chassis.Transition.On"),
[](const std::string& requested, std::string& resp) {
- if (requested ==
- "xyz.openbmc_project.State.Chassis.Transition.PowerCycle")
- {
- systemReset();
- addRestartCause(RestartCause::command);
- }
- else
- {
- lg2::error("Unrecognized chassis system state transition request.");
- throw std::invalid_argument("Unrecognized Transition Request");
- return 0;
- }
- resp = requested;
- return 1;
- });
+ if (requested ==
+ "xyz.openbmc_project.State.Chassis.Transition.PowerCycle")
+ {
+ systemReset();
+ addRestartCause(RestartCause::command);
+ }
+ else
+ {
+ lg2::error(
+ "Unrecognized chassis system state transition request.");
+ throw std::invalid_argument("Unrecognized Transition Request");
+ return 0;
+ }
+ resp = requested;
+ return 1;
+ });
chassisSysIface->register_property(
"CurrentPowerState", std::string(getChassisState(powerState)));
chassisSysIface->register_property("LastStateChangeTime",
@@ -3230,30 +3242,33 @@
"RequestedPowerTransition",
std::string("xyz.openbmc_project.State.Chassis.Transition.On"),
[](const std::string& requested, std::string& resp) {
- if (requested == "xyz.openbmc_project.State.Chassis.Transition.On")
- {
- slotPowerOn();
- }
- else if (requested ==
- "xyz.openbmc_project.State.Chassis.Transition.Off")
- {
- slotPowerOff();
- }
- else if (requested ==
- "xyz.openbmc_project.State.Chassis.Transition.PowerCycle")
- {
- slotPowerCycle();
- }
- else
- {
- lg2::error(
- "Unrecognized chassis system state transition request.\n");
- throw std::invalid_argument("Unrecognized Transition Request");
- return 0;
- }
- resp = requested;
- return 1;
- });
+ if (requested ==
+ "xyz.openbmc_project.State.Chassis.Transition.On")
+ {
+ slotPowerOn();
+ }
+ else if (requested ==
+ "xyz.openbmc_project.State.Chassis.Transition.Off")
+ {
+ slotPowerOff();
+ }
+ else if (
+ requested ==
+ "xyz.openbmc_project.State.Chassis.Transition.PowerCycle")
+ {
+ slotPowerCycle();
+ }
+ else
+ {
+ lg2::error(
+ "Unrecognized chassis system state transition request.\n");
+ throw std::invalid_argument(
+ "Unrecognized Transition Request");
+ return 0;
+ }
+ resp = requested;
+ return 1;
+ });
chassisSlotIface->register_property(
"CurrentPowerState", std::string(getSlotState(slotPowerState)));
chassisSlotIface->register_property("LastStateChangeTime",
@@ -3274,33 +3289,34 @@
powerButtonIface->register_property(
"ButtonMasked", false, [](const bool requested, bool& current) {
- if (requested)
- {
- if (powerButtonMask)
+ if (requested)
{
- return 1;
+ if (powerButtonMask)
+ {
+ return 1;
+ }
+ if (!setGPIOOutput(powerOutConfig.lineName,
+ !powerOutConfig.polarity,
+ powerButtonMask))
+ {
+ throw std::runtime_error("Failed to request GPIO");
+ return 0;
+ }
+ lg2::info("Power Button Masked.");
}
- if (!setGPIOOutput(powerOutConfig.lineName,
- !powerOutConfig.polarity, powerButtonMask))
+ else
{
- throw std::runtime_error("Failed to request GPIO");
- return 0;
+ if (!powerButtonMask)
+ {
+ return 1;
+ }
+ lg2::info("Power Button Un-masked");
+ powerButtonMask.reset();
}
- lg2::info("Power Button Masked.");
- }
- else
- {
- if (!powerButtonMask)
- {
- return 1;
- }
- lg2::info("Power Button Un-masked");
- powerButtonMask.reset();
- }
- // Update the mask setting
- current = requested;
- return 1;
- });
+ // Update the mask setting
+ current = requested;
+ return 1;
+ });
// Check power button state
bool powerButtonPressed;
@@ -3329,33 +3345,34 @@
resetButtonIface->register_property(
"ButtonMasked", false, [](const bool requested, bool& current) {
- if (requested)
- {
- if (resetButtonMask)
+ if (requested)
{
- return 1;
+ if (resetButtonMask)
+ {
+ return 1;
+ }
+ if (!setGPIOOutput(resetOutConfig.lineName,
+ !resetOutConfig.polarity,
+ resetButtonMask))
+ {
+ throw std::runtime_error("Failed to request GPIO");
+ return 0;
+ }
+ lg2::info("Reset Button Masked.");
}
- if (!setGPIOOutput(resetOutConfig.lineName,
- !resetOutConfig.polarity, resetButtonMask))
+ else
{
- throw std::runtime_error("Failed to request GPIO");
- return 0;
+ if (!resetButtonMask)
+ {
+ return 1;
+ }
+ lg2::info("Reset Button Un-masked");
+ resetButtonMask.reset();
}
- lg2::info("Reset Button Masked.");
- }
- else
- {
- if (!resetButtonMask)
- {
- return 1;
- }
- lg2::info("Reset Button Un-masked");
- resetButtonMask.reset();
- }
- // Update the mask setting
- current = requested;
- return 1;
- });
+ // Update the mask setting
+ current = requested;
+ return 1;
+ });
// Check reset button state
bool resetButtonPressed;
@@ -3383,25 +3400,25 @@
nmiButtonIface->register_property(
"ButtonMasked", false, [](const bool requested, bool& current) {
- if (nmiButtonMasked == requested)
- {
- // NMI button mask is already set as requested, so no change
+ if (nmiButtonMasked == requested)
+ {
+ // NMI button mask is already set as requested, so no change
+ return 1;
+ }
+ if (requested)
+ {
+ lg2::info("NMI Button Masked.");
+ nmiButtonMasked = true;
+ }
+ else
+ {
+ lg2::info("NMI Button Un-masked.");
+ nmiButtonMasked = false;
+ }
+ // Update the mask setting
+ current = nmiButtonMasked;
return 1;
- }
- if (requested)
- {
- lg2::info("NMI Button Masked.");
- nmiButtonMasked = true;
- }
- else
- {
- lg2::info("NMI Button Un-masked.");
- nmiButtonMasked = false;
- }
- // Update the mask setting
- current = nmiButtonMasked;
- return 1;
- });
+ });
// Check NMI button state
bool nmiButtonPressed;
@@ -3505,22 +3522,23 @@
"RequestedRestartCause",
std::string("xyz.openbmc_project.State.Host.RestartCause.Unknown"),
[](const std::string& requested, std::string& resp) {
- if (requested ==
- "xyz.openbmc_project.State.Host.RestartCause.WatchdogTimer")
- {
- addRestartCause(RestartCause::watchdog);
- }
- else
- {
- throw std::invalid_argument("Unrecognized RestartCause Request");
- return 0;
- }
+ if (requested ==
+ "xyz.openbmc_project.State.Host.RestartCause.WatchdogTimer")
+ {
+ addRestartCause(RestartCause::watchdog);
+ }
+ else
+ {
+ throw std::invalid_argument(
+ "Unrecognized RestartCause Request");
+ return 0;
+ }
- lg2::info("RestartCause requested: {RESTART_CAUSE}", "RESTART_CAUSE",
- requested);
- resp = requested;
- return 1;
- });
+ lg2::info("RestartCause requested: {RESTART_CAUSE}",
+ "RESTART_CAUSE", requested);
+ resp = requested;
+ return 1;
+ });
restartCauseIface->initialize();