IPMI OEM Get BIC GPIO State

Register an IPMI command handler - NetFn: 0x38 Cmd: 0x03.
Send command through IPMB to get BIC GPIO state.
Add Meta IANA definition for future utilization.

Limitation:
1. Could only get the state of BIC GPIOs which are configured as GPIO
2. Couldn't get all BIC GPIO states

Test Case:
Call IPMI OEM get BIC GPIO state

Signed-off-by: Bonnie Lo <Bonnie_Lo@wiwynn.com>
Change-Id: Idda8d4c532b2971c14662e7b34ea101cf584fa22
diff --git a/include/biccommands.hpp b/include/biccommands.hpp
index 5493304..e8742d1 100644
--- a/include/biccommands.hpp
+++ b/include/biccommands.hpp
@@ -1,9 +1,10 @@
 
-// Command for getting device id
-constexpr uint8_t cmdOemBicInfo = 0x01;
-
-// Command for getting post code
-constexpr uint8_t cmdOemSendPostBufferToBMC = 0x08;
+enum class fb_bic_cmds : uint8_t
+{
+    CMD_OEM_BIC_INFO = 0x1,
+    CMD_OEM_GET_BIC_GPIO_STATE = 0x3,
+    CMD_OEM_SEND_POST_BUFFER_TO_BMC = 0x8,
+};
 
 const char* dbusObj = "/xyz/openbmc_project/state/boot/raw";
 
diff --git a/include/commandutils.hpp b/include/commandutils.hpp
index e318f13..d51c0e8 100644
--- a/include/commandutils.hpp
+++ b/include/commandutils.hpp
@@ -22,6 +22,10 @@
 
 static constexpr bool debug = false;
 
+using IanaType = std::array<uint8_t, 3>;
+
+static constexpr IanaType iana = {0x15, 0xA0, 0x0}; // Meta's IANA
+
 static void instances(std::string s, std::vector<std::string>& host)
 {
     size_t pos = 0;