register call back functions for FRU read commands

Change-Id: Idb0230ea173940deb17314dc09c4a562b97ede20
Signed-off-by: Marri Devender Rao <devenrao@in.ibm.com>
diff --git a/host-ipmid-whitelist.conf b/host-ipmid-whitelist.conf
index 98353c2..cbd5869 100644
--- a/host-ipmid-whitelist.conf
+++ b/host-ipmid-whitelist.conf
@@ -17,6 +17,8 @@
 0x06:0x35    //<App>:<Read Event Message Buffer>
 0x06:0x36    //<App>:<Get BT Interface Capabilities>
 0x06:0x42    //<App>:<Get Channel Info Command>
+0x0A:0x10    //<Storage>:<Get FRU Inventory Area Info>
+0x0A:0x11    //<Storage>:<Read FRU Data>
 0x0A:0x40    //<Storage>:<Get SEL Info>
 0x0A:0x42    //<Storage>:<Reserve SEL>
 0x0A:0x44    //<Storage>:<Add SEL Entry>
diff --git a/storagehandler.cpp b/storagehandler.cpp
index 5ded63e..a1b3f03 100644
--- a/storagehandler.cpp
+++ b/storagehandler.cpp
@@ -572,6 +572,26 @@
     return rc;
 }
 
+//Read FRU info area
+ipmi_ret_t ipmi_storage_get_fru_inv_area_info(
+        ipmi_netfn_t netfn, ipmi_cmd_t cmd, ipmi_request_t request,
+        ipmi_response_t response, ipmi_data_len_t data_len,
+        ipmi_context_t context)
+{
+    ipmi_ret_t rc = IPMI_CC_OK;
+    return rc;
+}
+
+//Read FRU data
+ipmi_ret_t ipmi_storage_read_fru_data(
+        ipmi_netfn_t netfn, ipmi_cmd_t cmd, ipmi_request_t request,
+        ipmi_response_t response, ipmi_data_len_t data_len,
+        ipmi_context_t context)
+{
+    ipmi_ret_t rc = IPMI_CC_OK;
+    return rc;
+}
+
 
 
 void register_netfn_storage_functions()
@@ -615,11 +635,22 @@
     printf("Registering NetFn:[0x%X], Cmd:[0x%X]\n",NETFUN_STORAGE, IPMI_CMD_ADD_SEL);
     ipmi_register_callback(NETFUN_STORAGE, IPMI_CMD_ADD_SEL, NULL, ipmi_storage_add_sel,
                            PRIVILEGE_OPERATOR);
-
     // <Clear SEL>
     printf("Registering NetFn:[0x%X], Cmd:[0x%X]\n",NETFUN_STORAGE, IPMI_CMD_CLEAR_SEL);
     ipmi_register_callback(NETFUN_STORAGE, IPMI_CMD_CLEAR_SEL, NULL, clearSEL,
                            PRIVILEGE_OPERATOR);
+    // <Get FRU Inventory Area Info>
+    printf("Registering NetFn:[0x%X], Cmd:[0x%X]\n", NETFUN_STORAGE,
+            IPMI_CMD_GET_FRU_INV_AREA_INFO);
+    ipmi_register_callback(NETFUN_STORAGE, IPMI_CMD_GET_FRU_INV_AREA_INFO, NULL,
+            ipmi_storage_get_fru_inv_area_info, PRIVILEGE_OPERATOR);
+
+    // <Add READ FRU Data
+    printf("Registering NetFn:[0x%X], Cmd:[0x%X]\n", NETFUN_STORAGE,
+            IPMI_CMD_READ_FRU_DATA);
+
+    ipmi_register_callback(NETFUN_STORAGE, IPMI_CMD_READ_FRU_DATA, NULL,
+            ipmi_storage_read_fru_data, PRIVILEGE_OPERATOR);
     return;
 }
 
diff --git a/storagehandler.h b/storagehandler.h
index 9973d14..7f1b67d 100644
--- a/storagehandler.h
+++ b/storagehandler.h
@@ -5,6 +5,8 @@
 enum ipmi_netfn_storage_cmds
 {
     // Get capability bits
+    IPMI_CMD_GET_FRU_INV_AREA_INFO  = 0x10,
+    IPMI_CMD_READ_FRU_DATA  = 0x11,
     IPMI_CMD_GET_SEL_INFO   = 0x40,
     IPMI_CMD_RESERVE_SEL    = 0x42,
     IPMI_CMD_GET_SEL_ENTRY  = 0x43,