Revamped code for VPD parser
The commit removes all the pre-existing code from the branch
and pushes the revamped code.
Major modification includes:
- Movement from multi exe to single daemon model.
- Multithreaded approach to parse FRU VPD.
- Better error handling.
- Refactored code for performance optimization.
Note: This code supports all the existing functionalities as it is.
Change-Id: I1ddce1f0725ac59020b72709689a1013643bda8b
Signed-off-by: Sunny Srivastava <sunnsr25@in.ibm.com>
diff --git a/vpd-manager/meson.build b/vpd-manager/meson.build
index 22ac81a..4e9c10b 100644
--- a/vpd-manager/meson.build
+++ b/vpd-manager/meson.build
@@ -1,42 +1,47 @@
-systemd = dependency('libsystemd', version: '>= 221')
-sdeventplus = dependency('sdeventplus')
+common_SOURCES = ['src/logger.cpp',
+ 'src/parser_factory.cpp',
+ 'src/ipz_parser.cpp',
+ 'src/keyword_vpd_parser.cpp',
+ 'src/ddimm_parser.cpp',
+ 'src/isdimm_parser.cpp',
+ 'src/parser.cpp',
+ 'src/worker.cpp',
+ 'src/backup_restore.cpp',
+ 'src/gpio_monitor.cpp',
+ 'src/event_logger.cpp']
-configuration_inc = include_directories('.', '../', '../vpd-parser/')
+vpd_manager_SOURCES = ['src/manager_main.cpp',
+ 'src/manager.cpp',
+ 'src/bios_handler.cpp',
+ ] + common_SOURCES
-vpd_manager_SOURCES = [
- 'manager_main.cpp',
- 'manager.cpp',
- 'editor_impl.cpp',
- 'reader_impl.cpp',
- 'gpioMonitor.cpp',
- 'bios_handler.cpp',
- '../impl.cpp',
- '../vpd-parser/ipz_parser.cpp',
- '../ibm_vpd_utils.cpp',
- '../common_utility.cpp',
- '../vpd-parser//keyword_vpd_parser.cpp',
- '../vpd-parser/memory_vpd_parser.cpp',
- '../vpd-parser/isdimm_vpd_parser.cpp',
- '../vpd-parser/parser_factory.cpp'
-]
+parser_dependencies = [sdbusplus, libgpiodcxx, phosphor_logging, phosphor_dbus_interfaces]
-vpd_manager_dependencies = [
- CLI11_dep,
- libgpiodcxx,
- phosphor_logging,
- sdeventplus,
- systemd,
- nlohmann_json_dep,
-]
+parser_build_arguments = []
+if get_option('ibm_system').enabled()
+ parser_build_arguments += ['-DIBM_SYSTEM']
+endif
vpd_manager_exe = executable(
- 'vpd-manager',
- vpd_manager_SOURCES,
- include_directories : configuration_inc,
- dependencies : [
- vpd_manager_dependencies,
+ 'vpd-manager',
+ vpd_manager_SOURCES,
+ include_directories : ['../', 'include/', '../configuration/'],
+ link_with : libvpdecc,
+ dependencies : [
+ parser_dependencies,
],
- link_with : libvpdecc,
- install : true,
- cpp_args : '-DIPZ_PARSER'
+ install : true,
+ cpp_args : parser_build_arguments,
)
+
+vpd_parser_SOURCES = ['src/vpd_parser_main.cpp',
+ ]+ common_SOURCES
+
+vpd_parser_exe = executable(
+ 'vpd-parser',
+ vpd_parser_SOURCES,
+ include_directories : ['../', 'include/', '../configuration/'],
+ link_with : libvpdecc,
+ dependencies : parser_dependencies,
+ install : true,
+ )
\ No newline at end of file