summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJayanth Othayoth <ojayanth@in.ibm.com>2017-05-04 05:46:45 -0500
committerJayanth Othayoth <ojayanth@in.ibm.com>2017-05-10 01:09:51 -0500
commit224882b0a744bbee8b1a8229f54a854cac4aea30 (patch)
treeadbd199025a081f15b45157ef3ad289a97c17402
parent3e3f28b4fbeada4b3f254d1b2d836c5fcb0bc28f (diff)
downloadphosphor-debug-collector-224882b0a744bbee8b1a8229f54a854cac4aea30.tar.gz
phosphor-debug-collector-224882b0a744bbee8b1a8229f54a854cac4aea30.zip
Initial commit for Dump.
Added initial version of Dump infrastructre code. Change-Id: Icd9bc779035d12d2dabd6f49d0d04e9aa060d6c1 Signed-off-by: Jayanth Othayoth <ojayanth@in.ibm.com>
-rwxr-xr-xMakefile.am20
-rwxr-xr-xbootstrap.sh18
-rw-r--r--configure.ac35
-rw-r--r--dump_entry.cpp18
-rw-r--r--dump_entry.hpp49
-rw-r--r--dump_manager_main.cpp21
6 files changed, 161 insertions, 0 deletions
diff --git a/Makefile.am b/Makefile.am
new file mode 100755
index 0000000..212a10f
--- /dev/null
+++ b/Makefile.am
@@ -0,0 +1,20 @@
+AM_DEFAULT_SOURCE_EXT = .cpp
+
+# Build these headers, don't install them
+noinst_HEADERS = \
+ dump_entry.hpp
+
+sbin_PROGRAMS = \
+ phosphor-dump-manager
+
+phosphor_dump_manager_SOURCES = \
+ dump_manager_main.cpp \
+ dump_entry.cpp
+
+phosphor_dump_manager_CXXFLAGS = \
+ $(PHOSPHOR_DBUS_INTERFACES_CFLAGS) \
+ $(SDBUSPLUS_CFLAGS)
+
+phosphor_dump_manager_LDADD = \
+ $(PHOSPHOR_DBUS_INTERFACES_LIBS) \
+ $(SDBUSPLUS_LIBS)
diff --git a/bootstrap.sh b/bootstrap.sh
new file mode 100755
index 0000000..f861496
--- /dev/null
+++ b/bootstrap.sh
@@ -0,0 +1,18 @@
+#!/bin/sh -xe
+
+AUTOCONF_FILES="Makefile.in aclocal.m4 ar-lib autom4te.cache compile \
+ config.guess config.h.in config.sub configure depcomp install-sh \
+ ltmain.sh missing *libtool test-driver"
+
+case $1 in
+ clean)
+ test -f Makefile && make maintainer-clean
+ for file in ${AUTOCONF_FILES}; do
+ find -name "$file" | xargs -r rm -rf
+ done
+ exit 0
+ ;;
+esac
+
+autoreconf -i
+echo 'Run "./configure ${CONFIGURE_FLAGS} && make"'
diff --git a/configure.ac b/configure.ac
new file mode 100644
index 0000000..4082293
--- /dev/null
+++ b/configure.ac
@@ -0,0 +1,35 @@
+AC_PREREQ([2.69])
+AC_INIT([phosphor-debug-collector], [1.0], [https://github.com/openbmc/phosphor-debug-collector/issues])
+AC_LANG([C++])
+AC_CONFIG_HEADERS([config.h])
+AM_INIT_AUTOMAKE([subdir-objects -Wall -Werror foreign dist-xz])
+AM_SILENT_RULES([yes])
+
+# Checks for programs
+AC_PROG_CXX
+AC_PROG_INSTALL #Checks/sets the install variable to be used
+AC_PROG_MAKE_SET
+
+# Check for libraries
+PKG_CHECK_MODULES([PHOSPHOR_DBUS_INTERFACES], [phosphor-dbus-interfaces],,\
+ AC_MSG_ERROR(["Requires phosphor-dbus-interfaces package."]))
+PKG_CHECK_MODULES([SDBUSPLUS], [sdbusplus],,
+ AC_MSG_ERROR(["Requires sdbusplus package."]))
+
+# Checks for library functions
+LT_INIT # Required for systemd linking
+
+# Checks for typedefs, structures, and compiler characteristics.
+AX_CXX_COMPILE_STDCXX_14([noext])
+AX_APPEND_COMPILE_FLAGS([-Wall -Werror], [CXXFLAGS])
+
+AC_ARG_VAR(DUMP_BUSNAME, [The Dbus busname to own])
+AS_IF([test "x$DUMP_BUSNAME" == "x"], [DUMP_BUSNAME="xyz.openbmc_project.Dump"])
+AC_DEFINE_UNQUOTED([DUMP_BUSNAME], ["$DUMP_BUSNAME"], [The DBus busname to own])
+
+AC_ARG_VAR(DUMP_OBJPATH, [The Dump manager Dbus root])
+AS_IF([test "x$DUMP_OBJPATH" == "x"], [DUMP_OBJPATH="/xyz/openbmc_project/dump"])
+AC_DEFINE_UNQUOTED([DUMP_OBJPATH], ["$DUMP_OBJPATH"], [The dump manager Dbus root])
+
+AC_CONFIG_FILES([Makefile])
+AC_OUTPUT
diff --git a/dump_entry.cpp b/dump_entry.cpp
new file mode 100644
index 0000000..75c1358
--- /dev/null
+++ b/dump_entry.cpp
@@ -0,0 +1,18 @@
+#include "dump_entry.hpp"
+
+namespace phosphor
+{
+namespace dump
+{
+
+Entry::Entry(sdbusplus::bus::bus& bus, const char* obj): EntryIfaces(bus, obj)
+{
+}
+
+
+void Entry::delete_()
+{
+}
+
+} // namespace dump
+} // namepsace phosphor
diff --git a/dump_entry.hpp b/dump_entry.hpp
new file mode 100644
index 0000000..d276f0d
--- /dev/null
+++ b/dump_entry.hpp
@@ -0,0 +1,49 @@
+#pragma once
+
+#include <sdbusplus/server/object.hpp>
+#include "xyz/openbmc_project/Dump/Entry/server.hpp"
+#include "xyz/openbmc_project/Object/Delete/server.hpp"
+#include "xyz/openbmc_project/Time/EpochTime/server.hpp"
+
+namespace phosphor
+{
+namespace dump
+{
+
+template <typename T>
+using ServerObject = typename sdbusplus::server::object::object<T>;
+
+using EntryIfaces = sdbusplus::server::object::object<
+ sdbusplus::xyz::openbmc_project::Dump::server::Entry,
+ sdbusplus::xyz::openbmc_project::Object::server::Delete,
+ sdbusplus::xyz::openbmc_project::Time::server::EpochTime>;
+
+/** @class Entry
+ * @brief OpenBMC Dump Entry implementation.
+ * @details A concrete implementation for the
+ * xyz.openbmc_project.Dump.Entry DBus API
+ */
+class Entry : public EntryIfaces
+{
+ public:
+ Entry() = delete;
+ Entry(const Entry&) = delete;
+ Entry& operator=(const Entry&) = delete;
+ Entry(Entry&&) = delete;
+ Entry& operator=(Entry&&) = delete;
+ virtual ~Entry() = default;
+
+ /** @brief Constructor for the Dump Entry Object
+ * @param[in] bus - Bus to attach to.
+ * @param[in] obj - Object path to attach to
+ */
+ Entry(sdbusplus::bus::bus& bus, const char* obj);
+
+ /** @brief Delete this d-bus object.
+ */
+ void delete_() override ;
+
+};
+
+} // namespace dump
+} // namespace phosphor
diff --git a/dump_manager_main.cpp b/dump_manager_main.cpp
new file mode 100644
index 0000000..39398e7
--- /dev/null
+++ b/dump_manager_main.cpp
@@ -0,0 +1,21 @@
+#include <sdbusplus/bus.hpp>
+#include <sdbusplus/server/manager.hpp>
+#include "config.h"
+
+int main(int argc, char *argv[])
+{
+ auto bus = sdbusplus::bus::new_default();
+
+ // Add sdbusplus ObjectManager for the 'root' path of the DUMP manager.
+ sdbusplus::server::manager::manager objManager(bus, DUMP_OBJPATH);
+
+ bus.request_name(DUMP_BUSNAME);
+
+ while(true)
+ {
+ bus.process_discard();
+ bus.wait();
+ }
+
+ return 0;
+}
OpenPOWER on IntegriCloud