1 // SPDX-License-Identifier: Apache-2.0 2 // SPDX-FileCopyrightText: Copyright 2017 Google Inc 3 4 #include "dbus_mode.hpp" 5 #include "manualcmds.hpp" 6 7 #include <ipmid/iana.hpp> 8 #include <ipmid/oemopenbmc.hpp> 9 #include <ipmid/oemrouter.hpp> 10 11 #include <cstdio> 12 #include <functional> 13 #include <memory> 14 15 namespace pid_control::ipmi 16 { 17 18 ZoneControlIpmiHandler handler(std::make_unique<DbusZoneControl>()); 19 20 } // namespace pid_control::ipmi 21 22 void setupGlobalOemFanControl() __attribute__((constructor)); 23 setupGlobalOemFanControl()24void setupGlobalOemFanControl() 25 { 26 oem::Router* router = oem::mutableRouter(); 27 28 std::fprintf( 29 stderr, 30 "Registering OEM:[%#08X], Cmd:[%#04X] for Manual Zone Control\n", 31 oem::obmcOemNumber, oem::Cmd::fanManualCmd); 32 33 router->registerHandler( 34 oem::obmcOemNumber, oem::Cmd::fanManualCmd, 35 std::bind_front(pid_control::ipmi::manualModeControl, 36 &pid_control::ipmi::handler)); 37 } 38