summaryrefslogtreecommitdiff
path: root/services
diff options
context:
space:
mode:
authorMao, Andy <andy.mao@intel.com>2018-04-17 21:08:22 +0300
committerGerrit Code Review <gerrit@fmygit6002.fm.intel.com>2018-04-17 21:08:22 +0300
commit04451a1d039ed65013546bff46c781d13b3c2620 (patch)
treedb74c515a7e787d637e1bd46462cd6623810e38c /services
parent104dc9539690a7343df38b80130af3d82bcbb349 (diff)
parentf5b47d597a62f9fde0e149675f4264da550a9f29 (diff)
downloadprovingground-04451a1d039ed65013546bff46c781d13b3c2620.tar.xz
Merge "Add power control .yaml files"
Diffstat (limited to 'services')
-rw-r--r--services/chassis/PowerControl/CMakeLists.txt34
-rw-r--r--services/chassis/PowerControl/xyz/openbmc_project/Chassis/Control/Power.errors.yaml9
-rw-r--r--services/chassis/PowerControl/xyz/openbmc_project/Chassis/Control/Power.interface.yaml88
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