Lines Matching full:ipmi

42 namespace intel_oem::ipmi::sel  namespace
55 return ::ipmi::sel::invalidTimeStamp; in getFileTimestamp()
60 static constexpr const char* selEraseTimestamp = "/var/lib/ipmi/sel_erase_time";
86 } // namespace intel_oem::ipmi::sel
88 namespace ipmi namespace
245 ipmi::Cc getFru(ipmi::Context::ptr& ctx, uint8_t devId) in getFru()
249 return ipmi::ccSuccess; in getFru()
255 return ipmi::ccSensorInvalid; in getFru()
262 return ipmi::ccBusy; in getFru()
282 return ipmi::ccResponseError; in getFru()
286 return ipmi::ccSuccess; in getFru()
375 * @returns ipmi completion code plus response data
378 ipmi::RspType<uint8_t, // Count
381 ipmiStorageReadFruData(ipmi::Context::ptr& ctx, uint8_t fruDeviceId, in ipmiStorageReadFruData()
386 return ipmi::responseInvalidFieldRequest(); in ipmiStorageReadFruData()
389 ipmi::Cc status = getFru(ctx, fruDeviceId); in ipmiStorageReadFruData()
391 if (status != ipmi::ccSuccess) in ipmiStorageReadFruData()
393 return ipmi::response(status); in ipmiStorageReadFruData()
407 return ipmi::responseReqDataLenExceeded(); in ipmiStorageReadFruData()
416 return ipmi::responseSuccess(static_cast<uint8_t>(requestedData.size()), in ipmiStorageReadFruData()
425 * @returns ipmi completion code plus response data
428 ipmi::RspType<uint8_t> ipmiStorageWriteFruData( in ipmiStorageWriteFruData()
429 ipmi::Context::ptr& ctx, uint8_t fruDeviceId, uint16_t fruInventoryOffset, in ipmiStorageWriteFruData()
434 return ipmi::responseInvalidFieldRequest(); in ipmiStorageWriteFruData()
439 ipmi::Cc status = getFru(ctx, fruDeviceId); in ipmiStorageWriteFruData()
440 if (status != ipmi::ccSuccess) in ipmiStorageWriteFruData()
442 return ipmi::response(status); in ipmiStorageWriteFruData()
464 return ipmi::responseInvalidFieldRequest(); in ipmiStorageWriteFruData()
477 return ipmi::responseSuccess(countWritten); in ipmiStorageWriteFruData()
483 * @returns IPMI completion code plus response data
487 ipmi::RspType<uint16_t, // inventorySize
489 ipmiStorageGetFruInvAreaInfo(ipmi::Context::ptr& ctx, uint8_t fruDeviceId) in ipmiStorageGetFruInvAreaInfo()
493 return ipmi::responseInvalidFieldRequest(); in ipmiStorageGetFruInvAreaInfo()
496 ipmi::Cc ret = getFru(ctx, fruDeviceId); in ipmiStorageGetFruInvAreaInfo()
497 if (ret != ipmi::ccSuccess) in ipmiStorageGetFruInvAreaInfo()
499 return ipmi::response(ret); in ipmiStorageGetFruInvAreaInfo()
505 return ipmi::responseSuccess(fruCache.size(), accessType); in ipmiStorageGetFruInvAreaInfo()
508 ipmi::Cc getFruSdrCount(ipmi::Context::ptr&, size_t& count) in getFruSdrCount()
511 return ipmi::ccSuccess; in getFruSdrCount()
514 ipmi::Cc getFruSdrs(ipmi::Context::ptr& ctx, size_t index, in getFruSdrs()
519 return ipmi::ccInvalidFieldRequest; in getFruSdrs()
555 return ipmi::ccResponseError; in getFruSdrs()
575 return ipmi::ccResponseError; in getFruSdrs()
607 "xyz.openbmc_project.Inventory.Decorator.Ipmi"); in getFruSdrs()
620 std::fprintf(stderr, "Ipmi or FruDevice Decorator interface " in getFruSdrs()
690 return ipmi::ccSuccess; in getFruSdrs()
697 std::filesystem::directory_iterator(intel_oem::ipmi::sel::selLogDir)) in getSELLogFiles()
700 if (boost::starts_with(filename, intel_oem::ipmi::sel::selLogFilename)) in getSELLogFiles()
704 intel_oem::ipmi::sel::selLogDir / filename); in getSELLogFiles()
783 return ipmi::sel::lastEntry; in getNextRecordID()
810 ipmi::RspType<uint8_t, // SEL version
818 constexpr uint8_t selVersion = ipmi::sel::selVersion; in ipmiStorageGetSELInfo()
820 uint32_t addTimeStamp = intel_oem::ipmi::sel::getFileTimestamp( in ipmiStorageGetSELInfo()
821 intel_oem::ipmi::sel::selLogDir / intel_oem::ipmi::sel::selLogFilename); in ipmiStorageGetSELInfo()
822 uint32_t eraseTimeStamp = intel_oem::ipmi::sel::erase_time::get(); in ipmiStorageGetSELInfo()
824 intel_oem::ipmi::sel::selOperationSupport; in ipmiStorageGetSELInfo()
828 return ipmi::responseSuccess(selVersion, entries, freeSpace, addTimeStamp, in ipmiStorageGetSELInfo()
840 std::array<uint8_t, intel_oem::ipmi::sel::systemEventSize>>; // Event Data
843 std::array<uint8_t, intel_oem::ipmi::sel::oemTsEventSize>>; // Event Data
845 std::array<uint8_t, intel_oem::ipmi::sel::oemEventSize>; // Event Data
847 ipmi::RspType<uint16_t, // Next Record ID
857 if (offset != 0 || size != ipmi::sel::entireRecord) in ipmiStorageGetSELEntry()
859 return ipmi::responseRetBytesUnavailable(); in ipmiStorageGetSELEntry()
868 return ipmi::responseInvalidReservationId(); in ipmiStorageGetSELEntry()
876 return ipmi::responseSensorInvalid(); in ipmiStorageGetSELEntry()
881 if (targetID == ipmi::sel::firstEntry) in ipmiStorageGetSELEntry()
887 return ipmi::responseUnspecifiedError(); in ipmiStorageGetSELEntry()
892 return ipmi::responseUnspecifiedError(); in ipmiStorageGetSELEntry()
895 else if (targetID == ipmi::sel::lastEntry) in ipmiStorageGetSELEntry()
901 return ipmi::responseUnspecifiedError(); in ipmiStorageGetSELEntry()
914 return ipmi::responseSensorInvalid(); in ipmiStorageGetSELEntry()
924 return ipmi::responseUnspecifiedError(); in ipmiStorageGetSELEntry()
931 return ipmi::responseUnspecifiedError(); in ipmiStorageGetSELEntry()
941 return ipmi::responseUnspecifiedError(); in ipmiStorageGetSELEntry()
956 return ipmi::responseUnspecifiedError(); in ipmiStorageGetSELEntry()
962 return ipmi::responseUnspecifiedError(); in ipmiStorageGetSELEntry()
965 if (recordType == intel_oem::ipmi::sel::systemEvent) in ipmiStorageGetSELEntry()
971 uint32_t timestamp = ipmi::sel::invalidTimeStamp; in ipmiStorageGetSELEntry()
978 uint8_t evmRev = intel_oem::ipmi::sel::eventMsgRev; in ipmiStorageGetSELEntry()
1022 std::array<uint8_t, intel_oem::ipmi::sel::systemEventSize> eventData{}; in ipmiStorageGetSELEntry()
1027 return ipmi::responseSuccess( in ipmiStorageGetSELEntry()
1032 else if (recordType >= intel_oem::ipmi::sel::oemTsEventFirst && in ipmiStorageGetSELEntry()
1033 recordType <= intel_oem::ipmi::sel::oemTsEventLast) in ipmiStorageGetSELEntry()
1039 uint32_t timestamp = ipmi::sel::invalidTimeStamp; in ipmiStorageGetSELEntry()
1046 std::array<uint8_t, intel_oem::ipmi::sel::oemTsEventSize> eventData{}; in ipmiStorageGetSELEntry()
1051 return ipmi::responseSuccess(nextRecordID, recordID, recordType, in ipmiStorageGetSELEntry()
1054 else if (recordType >= intel_oem::ipmi::sel::oemEventFirst) in ipmiStorageGetSELEntry()
1057 std::array<uint8_t, intel_oem::ipmi::sel::oemEventSize> eventData{}; in ipmiStorageGetSELEntry()
1062 return ipmi::responseSuccess(nextRecordID, recordID, recordType, in ipmiStorageGetSELEntry()
1066 return ipmi::responseUnspecifiedError(); in ipmiStorageGetSELEntry()
1069 ipmi::RspType<uint16_t> ipmiStorageAddSELEntry( in ipmiStorageAddSELEntry()
1075 // Per the IPMI spec, need to cancel any reservation when a SEL entry is in ipmiStorageAddSELEntry()
1081 intel_oem::ipmi::sel::checkRedfishHooks( in ipmiStorageAddSELEntry()
1086 return ipmi::responseSuccess(responseID); in ipmiStorageAddSELEntry()
1089 ipmi::RspType<uint8_t> ipmiStorageClearSEL( in ipmiStorageClearSEL()
1090 ipmi::Context::ptr&, uint16_t reservationID, in ipmiStorageClearSEL()
1095 return ipmi::responseInvalidReservationId(); in ipmiStorageClearSEL()
1101 return ipmi::responseInvalidFieldRequest(); in ipmiStorageClearSEL()
1106 if (eraseOperation == ipmi::sel::getEraseStatus) in ipmiStorageClearSEL()
1108 return ipmi::responseSuccess(ipmi::sel::eraseComplete); in ipmiStorageClearSEL()
1112 if (eraseOperation != ipmi::sel::initiateErase) in ipmiStorageClearSEL()
1114 return ipmi::responseInvalidFieldRequest(); in ipmiStorageClearSEL()
1117 // Per the IPMI spec, need to cancel any reservation when the SEL is in ipmiStorageClearSEL()
1122 intel_oem::ipmi::sel::erase_time::save(); in ipmiStorageClearSEL()
1150 return ipmi::responseSuccess(ipmi::sel::eraseComplete); in ipmiStorageClearSEL()
1153 ipmi::RspType<uint32_t> ipmiStorageGetSELTime() in ipmiStorageGetSELTime()
1159 return ipmi::responseUnspecifiedError(); in ipmiStorageGetSELTime()
1162 return ipmi::responseSuccess(selTime.tv_sec); in ipmiStorageGetSELTime()
1165 ipmi::RspType<> ipmiStorageSetSELTime([[maybe_unused]] uint32_t selTime) in ipmiStorageSetSELTime()
1168 return ipmi::responseInvalidCommand(); in ipmiStorageSetSELTime()
1238 ipmi::registerHandler(ipmi::prioOemBase, ipmi::netFnStorage, in registerStorageFunctions()
1239 ipmi::storage::cmdGetFruInventoryAreaInfo, in registerStorageFunctions()
1240 ipmi::Privilege::User, ipmiStorageGetFruInvAreaInfo); in registerStorageFunctions()
1242 ipmi::registerHandler(ipmi::prioOpenBmcBase, ipmi::netFnStorage, in registerStorageFunctions()
1243 ipmi::storage::cmdReadFruData, ipmi::Privilege::User, in registerStorageFunctions()
1247 ipmi::registerHandler(ipmi::prioOpenBmcBase, ipmi::netFnStorage, in registerStorageFunctions()
1248 ipmi::storage::cmdWriteFruData, in registerStorageFunctions()
1249 ipmi::Privilege::Operator, ipmiStorageWriteFruData); in registerStorageFunctions()
1252 ipmi::registerHandler(ipmi::prioOpenBmcBase, ipmi::netFnStorage, in registerStorageFunctions()
1253 ipmi::storage::cmdGetSelInfo, ipmi::Privilege::User, in registerStorageFunctions()
1257 ipmi::registerHandler(ipmi::prioOpenBmcBase, ipmi::netFnStorage, in registerStorageFunctions()
1258 ipmi::storage::cmdGetSelEntry, ipmi::Privilege::User, in registerStorageFunctions()
1262 ipmi::registerHandler(ipmi::prioOpenBmcBase, ipmi::netFnStorage, in registerStorageFunctions()
1263 ipmi::storage::cmdAddSelEntry, in registerStorageFunctions()
1264 ipmi::Privilege::Operator, ipmiStorageAddSELEntry); in registerStorageFunctions()
1267 ipmi::registerHandler(ipmi::prioOpenBmcBase, ipmi::netFnStorage, in registerStorageFunctions()
1268 ipmi::storage::cmdClearSel, ipmi::Privilege::Operator, in registerStorageFunctions()
1272 ipmi::registerHandler(ipmi::prioOpenBmcBase, ipmi::netFnStorage, in registerStorageFunctions()
1273 ipmi::storage::cmdGetSelTime, ipmi::Privilege::User, in registerStorageFunctions()
1277 ipmi::registerHandler(ipmi::prioOpenBmcBase, ipmi::netFnStorage, in registerStorageFunctions()
1278 ipmi::storage::cmdSetSelTime, in registerStorageFunctions()
1279 ipmi::Privilege::Operator, ipmiStorageSetSELTime); in registerStorageFunctions()
1282 } // namespace ipmi