1 #include "fru_area.hpp" 2 3 #include "frup.hpp" 4 5 #include <phosphor-logging/lg2.hpp> 6 7 #include <cstdint> 8 #include <cstring> 9 IPMIFruArea(const uint8_t fruID,const ipmi_fru_area_type type)10IPMIFruArea::IPMIFruArea(const uint8_t fruID, const ipmi_fru_area_type type) : 11 fruID(fruID), type(type) 12 { 13 if (type == IPMI_FRU_AREA_INTERNAL_USE) 14 { 15 name = "INTERNAL_"; 16 } 17 else if (type == IPMI_FRU_AREA_CHASSIS_INFO) 18 { 19 name = "CHASSIS_"; 20 } 21 else if (type == IPMI_FRU_AREA_BOARD_INFO) 22 { 23 name = "BOARD_"; 24 } 25 else if (type == IPMI_FRU_AREA_PRODUCT_INFO) 26 { 27 name = "PRODUCT_"; 28 } 29 else if (type == IPMI_FRU_AREA_MULTI_RECORD) 30 { 31 name = "MULTI_"; 32 } 33 else 34 { 35 name = IPMI_FRU_AREA_TYPE_MAX; 36 lg2::error("type: {TYPE} is an invalid Area", "TYPE", type); 37 } 38 } 39 setData(const uint8_t * value,const size_t length)40void IPMIFruArea::setData(const uint8_t* value, const size_t length) 41 { 42 data.reserve(length); // pre-allocate the space. 43 data.insert(data.begin(), value, value + length); 44 } 45