Readme file for handling application specific errors
Change-Id: I7f19ab8a2218e826e0c7c89eee0f70de55e8a6eb
Signed-off-by: Marri Devender Rao <devenrao@in.ibm.com>
diff --git a/app-local-errors/README.md b/app-local-errors/README.md
new file mode 100644
index 0000000..34334b3
--- /dev/null
+++ b/app-local-errors/README.md
@@ -0,0 +1,52 @@
+## Introduction
+Document captures steps for adding application specific error yaml files
+
+### Write app specific error yaml files
+Write error yamls for your application and place them in your application
+repository.
+
+Refer to *Host.errors.yaml* at
+https://github.com/openbmc/openpower-debug-collector/blob/master/org/open_power/
+
+### Makefile rules to run sdbus++ on error yaml files
+Modify the Makefile.am as shown bellow for generation of error.cpp and erorr.hpp
+```
+org/open_power/Host/error.hpp: ${srcdir}/org/open_power/Host.errors.yaml
+ @mkdir -p `dirname $@`
+ $(SDBUSPLUSPLUS) -r $(srcdir) error exception-header org.open_power.Host > $@
+```
+```
+org/open_power/Host/error.cpp: ${srcdir}/org/open_power/Host.errors.yaml
+ @mkdir -p `dirname $@`
+ $(SDBUSPLUSPLUS) -r $(srcdir) error exception-cpp org.open_power.Host > $@
+```
+### Write native recipe to copy error yaml files
+Application specific error yaml files need to be copied to a known location
+so that phosphor-logging can generate error metadata by parsing the error
+yaml files.
+
+Refer to **do_install_append** method in
+**openpower-debug-collector-error-native.bb** at
+https://github.com/openbmc/openbmc/blob/master/meta-openbmc-machines/meta-openpower/common/recipes-phosphor/debug/
+
+### Establish dependency with phosphor-logging
+Establish debendency with phosphor-logging to ensure that error yaml files are
+copied to a known location before phosphor logging parses the error yaml files
+
+Refer to **phosphor-logging-error-logs-native.bbappend** at
+https://github.com/openbmc/openbmc/blob/master/meta-openbmc-machines/meta-openpower/common/recipes-phosphor/debug/
+
+### Reporting error
+To report (commit) the error follow the below format
+***report<sdbusplus::exception_t>(metadata)***
+#### *example*
+```
+#include <xyz/openbmc_project/Software/Version/error.hpp>
+#include <phosphor-logging/elog-errors.hpp>
+
+using error =
+ sdbusplus::xyz::openbmc_project::Software::Version::Error::ManifestFileFailure;
+using metadata =
+phosphor::logging::xyz::openbmc_project::Software::Version::ManifestFileFailure;
+report<error>(metadata::PATH(tarFilePath.c_str())););
+```