diff options
author | Mao, Andy <andy.mao@intel.com> | 2018-04-17 21:08:22 +0300 |
---|---|---|
committer | Gerrit Code Review <gerrit@fmygit6002.fm.intel.com> | 2018-04-17 21:08:22 +0300 |
commit | 04451a1d039ed65013546bff46c781d13b3c2620 (patch) | |
tree | db74c515a7e787d637e1bd46462cd6623810e38c /services | |
parent | 104dc9539690a7343df38b80130af3d82bcbb349 (diff) | |
parent | f5b47d597a62f9fde0e149675f4264da550a9f29 (diff) | |
download | provingground-04451a1d039ed65013546bff46c781d13b3c2620.tar.xz |
Merge "Add power control .yaml files"
Diffstat (limited to 'services')
3 files changed, 130 insertions, 1 deletions
diff --git a/services/chassis/PowerControl/CMakeLists.txt b/services/chassis/PowerControl/CMakeLists.txt index cc029ba..24d1cd9 100644 --- a/services/chassis/PowerControl/CMakeLists.txt +++ b/services/chassis/PowerControl/CMakeLists.txt @@ -8,6 +8,7 @@ set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) include(GNUInstallDirs) include_directories(${CMAKE_CURRENT_SOURCE_DIR}/inc) +include_directories(${CMAKE_CURRENT_BINARY_DIR}) set(DBUS_OBJECT_NAME "xyz/openbmc_project/Chassis/Control/Power") set(DBUS_INTF_NAME "xyz.openbmc_project.Chassis.Control.Power") @@ -20,6 +21,11 @@ set(SRC_FILES src/main.cpp ) +set(GENERATED_SRC_FILES + ${DBUS_OBJECT_NAME}/error.cpp + ${DBUS_OBJECT_NAME}/server.cpp +) + # import libsystemd find_package(PkgConfig REQUIRED) pkg_check_modules(SYSTEMD libsystemd REQUIRED) @@ -57,7 +63,33 @@ if(ENABLE_GTEST) add_test(NAME timertest COMMAND timertest) endif() -add_executable(${PROJECT_NAME} ${SRC_FILES}) +add_custom_command( + OUTPUT ${DBUS_OBJECT_NAME}/error.hpp + OUTPUT ${DBUS_OBJECT_NAME}/error.cpp + COMMAND mkdir -p ${DBUS_OBJECT_NAME} + COMMAND ${SDBUSPLUSPLUS} -r ${CMAKE_CURRENT_SOURCE_DIR} error exception-header ${DBUS_INTF_NAME} > ${DBUS_OBJECT_NAME}/error.hpp + COMMAND ${SDBUSPLUSPLUS} -r ${CMAKE_CURRENT_SOURCE_DIR} error exception-cpp ${DBUS_INTF_NAME} > ${DBUS_OBJECT_NAME}/error.cpp + DEPENDS ${DBUS_OBJECT_NAME}.errors.yaml +) +set_source_files_properties( + ${DBUS_OBJECT_NAME}/error.hpp + ${DBUS_OBJECT_NAME}/error.cpp + PROPERTIES GENERATED TRUE) + +add_custom_command( + OUTPUT ${DBUS_OBJECT_NAME}/server.hpp + OUTPUT ${DBUS_OBJECT_NAME}/server.cpp + COMMAND mkdir -p ${DBUS_OBJECT_NAME} + COMMAND ${SDBUSPLUSPLUS} -r ${CMAKE_CURRENT_SOURCE_DIR} interface server-header ${DBUS_INTF_NAME} > ${DBUS_OBJECT_NAME}/server.hpp + COMMAND ${SDBUSPLUSPLUS} -r ${CMAKE_CURRENT_SOURCE_DIR} interface server-cpp ${DBUS_INTF_NAME} > ${DBUS_OBJECT_NAME}/server.cpp + DEPENDS ${DBUS_OBJECT_NAME}.interface.yaml +) +set_source_files_properties( + ${DBUS_OBJECT_NAME}/server.hpp + ${DBUS_OBJECT_NAME}/server.cpp + PROPERTIES GENERATED TRUE) + +add_executable(${PROJECT_NAME} ${SRC_FILES} ${GENERATED_SRC_FILES}) target_link_libraries(${PROJECT_NAME} ${SYSTEMD_LIBRARIES}) target_link_libraries(${PROJECT_NAME} ${SDBUSPLUSPLUS_LIBRARIES}) target_link_libraries(${PROJECT_NAME} ${DBUSINTERFACE_LIBRARIES}) diff --git a/services/chassis/PowerControl/xyz/openbmc_project/Chassis/Control/Power.errors.yaml b/services/chassis/PowerControl/xyz/openbmc_project/Chassis/Control/Power.errors.yaml new file mode 100644 index 0000000..9de4b9d --- /dev/null +++ b/services/chassis/PowerControl/xyz/openbmc_project/Chassis/Control/Power.errors.yaml @@ -0,0 +1,9 @@ +- name: UnsupportedCommand + description: > + An unsupported command was attempted. +- name: InvalidParameter + description: > + An invalid parameter was attempted. +- name: IOError + description: > + An IO error occurred. diff --git a/services/chassis/PowerControl/xyz/openbmc_project/Chassis/Control/Power.interface.yaml b/services/chassis/PowerControl/xyz/openbmc_project/Chassis/Control/Power.interface.yaml new file mode 100644 index 0000000..445fef5 --- /dev/null +++ b/services/chassis/PowerControl/xyz/openbmc_project/Chassis/Control/Power.interface.yaml @@ -0,0 +1,88 @@ +description: > + Chassis control service +methods: + - name: setPowerState + description: > + set host power state. + parameters: + - name: state + type: int32 + description: > + 0 for force power off host + 1 for power on host + returns: + - name: status + type: int32 + description: > + The result of command. + errors: + - self.Error.UnsupportedCommand + - self.Error.InvalidParameter + - self.Error.IOError + + - name: getPowerState + description: > + Get current host power status. + returns: + - name: status + type: int32 + description: > + Current host status, + 0 for host power off + 1 for host power on + errors: + - self.Error.UnsupportedCommand + - self.Error.InvalidParameter + - self.Error.IOError + + - name: forcePowerOff + description: > + Force power off the host. + returns: + - name: status + type: int32 + description: > + The result of power off command. + errors: + - self.Error.UnsupportedCommand + - self.Error.InvalidParameter + - self.Error.IOError + +properties: + - name: vrd_good + type: int32 + default: 0 + description: > + ACPI status + - name: s4s5_state + type: int32 + default: 0 + description: > + ACPI status + - name: pgood + type: int32 + default: 0 + description: > + pgood property + - name: state + type: int32 + default: 0 + description: > + state property + - name: pgood_timeout + type: int32 + default: 0 + description: > + pgoodtimeout property +signals: + - name: PowerGood + description: > + Signal for powergood + - name: PowerLost + description: > + Signal for powerlost + - name: GotoSystemState + description: > + Signal for GotoSystemState + properties: + - type: string
\ No newline at end of file |