From 4c5a5e0cfecf23526493bf9a05c0530805bf10ec Mon Sep 17 00:00:00 2001 From: tye1 Date: Wed, 17 Aug 2011 02:38:08 +0000 Subject: Add IScsiDxe driver to NetworkPkg in order to support iSCSI over IPv6 stack and iSCSI MPIO. Signed-off-by: tye1 Reviewed-by: hhuan13 Reviewed-by: eric_tian git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12149 6f19259b-4bc3-4df7-8a09-765794883524 --- NetworkPkg/IScsiDxe/IScsiConfig.h | 158 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 158 insertions(+) create mode 100644 NetworkPkg/IScsiDxe/IScsiConfig.h (limited to 'NetworkPkg/IScsiDxe/IScsiConfig.h') diff --git a/NetworkPkg/IScsiDxe/IScsiConfig.h b/NetworkPkg/IScsiDxe/IScsiConfig.h new file mode 100644 index 0000000000..df0c7539e4 --- /dev/null +++ b/NetworkPkg/IScsiDxe/IScsiConfig.h @@ -0,0 +1,158 @@ +/** @file + The header file of functions for configuring or getting the parameters + relating to iSCSI. + +Copyright (c) 2004 - 2011, Intel Corporation. All rights reserved.
+This program and the accompanying materials +are licensed and made available under the terms and conditions of the BSD License +which accompanies this distribution. The full text of the license may be found at +http://opensource.org/licenses/bsd-license.php + +THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + +**/ + +#ifndef _ISCSI_CONFIG_H_ +#define _ISCSI_CONFIG_H_ + +#include "IScsiConfigNVDataStruc.h" + +typedef struct _ISCSI_FORM_CALLBACK_INFO ISCSI_FORM_CALLBACK_INFO; + +extern UINT8 IScsiConfigVfrBin[]; +extern UINT8 IScsiDxeStrings[]; +extern ISCSI_FORM_CALLBACK_INFO *mCallbackInfo; +extern EFI_GUID mVendorGuid; + + +#define VAR_OFFSET(Field) \ + ((UINT16) ((UINTN) &(((ISCSI_CONFIG_IFR_NVDATA *) 0)->Field))) + +#define QUESTION_ID(Field) \ + ((UINT16) (VAR_OFFSET (Field) + CONFIG_OPTION_OFFSET)) + + +#define DYNAMIC_ONE_OF_VAR_OFFSET VAR_OFFSET (Enabled) +#define DYNAMIC_ORDERED_LIST_QUESTION_ID QUESTION_ID (DynamicOrderedList) +#define DYNAMIC_ORDERED_LIST_VAR_OFFSET VAR_OFFSET (DynamicOrderedList) +#define ATTEMPT_DEL_QUESTION_ID QUESTION_ID (DeleteAttemptList) +#define ATTEMPT_DEL_VAR_OFFSET VAR_OFFSET (DeleteAttemptList) + +// +// sizeof (EFI_MAC_ADDRESS) * 3 +// +#define ISCSI_MAX_MAC_STRING_LEN 96 + +#define ISCSI_INITATOR_NAME_VAR_NAME L"I_NAME" + +#define ISCSI_CONFIG_VAR_ATTR (EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_NON_VOLATILE) + +#define ISCSI_FORM_CALLBACK_INFO_SIGNATURE SIGNATURE_32 ('I', 'f', 'c', 'i') + +#define ISCSI_FORM_CALLBACK_INFO_FROM_FORM_CALLBACK(Callback) \ + CR ( \ + Callback, \ + ISCSI_FORM_CALLBACK_INFO, \ + ConfigAccess, \ + ISCSI_FORM_CALLBACK_INFO_SIGNATURE \ + ) + +#pragma pack(1) +struct _ISCSI_ATTEMPT_CONFIG_NVDATA { + LIST_ENTRY Link; + UINT8 NicIndex; + UINT8 AttemptConfigIndex; + BOOLEAN DhcpSuccess; + BOOLEAN ValidiBFTPath; + BOOLEAN ValidPath; + UINT8 AutoConfigureMode; + EFI_STRING_ID AttemptTitleToken; + EFI_STRING_ID AttemptTitleHelpToken; + CHAR8 AttemptName[ATTEMPT_NAME_MAX_SIZE]; + CHAR8 MacString[ISCSI_MAX_MAC_STRING_LEN]; + EFI_IP_ADDRESS PrimaryDns; + EFI_IP_ADDRESS SecondaryDns; + EFI_IP_ADDRESS DhcpServer; + ISCSI_SESSION_CONFIG_NVDATA SessionConfigData; + UINT8 AuthenticationType; + union { + ISCSI_CHAP_AUTH_CONFIG_NVDATA CHAP; + } AuthConfigData; + +}; + +/// +/// HII specific Vendor Device Path definition. +/// +typedef struct { + VENDOR_DEVICE_PATH VendorDevicePath; + EFI_DEVICE_PATH_PROTOCOL End; +} HII_VENDOR_DEVICE_PATH; + +#pragma pack() + +struct _ISCSI_FORM_CALLBACK_INFO { + UINT32 Signature; + EFI_HANDLE DriverHandle; + EFI_HII_CONFIG_ACCESS_PROTOCOL ConfigAccess; + UINT16 *KeyList; + VOID *FormBuffer; + EFI_HII_HANDLE RegisteredHandle; + ISCSI_ATTEMPT_CONFIG_NVDATA *Current; +}; + +/** + Initialize the iSCSI configuration form. + + @param[in] DriverBindingHandle The iSCSI driverbinding handle. + + @retval EFI_SUCCESS The iSCSI configuration form is initialized. + @retval EFI_OUT_OF_RESOURCES Failed to allocate memory. + +**/ +EFI_STATUS +IScsiConfigFormInit ( + IN EFI_HANDLE DriverBindingHandle + ); + +/** + Unload the iSCSI configuration form, this includes: delete all the iSCSI + configuration entries, uninstall the form callback protocol, and + free the resources used. + + @param[in] DriverBindingHandle The iSCSI driverbinding handle. + + @retval EFI_SUCCESS The iSCSI configuration form is unloaded. + @retval Others Failed to unload the form. + +**/ +EFI_STATUS +IScsiConfigFormUnload ( + IN EFI_HANDLE DriverBindingHandle + ); + +/** + Update the MAIN form to display the configured attempts. + +**/ +VOID +IScsiConfigUpdateAttempt ( + VOID + ); + +/** + Get the attempt config data from global structure by the ConfigIndex. + + @param[in] AttemptConfigIndex The unique index indicates the attempt. + + @return Pointer to the attempt config data. + @retval NULL The attempt configuration data can not be found. + +**/ +ISCSI_ATTEMPT_CONFIG_NVDATA * +IScsiConfigGetAttemptByConfigIndex ( + IN UINT8 AttemptConfigIndex + ); + +#endif -- cgit v1.2.3