apphandler: Implement Get/Set System Info Parameter

Implement Get System Info Parameter using the parameter storage code to
back the string-type parameters. Supports up to 255 chunks (known as
"sets" in the spec) for those parameters. Currently, iterated reads by
chunk of a string parameter will repeatedly invoke that parameter's
callback, which can result in chunks being incoherent with each other if
the string changes between invocations. This is noted in a TODO comment.

Stub out Set System Info Parameter. Full implementation for that is
pending support for read-only flags in the parameter storage code.

Change-Id: If0a9d807725ccf1f1f62e931010024841575469c
Signed-off-by: Xo Wang <xow@google.com>
Signed-off-by: Patrick Venture <venture@google.com>
diff --git a/apphandler.h b/apphandler.h
index db2d07c..cbfafb2 100644
--- a/apphandler.h
+++ b/apphandler.h
@@ -20,6 +20,21 @@
     IPMI_CMD_GET_CHANNEL_ACCESS = 0x41,
     IPMI_CMD_GET_CHAN_INFO = 0x42,
     IPMI_CMD_GET_CHAN_CIPHER_SUITES = 0x54,
+    IPMI_CMD_SET_SYSTEM_INFO = 0x58,
+    IPMI_CMD_GET_SYSTEM_INFO = 0x59,
+};
+
+enum ipmi_app_sysinfo_params
+{
+    IPMI_SYSINFO_SET_STATE = 0x00,
+    IPMI_SYSINFO_SYSTEM_FW_VERSION = 0x01,
+    IPMI_SYSINFO_SYSTEM_NAME = 0x02,
+    IPMI_SYSINFO_PRIMARY_OS_NAME = 0x03,
+    IPMI_SYSINFO_OS_NAME = 0x04,
+    IPMI_SYSINFO_OS_VERSION = 0x05,
+    IPMI_SYSINFO_BMC_URL = 0x06,
+    IPMI_SYSINFO_OS_HYP_URL = 0x07,
+    IPMI_SYSINFO_OEM_START = 0xC0, // Start of range of OEM parameters
 };
 
 #endif