Lines Matching full:area
118 lg2::error("FRU data field extends past end of FRU area data"); in decodeFRUData()
205 * falling under other field area
208 * currentArea: Index of current area offset to be compared against all area
210 * len: Length of current area space and it is a multiple of 8 bytes
228 lg2::error("Error: Fru area is out of range"); in verifyOffset()
235 lg2::error("Error: Fru area index is out of range"); in verifyOffset()
243 for (fruAreas area = fruAreas::fruAreaInternal; in verifyOffset() local
244 area <= fruAreas::fruAreaMultirecord; ++area) in verifyOffset()
247 if (area == currentArea) in verifyOffset()
252 unsigned int areaIndex = getHeaderAreaFieldOffset(area); in verifyOffset()
255 lg2::error("Error: Fru area index is out of range"); in verifyOffset()
260 // if areaOffset is 0 means this area is not available so skip in verifyOffset()
271 getFruAreaName(area)); in verifyOffset()
309 /* Verify area offset */ in parseMultirecordUUID()
366 DecodeState& state, bool isLangEng, const fruAreas& area, in decodeField() argument
376 name = std::string(getFruAreaName(area)) + "_" + in decodeField()
382 name = std::string(getFruAreaName(area)) + "_" + fruCustomFieldName + in decodeField()
425 "Mandatory fields absent in FRU area {AREA} after {NAME}", in decodeField()
426 "AREA", getFruAreaName(area), "NAME", name); in decodeField()
449 for (fruAreas area = fruAreas::fruAreaChassis; in formatIPMIFRU() local
450 area <= fruAreas::fruAreaProduct; ++area) in formatIPMIFRU()
452 size_t offset = *(fruBytes.begin() + getHeaderAreaFieldOffset(area)); in formatIPMIFRU()
474 /* Verify other area offset for overlap with current area by passing in formatIPMIFRU()
475 * length of current area offset pointed by *fruBytesIter in formatIPMIFRU()
477 if (!verifyOffset(fruBytes, area, *fruBytesIter)) in formatIPMIFRU()
493 ss << "Checksum error in FRU area " << getFruAreaName(area) << "\n"; in formatIPMIFRU()
502 /* Set default language flag to true as Chassis Fru area are always in formatIPMIFRU()
507 switch (area) in formatIPMIFRU()
562 "Internal error: unexpected FRU area index: {INDEX} ", in formatIPMIFRU()
563 "INDEX", static_cast<int>(area)); in formatIPMIFRU()
573 state, isLangEng, area, result); in formatIPMIFRU()
588 lg2::error("Non-zero byte after EndOfFields in FRU area {AREA}", in formatIPMIFRU()
589 "AREA", getFruAreaName(area)); in formatIPMIFRU()
602 // Calculate new checksum for fru info area
616 // Update new fru area length &
618 // Return the offset of the area checksum byte
844 for (fruAreas area = fruAreas::fruAreaInternal; in readFRUContents() local
845 area <= fruAreas::fruAreaMultirecord; ++area) in readFRUContents()
848 unsigned int areaOffset = device[getHeaderAreaFieldOffset(area)]; in readFRUContents()
857 * 0 if that area is not present in readFRUContents()
862 … "Fru area offsets are not in required order as per Section 17 of Fru specification"); in readFRUContents()
867 // MultiRecords are different. area is not tracking section, it's in readFRUContents()
869 if (area == fruAreas::fruAreaMultirecord) in readFRUContents()
892 // device[area count] is the index to the last area because the 0th in readFRUContents()
898 // the multi-area record header is 5 bytes long. in readFRUContents()
905 // In multi-area, the area offset points to the 0th record, each in readFRUContents()
970 unsigned int getHeaderAreaFieldOffset(fruAreas area) in getHeaderAreaFieldOffset() argument
972 return static_cast<unsigned int>(area) + 1; in getHeaderAreaFieldOffset()
1019 lg2::debug("FRU area is too small to contain a valid header."); in updateAreaChecksum()
1024 lg2::debug("FRU area size is not a multiple of {SIZE} bytes.", "SIZE", in updateAreaChecksum()
1038 "FRU area checksum updated from {OLD_CHECKSUM} to {NEW_CHECKSUM}", in updateAreaChecksum()
1046 fruAreas area, std::span<const uint8_t> fruData, size_t areaOffset) in calculateAreaSize() argument
1048 switch (area) in calculateAreaSize()
1057 return fruData[areaOffset + 1] * fruBlockSize; // Area size in bytes in calculateAreaSize()
1060 // Internal area size: It is difference between the next area in calculateAreaSize()
1061 // offset and current area offset in calculateAreaSize()
1080 // Multirecord area size. in calculateAreaSize()
1081 return fruData.size() - areaOffset; // Area size in bytes in calculateAreaSize()
1083 lg2::error("Invalid FRU area: {AREA}", "AREA", in calculateAreaSize()
1084 static_cast<int>(area)); in calculateAreaSize()
1112 // Iterate through all areas & store each area data in a vector. in disassembleFruData()
1113 for (fruAreas area = fruAreas::fruAreaInternal; in disassembleFruData() local
1114 area <= fruAreas::fruAreaMultirecord; ++area) in disassembleFruData()
1116 size_t areaOffset = fruData[getHeaderAreaFieldOffset(area)]; in disassembleFruData()
1120 // Store empty area data for areas that are not present in disassembleFruData()
1127 calculateAreaSize(area, fruData, areaOffset); in disassembleFruData()
1135 lg2::error("Area offset + size exceeds FRU data size."); in disassembleFruData()
1177 lg2::info("Invalid FRU area: {AREA}", "AREA", in findOrCreateField()
1238 // this function assumes a properly sized and formatted area in findEndOfFieldMarker()
1281 lg2::error("Field {FIELD} not found in area {AREA}", "FIELD", in setField()
1282 propertyName, "AREA", getFruAreaName(fruAreaToUpdate)); in setField()
1298 lg2::error("Failed to find the size of the area"); in setField()
1310 … "FRU area {AREA} resize is disabled, cannot increase size from {OLD_SIZE} to {NEW_SIZE}", in setField()
1311 "AREA", getFruAreaName(fruAreaToUpdate), "OLD_SIZE", in setField()
1332 for (const auto& area : areasData) in assembleFruData() local
1334 if ((area.size() % fruBlockSize) != 0U) in assembleFruData()
1336 lg2::error("unaligned area sent to assembleFruData"); in assembleFruData()
1347 fruData[1] = 0; // Internal area offset in assembleFruData()
1348 fruData[2] = 0; // Chassis area offset in assembleFruData()
1349 fruData[3] = 0; // Board area offset in assembleFruData()
1350 fruData[4] = 0; // Product area offset in assembleFruData()
1351 fruData[5] = 0; // Multirecord area offset in assembleFruData()
1357 for (fruAreas area = fruAreas::fruAreaInternal; in assembleFruData() local
1358 area <= fruAreas::fruAreaMultirecord; ++area) in assembleFruData()
1360 const auto& areaBytes = areasData[static_cast<size_t>(area)]; in assembleFruData()
1364 lg2::debug("Skipping empty area: {AREA}", "AREA", in assembleFruData()
1365 getFruAreaName(area)); in assembleFruData()
1369 // Set the area offset in the header in assembleFruData()
1370 fruData[getHeaderAreaFieldOffset(area)] = writeOffset / fruBlockSize; in assembleFruData()
1385 // Create a dummy area in areData variable based on specified fruArea
1415 lg2::debug("Invalid FRU area to create: {AREA}", "AREA", in createDummyArea()
1436 // Iterate FruArea Names and find start and size of the fru area that contains
1454 lg2::error("Can't parse area name for property {PROP} ", "PROP", in findFruAreaLocationAndField()
1473 // i.e. version, area length and language code in findFruAreaLocationAndField()
1483 lg2::error("FRU Area for {PROP} not present ", "PROP", propertyName); in findFruAreaLocationAndField()
1509 lg2::error("PropertyName doesn't exist in FRU Area Vectors: {PROP}", in findFruAreaLocationAndField()
1543 // Copy the FRU Area fields and properties into restFRUAreaFieldsData vector.
1758 // Extract area name (prefix before underscore) in updateAddProperty()
1764 lg2::error("Failed to get FRU area for property: {AREA}", "AREA", in updateAddProperty()
1786 "FRU area {AREA} not present and ENABLE_FRU_AREA_RESIZE is not set. " in updateAddProperty()
1788 "AREA", areaName); in updateAddProperty()
1793 lg2::error("Failed to create dummy area for {AREA}", "AREA", in updateAddProperty()