Lines Matching full:ipmi
39 static constexpr const char* ipmbBus = "xyz.openbmc_project.Ipmi.Channel.Ipmb";
40 static constexpr const char* ipmbObj = "/xyz/openbmc_project/Ipmi/Channel/Ipmb";
223 case makeCmdKey(ipmi::netFnApp, ipmi::app::cmdMasterWriteRead): in isMeCmdAllowed()
242 ipmi::Cc Bridging::handleIpmbChannel( in handleIpmbChannel()
243 ipmi::Context::ptr& ctx, const uint8_t tracking, in handleIpmbChannel()
246 ipmi::Manufacturing mtm; in handleIpmbChannel()
253 return ipmi::ccReqDataLenInvalid; in handleIpmbChannel()
257 if ((ctx->priv) != ipmi::Privilege::Admin) in handleIpmbChannel()
259 return ipmi::ccInsufficientPrivilege; in handleIpmbChannel()
269 return ipmi::ccParmOutOfRange; in handleIpmbChannel()
273 if (mtm.getMfgMode() == ipmi::SpecialMode::none) in handleIpmbChannel()
278 constexpr ipmi::Cc ccCmdNotSupportedInPresentState = 0xD5; in handleIpmbChannel()
288 return ipmi::ccParmOutOfRange; in handleIpmbChannel()
296 return ipmi::ccParmOutOfRange; in handleIpmbChannel()
315 return ipmi::ccUnspecifiedError; in handleIpmbChannel()
333 return ipmi::ccResponseError; in handleIpmbChannel()
342 return ipmi::ccBusy; in handleIpmbChannel()
357 return ipmi::ccSuccess; in handleIpmbChannel()
376 * @brief This command is used for bridging ipmi message between channels.
383 * @return IPMI completion code plus response data on success.
386 ipmi::RspType<std::vector<uint8_t> // responseData
388 ipmiAppSendMessage(ipmi::Context::ptr& ctx, const uint4_t channelNumber, in ipmiAppSendMessage()
391 ipmi::message::Payload& msg) in ipmiAppSendMessage()
399 return ipmi::responseParmOutOfRange(); in ipmiAppSendMessage()
407 return ipmi::responseParmOutOfRange(); in ipmiAppSendMessage()
410 ipmi::Cc returnVal; in ipmiAppSendMessage()
423 return ipmi::responseReqDataLenInvalid(); in ipmiAppSendMessage()
441 return ipmi::responseParmOutOfRange(); in ipmiAppSendMessage()
443 if (returnVal != ipmi::ccSuccess) in ipmiAppSendMessage()
445 return ipmi::response(returnVal); in ipmiAppSendMessage()
448 return ipmi::responseSuccess(rspData); in ipmiAppSendMessage()
455 * @return IPMI completion code plus response data on success.
460 ipmi::RspType<uint8_t, // channelNumber
463 ipmiAppGetMessage(ipmi::Context::ptr& ctx) in ipmiAppGetMessage()
465 ipmi::ChannelInfo chInfo; in ipmiAppGetMessage()
476 return ipmi::responseUnspecifiedError(); in ipmiAppGetMessage()
479 static_cast<uint8_t>(ipmi::EChannelMediumType::systemInterface)) in ipmiAppGetMessage()
484 return ipmi::responseCommandNotAvailable(); in ipmiAppGetMessage()
493 constexpr ipmi::Cc ipmiGetMessageCmdDataNotAvailable = 0x80; in ipmiAppGetMessage()
496 return ipmi::response(ipmiGetMessageCmdDataNotAvailable); in ipmiAppGetMessage()
517 return ipmi::responseSuccess(channelData, res); in ipmiAppGetMessage()
528 @return IPMI completion code plus Flags as response data on success.
530 ipmi::RspType<std::bitset<8>> ipmiAppGetMessageFlags(ipmi::Context::ptr& ctx) in ipmiAppGetMessageFlags()
532 ipmi::ChannelInfo chInfo; in ipmiAppGetMessageFlags()
543 return ipmi::responseUnspecifiedError(); in ipmiAppGetMessageFlags()
546 static_cast<uint8_t>(ipmi::EChannelMediumType::systemInterface)) in ipmiAppGetMessageFlags()
551 return ipmi::responseCommandNotAvailable(); in ipmiAppGetMessageFlags()
579 ipmi::Value variant = ipmi::getDbusProperty( in ipmiAppGetMessageFlags()
590 return ipmi::responseUnspecifiedError(); in ipmiAppGetMessageFlags()
593 return ipmi::responseSuccess(getMsgFlagsRes); in ipmiAppGetMessageFlags()
607 * @return IPMI completion code on success
609 ipmi::RspType<> ipmiAppClearMessageFlags( in ipmiAppClearMessageFlags()
610 ipmi::Context::ptr& ctx, bool receiveMessage, bool eventMsgBufFull, in ipmiAppClearMessageFlags()
614 ipmi::ChannelInfo chInfo; in ipmiAppClearMessageFlags()
625 return ipmi::responseUnspecifiedError(); in ipmiAppClearMessageFlags()
628 static_cast<uint8_t>(ipmi::EChannelMediumType::systemInterface)) in ipmiAppClearMessageFlags()
633 return ipmi::responseCommandNotAvailable(); in ipmiAppClearMessageFlags()
638 return ipmi::responseInvalidFieldRequest(); in ipmiAppClearMessageFlags()
656 ipmi::setDbusProperty(*dbus, wdtService, wdtObjPath, wdtInterface, in ipmiAppClearMessageFlags()
665 return ipmi::responseUnspecifiedError(); in ipmiAppClearMessageFlags()
668 return ipmi::responseSuccess(); in ipmiAppClearMessageFlags()
679 std::array<uint8_t, intel_oem::ipmi::sel::systemEventSize>>; // Event Data
682 std::array<uint8_t, intel_oem::ipmi::sel::oemTsEventSize>>; // Event Data
684 std::array<uint8_t, intel_oem::ipmi::sel::oemEventSize>; // Event Data
688 * @returns IPMI completion code plus response data
700 ipmi::RspType<uint16_t, // Record ID
704 ipmiAppReadEventMessageBuffer(ipmi::Context::ptr& ctx) in ipmiAppReadEventMessageBuffer()
706 ipmi::ChannelInfo chInfo; in ipmiAppReadEventMessageBuffer()
717 return ipmi::responseUnspecifiedError(); in ipmiAppReadEventMessageBuffer()
720 static_cast<uint8_t>(ipmi::EChannelMediumType::systemInterface)) in ipmiAppReadEventMessageBuffer()
725 return ipmi::responseCommandNotAvailable(); in ipmiAppReadEventMessageBuffer()
737 std::array<uint8_t, intel_oem::ipmi::sel::systemEventSize> eventData{}; in ipmiAppReadEventMessageBuffer()
744 return ipmi::responseSuccess( in ipmiAppReadEventMessageBuffer()
753 ipmi::registerHandler(ipmi::prioOemBase, ipmi::netFnApp, in register_bridging_functions()
754 ipmi::app::cmdClearMessageFlags, in register_bridging_functions()
755 ipmi::Privilege::User, ipmiAppClearMessageFlags); in register_bridging_functions()
757 ipmi::registerHandler(ipmi::prioOemBase, ipmi::netFnApp, in register_bridging_functions()
758 ipmi::app::cmdGetMessageFlags, ipmi::Privilege::User, in register_bridging_functions()
761 ipmi::registerHandler(ipmi::prioOemBase, ipmi::netFnApp, in register_bridging_functions()
762 ipmi::app::cmdGetMessage, ipmi::Privilege::User, in register_bridging_functions()
765 ipmi::registerHandler(ipmi::prioOemBase, ipmi::netFnApp, in register_bridging_functions()
766 ipmi::app::cmdSendMessage, ipmi::Privilege::User, in register_bridging_functions()
769 ipmi::registerHandler(ipmi::prioOemBase, ipmi::netFnApp, in register_bridging_functions()
770 ipmi::app::cmdReadEventMessageBuffer, in register_bridging_functions()
771 ipmi::Privilege::User, ipmiAppReadEventMessageBuffer); in register_bridging_functions()