Collect ramoops data into BMC dump

- Add ramoops file monitor and support to enable ramoops data
  collection for kernel dump.

- Systemd will collect ramoops data and write it into
  /var/lib/systemd/pstore when a system kernel oops/panics.

- Today, need to grab everything in that directory, put it in a dump
  and then delete everything in that directory.

Tested:
- Simulate a kernel panic by creating similar data in the expected
  location.
  `dmesg > /var/lib/systemd/pstore/dmesg1.txt`
  `dmesg > /var/lib/systemd/pstore/dmesg2.txt`
  `dmesg > /var/lib/systemd/pstore/dmesg3.txt`
  `dmesg > /var/lib/systemd/pstore/dmesg4.txt`

  tar -tvf obmcdump_1_248.tar.xz:

  drwxr-xr-x 0/0         0 1970-01-01 00:01:32 obmcdump_1_248/
  -rw-r--r-- 0/0     21239 1970-01-01 00:01:32 obmcdump_1_248/dmesg1.txt
  -rw-r--r-- 0/0     21239 1970-01-01 00:01:32 obmcdump_1_248/dmesg2.txt
  -rw-r--r-- 0/0     21239 1970-01-01 00:01:32 obmcdump_1_248/dmesg3.txt
  -rw-r--r-- 0/0     21239 1970-01-01 00:01:32 obmcdump_1_248/dmesg4.txt
  -rw-r--r-- 0/0       162 1970-01-01 00:01:32 obmcdump_1_248/dreport.log
  -rw-r--r-- 0/0       294 1970-01-01 00:01:31 obmcdump_1_248/os-release
  -rw-r--r-- 0/0       278 1970-01-01 00:01:31 obmcdump_1_248/summary.log

Signed-off-by: George Liu <liuxiwei@inspur.com>
Change-Id: I05bca408f4dcc2b62350104a0c5f757d740dde22
diff --git a/meson.build b/meson.build
index e1b06b7..fcb3004 100644
--- a/meson.build
+++ b/meson.build
@@ -62,6 +62,8 @@
                     )
 conf_data.set_quoted('BMC_DUMP_PATH', get_option('BMC_DUMP_PATH'),
                      description : 'Directory where bmc dumps are placed')
+conf_data.set_quoted('SYSTEMD_PSTORE_PATH', get_option('SYSTEMD_PSTORE_PATH'),
+                     description : 'Path to the systemd pstore directory')
 conf_data.set('BMC_DUMP_MAX_SIZE', get_option('BMC_DUMP_MAX_SIZE'),
                description : 'Maximum size of one bmc dump in kilo bytes'
              )
@@ -163,6 +165,22 @@
 
 phosphor_dump_monitor_incdir = []
 
+phosphor_ramoops_monitor_sources = [
+        'ramoops_manager.cpp',
+        'ramoops_manager_main.cpp',
+        'watch.cpp'
+    ]
+
+phosphor_ramoops_monitor_dependency = [
+        phosphor_dbus_interfaces,
+        phosphor_logging,
+        cppfs
+    ]
+
+phosphor_ramoops_monitor_install = true
+
+phosphor_ramoops_monitor_incdir = []
+
 executables = [[ 'phosphor-dump-manager',
                   phosphor_dump_manager_sources,
                   phosphor_dump_manager_dependency,
@@ -174,6 +192,12 @@
                   phosphor_dump_monitor_dependency,
                   phosphor_dump_monitor_install,
                   phosphor_dump_monitor_incdir
+               ],
+               [ 'phosphor-ramoops-monitor',
+                  phosphor_ramoops_monitor_sources,
+                  phosphor_ramoops_monitor_dependency,
+                  phosphor_ramoops_monitor_install,
+                  phosphor_ramoops_monitor_incdir
                ]
               ]