| /** |
| * |
| * This file has a hardcoded resource id mapper for some machine- can be changed |
| * This would not be used once the PDR is implemented |
| * |
| */ |
| #include <stdplus/print.hpp> |
| #include <util/common.hpp> |
| |
| #include <cstdint> |
| #include <string> |
| #include <string_view> |
| #include <unordered_map> |
| |
| std::unordered_map<std::string_view, uint32_t> resourceIdMap = { |
| {"/redfish/v1/Chassis", 0x00000000}, |
| {"/redfish/v1/Chassis/Tray", 0x00010000}, |
| {"/redfish/v1/Chassis/SATA_0", 0x00010001}, |
| {"/redfish/v1/Chassis/SATA_1", 0x00010002}, |
| {"/redfish/v1/Chassis/SATA_2", 0x00010003}, |
| {"/redfish/v1/Chassis/SATA_3", 0x00010004}, |
| {"/redfish/v1/Chassis/SATA_4", 0x00010005}, |
| {"/redfish/v1/Chassis/SATA_5", 0x00010006}, |
| {"/redfish/v1/Chassis/SATA_6", 0x00010007}, |
| {"/redfish/v1/Chassis/SATA_7", 0x00010008}, |
| {"/redfish/v1/Chassis/SATA_8", 0x00010009}, |
| {"/redfish/v1/Chassis/SATA_9", 0x0001000a}, |
| {"/redfish/v1/Chassis/SATA_10", 0x0001000b}, |
| {"/redfish/v1/Chassis/SATA_11", 0x0001000c}, |
| {"/redfish/v1/Chassis/SATA_12", 0x0001000d}, |
| {"/redfish/v1/Chassis/SATA_13", 0x0001000e}, |
| {"/redfish/v1/Chassis/SATA_14", 0x0001000f}, |
| {"/redfish/v1/Chassis/SATA_15", 0x00010010}, |
| {"/redfish/v1/Chassis/SATA_16", 0x00010011}, |
| {"/redfish/v1/Chassis/SATA_17", 0x00010012}, |
| {"/redfish/v1/Chassis/SATA_18", 0x00010013}, |
| {"/redfish/v1/Chassis/SATA_19", 0x00010014}, |
| {"/redfish/v1/Chassis/SATA_20", 0x00010015}, |
| {"/redfish/v1/Chassis/SATA_21", 0x00010016}, |
| {"/redfish/v1/Chassis/SATA_22", 0x00010017}, |
| {"/redfish/v1/Chassis/SATA_23", 0x00010018}, |
| {"/redfish/v1/Chassis/Tray/Sensors", 0x00020000}, |
| {"/redfish/v1/Chassis/SATA_0/Sensors", 0x00020001}, |
| {"/redfish/v1/Chassis/SATA_1/Sensors", 0x00020002}, |
| {"/redfish/v1/Chassis/SATA_2/Sensors", 0x00020003}, |
| {"/redfish/v1/Chassis/SATA_3/Sensors", 0x00020004}, |
| {"/redfish/v1/Chassis/SATA_4/Sensors", 0x00020005}, |
| {"/redfish/v1/Chassis/SATA_5/Sensors", 0x00020006}, |
| {"/redfish/v1/Chassis/SATA_6/Sensors", 0x00020007}, |
| {"/redfish/v1/Chassis/SATA_7/Sensors", 0x00020008}, |
| {"/redfish/v1/Chassis/SATA_8/Sensors", 0x00020009}, |
| {"/redfish/v1/Chassis/SATA_9/Sensors", 0x0002000a}, |
| {"/redfish/v1/Chassis/SATA_10/Sensors", 0x0002000b}, |
| {"/redfish/v1/Chassis/SATA_11/Sensors", 0x0002000c}, |
| {"/redfish/v1/Chassis/SATA_12/Sensors", 0x0002000d}, |
| {"/redfish/v1/Chassis/SATA_13/Sensors", 0x0002000e}, |
| {"/redfish/v1/Chassis/SATA_14/Sensors", 0x0002000f}, |
| {"/redfish/v1/Chassis/SATA_15/Sensors", 0x00020010}, |
| {"/redfish/v1/Chassis/SATA_16/Sensors", 0x00020011}, |
| {"/redfish/v1/Chassis/SATA_17/Sensors", 0x00020012}, |
| {"/redfish/v1/Chassis/SATA_18/Sensors", 0x00020013}, |
| {"/redfish/v1/Chassis/SATA_19/Sensors", 0x00020014}, |
| {"/redfish/v1/Chassis/SATA_20/Sensors", 0x00020015}, |
| {"/redfish/v1/Chassis/SATA_21/Sensors", 0x00020016}, |
| {"/redfish/v1/Chassis/SATA_22/Sensors", 0x00020017}, |
| {"/redfish/v1/Chassis/SATA_23/Sensors", 0x00020018}, |
| {"/redfish/v1/Chassis/Tray/Sensors/vol_p12v_scaled", 0x00030000}, |
| {"/redfish/v1/Chassis/Tray/Sensors/vol_p5v1_scaled", 0x00030001}, |
| {"/redfish/v1/Chassis/Tray/Sensors/vol_p5v2_scaled", 0x00030002}, |
| {"/redfish/v1/Chassis/Tray/Sensors/vol_p3v3_aux_scaled", 0x00030003}, |
| {"/redfish/v1/Chassis/Tray/Sensors/vol_p1v8_scaled", 0x00030004}, |
| {"/redfish/v1/Chassis/Tray/Sensors/vol_p0v86_scaled", 0x00030005}, |
| {"/redfish/v1/Chassis/Tray/Sensors/vol_p1v45_scaled", 0x00030006}, |
| {"/redfish/v1/Chassis/Tray/Sensors/temp_i2tang", 0x00030007}, |
| {"/redfish/v1/Chassis/Tray/Sensors/hsc_temp", 0x00030008}, |
| {"/redfish/v1/Chassis/Tray/Sensors/hsc_vin", 0x00030009}, |
| {"/redfish/v1/Chassis/Tray/Sensors/hsc_vout", 0x0003000a}, |
| {"/redfish/v1/Chassis/Tray/Sensors/hsc_pin", 0x0003000b}, |
| {"/redfish/v1/Chassis/Tray/Sensors/hsc_iout", 0x0003000c}, |
| {"/redfish/v1/Chassis/Tray/Sensors/hsc_peak_iout", 0x0003000d}, |
| {"/redfish/v1/Chassis/Tray/Sensors/hsc_peak_vin", 0x0003000e}, |
| {"/redfish/v1/Chassis/Tray/Sensors/hsc_peak_temp", 0x0003000f}, |
| {"/redfish/v1/Chassis/Tray/Sensors/hsc_peak_pin", 0x00030010}, |
| {"/redfish/v1/Chassis/Tray/Sensors/brick_p12v_temp", 0x00030011}, |
| {"/redfish/v1/Chassis/Tray/Sensors/brick_p12v_vin", 0x00030012}, |
| {"/redfish/v1/Chassis/Tray/Sensors/brick_p12v_vout", 0x00030013}, |
| {"/redfish/v1/Chassis/Tray/Sensors/brick_p12v_iout", 0x00030014}, |
| {"/redfish/v1/Chassis/Tray/Sensors/brick_p12v_pout", 0x00030015}, |
| {"/redfish/v1/Chassis/Tray/Sensors/p5v_1_vin", 0x00030016}, |
| {"/redfish/v1/Chassis/Tray/Sensors/p5v_1_vout", 0x00030017}, |
| {"/redfish/v1/Chassis/Tray/Sensors/p5v_1_iout", 0x00030018}, |
| {"/redfish/v1/Chassis/Tray/Sensors/p5v_1_temp", 0x00030019}, |
| {"/redfish/v1/Chassis/Tray/Sensors/p5v_2_vin", 0x0003001a}, |
| {"/redfish/v1/Chassis/Tray/Sensors/p5v_2_vout", 0x0003001b}, |
| {"/redfish/v1/Chassis/Tray/Sensors/p5v_2_iout", 0x0003001c}, |
| {"/redfish/v1/Chassis/Tray/Sensors/p5v_2_temp", 0x0003001d}, |
| {"/redfish/v1/Chassis/Tray/Sensors/p0v86_vin", 0x0003001e}, |
| {"/redfish/v1/Chassis/Tray/Sensors/p0v86_vout", 0x0003001f}, |
| {"/redfish/v1/Chassis/Tray/Sensors/p0v86_iout", 0x00030020}, |
| {"/redfish/v1/Chassis/Tray/Sensors/p0v86_temp", 0x00030021}, |
| {"/redfish/v1/Chassis/Tray/Sensors/fan0_tach", 0x00030022}, |
| {"/redfish/v1/Chassis/Tray/Sensors/fan1_tach", 0x00030023}, |
| {"/redfish/v1/Chassis/Tray/Sensors/fan0_duty", 0x00030024}, |
| {"/redfish/v1/Chassis/Tray/Sensors/fan1_duty", 0x00030025}, |
| {"/redfish/v1/Chassis/Tray/Sensors/ioc_temp", 0x00030026}, |
| {"/redfish/v1/Chassis/SATA_0/Sensors/Drive_0t", 0x00030027}, |
| {"/redfish/v1/Chassis/SATA_1/Sensors/Drive_0t", 0x00030028}, |
| {"/redfish/v1/Chassis/SATA_2/Sensors/Drive_0t", 0x00030029}, |
| {"/redfish/v1/Chassis/SATA_3/Sensors/Drive_0t", 0x0003002a}, |
| {"/redfish/v1/Chassis/SATA_4/Sensors/Drive_0t", 0x0003002b}, |
| {"/redfish/v1/Chassis/SATA_5/Sensors/Drive_0t", 0x0003002c}, |
| {"/redfish/v1/Chassis/SATA_6/Sensors/Drive_0t", 0x0003002d}, |
| {"/redfish/v1/Chassis/SATA_7/Sensors/Drive_0t", 0x0003002e}, |
| {"/redfish/v1/Chassis/SATA_8/Sensors/Drive_0t", 0x0003002f}, |
| {"/redfish/v1/Chassis/SATA_9/Sensors/Drive_0t", 0x00030030}, |
| {"/redfish/v1/Chassis/SATA_10/Sensors/Drive_0t", 0x00030031}, |
| {"/redfish/v1/Chassis/SATA_11/Sensors/Drive_0t", 0x00030032}, |
| {"/redfish/v1/Chassis/SATA_12/Sensors/Drive_0t", 0x00030033}, |
| {"/redfish/v1/Chassis/SATA_13/Sensors/Drive_0t", 0x00030034}, |
| {"/redfish/v1/Chassis/SATA_14/Sensors/Drive_0t", 0x00030035}, |
| {"/redfish/v1/Chassis/SATA_15/Sensors/Drive_0t", 0x00030036}, |
| {"/redfish/v1/Chassis/SATA_16/Sensors/Drive_0t", 0x00030037}, |
| {"/redfish/v1/Chassis/SATA_17/Sensors/Drive_0t", 0x00030038}, |
| {"/redfish/v1/Chassis/SATA_18/Sensors/Drive_0t", 0x00030039}, |
| {"/redfish/v1/Chassis/SATA_19/Sensors/Drive_0t", 0x0003003a}, |
| {"/redfish/v1/Chassis/SATA_20/Sensors/Drive_0t", 0x0003003b}, |
| {"/redfish/v1/Chassis/SATA_21/Sensors/Drive_0t", 0x0003003c}, |
| {"/redfish/v1/Chassis/SATA_22/Sensors/Drive_0t", 0x0003003d}, |
| {"/redfish/v1/Chassis/SATA_23/Sensors/Drive_0t", 0x0003003e}, |
| {"/redfish/v1/Chassis/Tray/Sensors/host_fan0_pwm", 0x0003003f}, |
| {"/redfish/v1/Managers", 0x00040000}, |
| {"/redfish/v1/Managers/mbmc", 0x00050000}, |
| {"/redfish/v1/Chassis/SATA_0/Drives", 0x00060001}, |
| {"/redfish/v1/Chassis/SATA_1/Drives", 0x00060002}, |
| {"/redfish/v1/Chassis/SATA_2/Drives", 0x00060003}, |
| {"/redfish/v1/Chassis/SATA_3/Drives", 0x00060004}, |
| {"/redfish/v1/Chassis/SATA_4/Drives", 0x00060005}, |
| {"/redfish/v1/Chassis/SATA_5/Drives", 0x00060006}, |
| {"/redfish/v1/Chassis/SATA_6/Drives", 0x00060007}, |
| {"/redfish/v1/Chassis/SATA_7/Drives", 0x00060008}, |
| {"/redfish/v1/Chassis/SATA_8/Drives", 0x00060009}, |
| {"/redfish/v1/Chassis/SATA_9/Drives", 0x0006000a}, |
| {"/redfish/v1/Chassis/SATA_10/Drives", 0x0006000b}, |
| {"/redfish/v1/Chassis/SATA_11/Drives", 0x0006000c}, |
| {"/redfish/v1/Chassis/SATA_12/Drives", 0x0006000d}, |
| {"/redfish/v1/Chassis/SATA_13/Drives", 0x0006000e}, |
| {"/redfish/v1/Chassis/SATA_14/Drives", 0x0006000f}, |
| {"/redfish/v1/Chassis/SATA_15/Drives", 0x00060010}, |
| {"/redfish/v1/Chassis/SATA_16/Drives", 0x00060011}, |
| {"/redfish/v1/Chassis/SATA_17/Drives", 0x00060012}, |
| {"/redfish/v1/Chassis/SATA_18/Drives", 0x00060013}, |
| {"/redfish/v1/Chassis/SATA_19/Drives", 0x00060014}, |
| {"/redfish/v1/Chassis/SATA_20/Drives", 0x00060015}, |
| {"/redfish/v1/Chassis/SATA_21/Drives", 0x00060016}, |
| {"/redfish/v1/Chassis/SATA_22/Drives", 0x00060017}, |
| {"/redfish/v1/Chassis/SATA_23/Drives", 0x00060018}, |
| {"/redfish/v1/Chassis/SATA_0/Drives/SATA_0", 0x00070000}, |
| {"/redfish/v1/Chassis/SATA_1/Drives/SATA_1", 0x00070001}, |
| {"/redfish/v1/Chassis/SATA_2/Drives/SATA_2", 0x00070002}, |
| {"/redfish/v1/Chassis/SATA_3/Drives/SATA_3", 0x00070003}, |
| {"/redfish/v1/Chassis/SATA_4/Drives/SATA_4", 0x00070004}, |
| {"/redfish/v1/Chassis/SATA_5/Drives/SATA_5", 0x00070005}, |
| {"/redfish/v1/Chassis/SATA_6/Drives/SATA_6", 0x00070006}, |
| {"/redfish/v1/Chassis/SATA_7/Drives/SATA_7", 0x00070007}, |
| {"/redfish/v1/Chassis/SATA_8/Drives/SATA_8", 0x00070008}, |
| {"/redfish/v1/Chassis/SATA_9/Drives/SATA_9", 0x00070009}, |
| {"/redfish/v1/Chassis/SATA_10/Drives/SATA_10", 0x0007000a}, |
| {"/redfish/v1/Chassis/SATA_11/Drives/SATA_11", 0x0007000b}, |
| {"/redfish/v1/Chassis/SATA_12/Drives/SATA_12", 0x0007000c}, |
| {"/redfish/v1/Chassis/SATA_13/Drives/SATA_13", 0x0007000d}, |
| {"/redfish/v1/Chassis/SATA_14/Drives/SATA_14", 0x0007000e}, |
| {"/redfish/v1/Chassis/SATA_15/Drives/SATA_15", 0x0007000f}, |
| {"/redfish/v1/Chassis/SATA_16/Drives/SATA_16", 0x00070010}, |
| {"/redfish/v1/Chassis/SATA_17/Drives/SATA_17", 0x00070011}, |
| {"/redfish/v1/Chassis/SATA_18/Drives/SATA_18", 0x00070012}, |
| {"/redfish/v1/Chassis/SATA_19/Drives/SATA_19", 0x00070013}, |
| {"/redfish/v1/Chassis/SATA_20/Drives/SATA_20", 0x00070014}, |
| {"/redfish/v1/Chassis/SATA_21/Drives/SATA_21", 0x00070015}, |
| {"/redfish/v1/Chassis/SATA_22/Drives/SATA_22", 0x00070016}, |
| {"/redfish/v1/Chassis/SATA_23/Drives/SATA_23", 0x00070017}, |
| {"/redfish/v1/UpdateService", 0x00080000}, |
| {"/redfish/v1/UpdateService/FirmwareInventory", 0x000a0000}, |
| {"/redfish/v1/UpdateService/FirmwareInventory/mbmc", 0x00090000}, |
| {"/redfish/v1/Chassis/Tray/Controls", 0x000c0000}, |
| {"/redfish/v1/Chassis/Tray/Controls/HDD_SetPoint", 0x000b0000}, |
| {"/redfish/v1/Chassis/Tray/Sensors/p12v_cem_imon", 0x00030040}, |
| {"/redfish/v1/Chassis/Tray/Sensors/p12v_cem", 0x00030041}, |
| {"/redfish/v1/Chassis/Tray/Sensors/mb_pwr_status", 0x00030042}, |
| {"/redfish/v1/Chassis/Tray/Sensors/fan0_imon", 0x00030043}, |
| {"/redfish/v1/Chassis/Tray/Sensors/fan1_imon", 0x00030044}, |
| {"/redfish/v1/Chassis/Tray/Controls/fans", 0x000b0001}, |
| {"/redfish/v1/Storage", 0x000d0000}, |
| {"/redfish/v1/Storage/SATA", 0x000e0000}, |
| {"/redfish/v1/Storage/SATA/Controllers", 0x000f0000}, |
| {"/redfish/v1/Storage/SATA/Controllers/ioc", 0x00100000} |
| // Whenever making a new entry make sure to check the resourceIds vector in |
| // rde_discovery.cpp to see if the parent dictionary is present or not |
| }; |
| |
| std::optional<uint32_t> getResourceIdForUri(std::string_view uri) |
| { |
| auto it = resourceIdMap.find(uri); |
| if (it != resourceIdMap.end()) |
| { |
| if (DEBUG) |
| { |
| stdplus::print(stderr, "Resource id found: {}\n", |
| std::to_string(it->second)); |
| } |
| return it->second; |
| } |
| |
| // Ignore logs for unsupported resources |
| if (UNSUPPORTED_RESOURCES.find(std::string(uri)) == |
| UNSUPPORTED_RESOURCES.end()) |
| { |
| stdplus::print(stderr, "Resource id not found for uri: {}\n", uri); |
| } |
| return std::nullopt; |
| } |