从《最蓝的眼睛》到现代Web开发:用CSS Grid和Flexbox构建“不可侵犯的独立王国”
2026/4/21 16:24:13
本节是分析介绍phosphor-bmc-code-mgmt仓库的代码的一些基本的流程逻辑。(持续更新)
参考资源:
phosphor-bmc-code-mgmt-master/bmc/image_manager_main.cpp代码流程如下:
intmain()--->sdbusplus::server::manager_tobjManager(bus,SOFTWARE_OBJPATH);--->bus.request_name(VERSION_BUSNAME);--->phosphor::software::manager::ManagerimageManager(bus);--->phosphor::software::manager::Watchwatch(loop,std::bind(std::mem_fn(&Manager::processImage),&imageManager,std::placeholders::_1));其中,定义了:
conf.set_quoted('SOFTWARE_OBJPATH','/xyz/openbmc_project/software')conf.set_quoted('VERSION_BUSNAME','xyz.openbmc_project.Software.Version')conf.set_quoted('IMG_UPLOAD_DIR',get_option('img-upload-dir'))///tmp/imagesconf.set_quoted('MANIFEST_FILE_NAME',get_option('manifest-file-name'))//MANIFEST实际dbus如下:
~# busctl introspect xyz.openbmc_project.Software.Version/xyz/openbmc_project/software NAME TYPE SIGNATURE RESULT/VALUE FLAGS org.freedesktop.DBus.Introspectable interface---.Introspect method-s-org.freedesktop.DBus.ObjectManager interface---.GetManagedObjects method-a{oa{sa{sv}}}-.InterfacesAdded signal oa{sa{sv}}--.InterfacesRemoved signal oas--org.freedesktop.DBus.Peer interface---.GetMachineId method-s-.Ping method---org.freedesktop.DBus.Properties interface---.Get method ss v-.GetAll method s a{sv}-.Set method ssv--.PropertiesChanged signal sa{sv}as--采取tar命令解压压缩包文件。
phosphor-bmc-code-mgmt-master/bmc/download_manager_main.cpp代码流程如下:
intmain()--->sdbusplus::server::manager_tobjManager(bus,SOFTWARE_OBJPATH);///xyz/openbmc_project/software--->phosphor::software::manager::Downloadmanager(bus,SOFTWARE_OBJPATH);--->bus.request_name(DOWNLOAD_BUSNAME);//xyz.openbmc_project.Software.Download实际dbus如下图:
~# busctl introspect xyz.openbmc_project.Software.Download/xyz/openbmc_project/software NAME TYPE SIGNATURE RESULT/VALUE FLAGS org.freedesktop.DBus.Introspectable interface---.Introspect method-s-org.freedesktop.DBus.ObjectManager interface---.GetManagedObjects method-a{oa{sa{sv}}}-.InterfacesAdded signal oa{sa{sv}}--.InterfacesRemoved signal oas