diff options
author | Ratan Gupta <ratagupt@in.ibm.com> | 2016-12-22 19:00:41 +0530 |
---|---|---|
committer | Ratan Gupta <ratagupt@in.ibm.com> | 2017-02-01 12:48:09 +0530 |
commit | 0f2e7fe1bf008b96e5ea7da4dcf8d978c854eeb6 (patch) | |
tree | d4b8c6882ed69905c2f7f300b6dd3b6800cb8b09 /scripts/writefru.mako.hpp | |
parent | a2ca100a21ae6e712e01a11f86476eb2717b25ad (diff) | |
download | ipmi-fru-parser-0f2e7fe1bf008b96e5ea7da4dcf8d978c854eeb6.tar.gz ipmi-fru-parser-0f2e7fe1bf008b96e5ea7da4dcf8d978c854eeb6.zip |
Add IPMI FRU parser code generator.
Add a script that generates c++ structures
based on system dependent configuration.
Change-Id: I3a005b2dd31d7db3137bed9be6df2a0658c48d82
Signed-off-by: Ratan Gupta <ratagupt@in.ibm.com>
Diffstat (limited to 'scripts/writefru.mako.hpp')
-rw-r--r-- | scripts/writefru.mako.hpp | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/scripts/writefru.mako.hpp b/scripts/writefru.mako.hpp new file mode 100644 index 0000000..a5c2f24 --- /dev/null +++ b/scripts/writefru.mako.hpp @@ -0,0 +1,50 @@ +// !!! WARNING: This is a GENERATED Code..Please do NOT Edit !!! +#pragma once + +#include <iostream> + +#include <string> +#include <list> +#include <map> + +using IPMIFruMetadata = std::string; +using IPMIFruMetadataValue = std::string; +using IPMIFruMap = std::map<IPMIFruMetadata,IPMIFruMetadataValue>; + +using DbusProperty = std::string; +using DbusPropertyMap = std::map<DbusProperty,IPMIFruMap>; + +using DbusInterface = std::string; +using DbusInterfaceMap = std::map<DbusInterface,DbusPropertyMap>; + +using FruInstancePath = std::string; +using FruInstanceMap = std::map<FruInstancePath,DbusInterfaceMap>; + +using FruId = uint32_t; +using FruMap = std::map<FruId,FruInstanceMap>; + + +const FruMap frus = { +% for key in fruDict.iterkeys(): + {${key},{ +<% + fru = fruDict[key] +%> + % for object,interfaces in fru.iteritems(): + {"${object}",{ + % for interface,properties in interfaces.iteritems(): + {"${interface}",{ + % for dbus_property,property_value in properties.iteritems(): + {"${dbus_property}",{ + % for name,value in property_value.iteritems(): + {"${name}","${value}"}, + % endfor + }}, + % endfor + }}, + % endfor + }}, + % endfor + }}, +% endfor +}; |