1 /**
2  * Copyright © 2020 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  */
16 
17 #include "chassis.hpp"
18 
19 #include "system.hpp"
20 
21 namespace phosphor::power::regulators
22 {
23 
24 void Chassis::addToIDMap(IDMap& idMap)
25 {
26     // Add devices and their rails to the map
27     for (std::unique_ptr<Device>& device : devices)
28     {
29         device->addToIDMap(idMap);
30     }
31 }
32 
33 void Chassis::closeDevices(Services& services)
34 {
35     // Log debug message in journal
36     services.getJournal().logDebug("Closing devices in chassis " +
37                                    std::to_string(number));
38 
39     // Close devices
40     for (std::unique_ptr<Device>& device : devices)
41     {
42         device->close(services);
43     }
44 }
45 
46 void Chassis::configure(Services& services, System& system)
47 {
48     // Log info message in journal; important for verifying success of boot
49     services.getJournal().logInfo("Configuring chassis " +
50                                   std::to_string(number));
51 
52     // Configure devices
53     for (std::unique_ptr<Device>& device : devices)
54     {
55         device->configure(services, system, *this);
56     }
57 }
58 
59 void Chassis::monitorSensors(Services& services, System& system)
60 {
61     // Monitor sensors in each device
62     for (std::unique_ptr<Device>& device : devices)
63     {
64         device->monitorSensors(services, system, *this);
65     }
66 }
67 
68 } // namespace phosphor::power::regulators
69