summaryrefslogtreecommitdiff
path: root/NetworkPkg/IScsiDxe/IScsiConfig.h
diff options
context:
space:
mode:
authortye1 <tye1@6f19259b-4bc3-4df7-8a09-765794883524>2011-08-17 02:38:08 +0000
committertye1 <tye1@6f19259b-4bc3-4df7-8a09-765794883524>2011-08-17 02:38:08 +0000
commit4c5a5e0cfecf23526493bf9a05c0530805bf10ec (patch)
tree832ac48ee2b892817a1414fca804954ae6502e1a /NetworkPkg/IScsiDxe/IScsiConfig.h
parentab0eecec6e1233b7ca179d8a8f2b2e44e9546b7f (diff)
downloadedk2-platforms-4c5a5e0cfecf23526493bf9a05c0530805bf10ec.tar.xz
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
Diffstat (limited to 'NetworkPkg/IScsiDxe/IScsiConfig.h')
-rw-r--r--NetworkPkg/IScsiDxe/IScsiConfig.h158
1 files changed, 158 insertions, 0 deletions
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.<BR>
+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