--- /dev/null
+/** @file\r
+ The header file of functions for configuring or getting the parameters\r
+ relating to iSCSI.\r
+\r
+Copyright (c) 2004 - 2011, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials\r
+are licensed and made available under the terms and conditions of the BSD License\r
+which accompanies this distribution. The full text of the license may be found at\r
+http://opensource.org/licenses/bsd-license.php\r
+\r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+\r
+**/\r
+\r
+#ifndef _ISCSI_CONFIG_H_\r
+#define _ISCSI_CONFIG_H_\r
+\r
+#include "IScsiConfigNVDataStruc.h"\r
+\r
+typedef struct _ISCSI_FORM_CALLBACK_INFO ISCSI_FORM_CALLBACK_INFO;\r
+\r
+extern UINT8 IScsiConfigVfrBin[];\r
+extern UINT8 IScsiDxeStrings[];\r
+extern ISCSI_FORM_CALLBACK_INFO *mCallbackInfo;\r
+extern EFI_GUID mVendorGuid;\r
+\r
+\r
+#define VAR_OFFSET(Field) \\r
+ ((UINT16) ((UINTN) &(((ISCSI_CONFIG_IFR_NVDATA *) 0)->Field)))\r
+\r
+#define QUESTION_ID(Field) \\r
+ ((UINT16) (VAR_OFFSET (Field) + CONFIG_OPTION_OFFSET))\r
+\r
+\r
+#define DYNAMIC_ONE_OF_VAR_OFFSET VAR_OFFSET (Enabled)\r
+#define DYNAMIC_ORDERED_LIST_QUESTION_ID QUESTION_ID (DynamicOrderedList)\r
+#define DYNAMIC_ORDERED_LIST_VAR_OFFSET VAR_OFFSET (DynamicOrderedList)\r
+#define ATTEMPT_DEL_QUESTION_ID QUESTION_ID (DeleteAttemptList)\r
+#define ATTEMPT_DEL_VAR_OFFSET VAR_OFFSET (DeleteAttemptList)\r
+\r
+//\r
+// sizeof (EFI_MAC_ADDRESS) * 3\r
+//\r
+#define ISCSI_MAX_MAC_STRING_LEN 96\r
+\r
+#define ISCSI_INITATOR_NAME_VAR_NAME L"I_NAME"\r
+\r
+#define ISCSI_CONFIG_VAR_ATTR (EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_NON_VOLATILE)\r
+\r
+#define ISCSI_FORM_CALLBACK_INFO_SIGNATURE SIGNATURE_32 ('I', 'f', 'c', 'i')\r
+\r
+#define ISCSI_FORM_CALLBACK_INFO_FROM_FORM_CALLBACK(Callback) \\r
+ CR ( \\r
+ Callback, \\r
+ ISCSI_FORM_CALLBACK_INFO, \\r
+ ConfigAccess, \\r
+ ISCSI_FORM_CALLBACK_INFO_SIGNATURE \\r
+ )\r
+\r
+#pragma pack(1)\r
+struct _ISCSI_ATTEMPT_CONFIG_NVDATA {\r
+ LIST_ENTRY Link;\r
+ UINT8 NicIndex;\r
+ UINT8 AttemptConfigIndex;\r
+ BOOLEAN DhcpSuccess;\r
+ BOOLEAN ValidiBFTPath;\r
+ BOOLEAN ValidPath;\r
+ UINT8 AutoConfigureMode;\r
+ EFI_STRING_ID AttemptTitleToken;\r
+ EFI_STRING_ID AttemptTitleHelpToken;\r
+ CHAR8 AttemptName[ATTEMPT_NAME_MAX_SIZE];\r
+ CHAR8 MacString[ISCSI_MAX_MAC_STRING_LEN];\r
+ EFI_IP_ADDRESS PrimaryDns;\r
+ EFI_IP_ADDRESS SecondaryDns;\r
+ EFI_IP_ADDRESS DhcpServer;\r
+ ISCSI_SESSION_CONFIG_NVDATA SessionConfigData;\r
+ UINT8 AuthenticationType;\r
+ union {\r
+ ISCSI_CHAP_AUTH_CONFIG_NVDATA CHAP;\r
+ } AuthConfigData;\r
+\r
+};\r
+\r
+///\r
+/// HII specific Vendor Device Path definition.\r
+///\r
+typedef struct {\r
+ VENDOR_DEVICE_PATH VendorDevicePath;\r
+ EFI_DEVICE_PATH_PROTOCOL End;\r
+} HII_VENDOR_DEVICE_PATH;\r
+\r
+#pragma pack()\r
+\r
+struct _ISCSI_FORM_CALLBACK_INFO {\r
+ UINT32 Signature;\r
+ EFI_HANDLE DriverHandle;\r
+ EFI_HII_CONFIG_ACCESS_PROTOCOL ConfigAccess;\r
+ UINT16 *KeyList;\r
+ VOID *FormBuffer;\r
+ EFI_HII_HANDLE RegisteredHandle;\r
+ ISCSI_ATTEMPT_CONFIG_NVDATA *Current;\r
+};\r
+\r
+/**\r
+ Initialize the iSCSI configuration form.\r
+\r
+ @param[in] DriverBindingHandle The iSCSI driverbinding handle.\r
+\r
+ @retval EFI_SUCCESS The iSCSI configuration form is initialized.\r
+ @retval EFI_OUT_OF_RESOURCES Failed to allocate memory.\r
+\r
+**/\r
+EFI_STATUS\r
+IScsiConfigFormInit (\r
+ IN EFI_HANDLE DriverBindingHandle\r
+ );\r
+\r
+/**\r
+ Unload the iSCSI configuration form, this includes: delete all the iSCSI\r
+ configuration entries, uninstall the form callback protocol, and\r
+ free the resources used.\r
+\r
+ @param[in] DriverBindingHandle The iSCSI driverbinding handle.\r
+\r
+ @retval EFI_SUCCESS The iSCSI configuration form is unloaded.\r
+ @retval Others Failed to unload the form.\r
+\r
+**/\r
+EFI_STATUS\r
+IScsiConfigFormUnload (\r
+ IN EFI_HANDLE DriverBindingHandle\r
+ );\r
+\r
+/**\r
+ Update the MAIN form to display the configured attempts.\r
+\r
+**/\r
+VOID\r
+IScsiConfigUpdateAttempt (\r
+ VOID\r
+ );\r
+\r
+/**\r
+ Get the attempt config data from global structure by the ConfigIndex.\r
+\r
+ @param[in] AttemptConfigIndex The unique index indicates the attempt.\r
+\r
+ @return Pointer to the attempt config data.\r
+ @retval NULL The attempt configuration data can not be found.\r
+\r
+**/\r
+ISCSI_ATTEMPT_CONFIG_NVDATA *\r
+IScsiConfigGetAttemptByConfigIndex (\r
+ IN UINT8 AttemptConfigIndex\r
+ );\r
+\r
+#endif\r