--- /dev/null
+/*++\r
+\r
+Copyright (c) 2004 - 2007, Intel Corporation\r
+All rights reserved. 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
+Module Name:\r
+\r
+ IScsiDriver.h\r
+\r
+Abstract:\r
+\r
+--*/\r
+\r
+#ifndef _ISCSI_DRIVER_H_\r
+#define _ISCSI_DRIVER_H_\r
+\r
+#include <PiDxe.h>\r
+#include <Protocol/DevicePath.h>\r
+#include <Protocol/LoadedImage.h>\r
+#include <Library/UefiDriverEntryPoint.h>\r
+#include <Library/UefiBootServicesTableLib.h>\r
+#include <Library/UefiLib.h>\r
+#include <Library/DevicePathLib.h>\r
+#include <protocol/DriverBinding.h>\r
+#include <protocol/ScsiPassThruExt.h>\r
+#include <protocol/IScsiInitiatorName.h>\r
+#include <protocol/Ip4Config.h>\r
+#include <protocol/ComponentName.h>\r
+#include <protocol/ComponentName2.h>\r
+\r
+#define ISCSI_PRIVATE_GUID \\r
+ { \\r
+ 0xfa3cde4c, 0x87c2, 0x427d, 0xae, 0xde, 0x7d, 0xd0, 0x96, 0xc8, 0x8c, 0x58 \\r
+ }\r
+\r
+#define ISCSI_INITIATOR_NAME_VAR_NAME L"I_NAME"\r
+\r
+extern EFI_COMPONENT_NAME2_PROTOCOL gIScsiComponentName2;\r
+extern EFI_COMPONENT_NAME_PROTOCOL gIScsiComponentName;\r
+\r
+extern EFI_ISCSI_INITIATOR_NAME_PROTOCOL gIScsiInitiatorName;\r
+\r
+extern EFI_GUID mIScsiPrivateGuid;\r
+\r
+typedef struct _ISCSI_PRIVATE_PROTOCOL {\r
+ UINT32 Reserved;\r
+} ISCSI_PRIVATE_PROTOCOL;\r
+\r
+//\r
+// EFI Driver Binding Protocol for iSCSI driver.\r
+//\r
+EFI_STATUS\r
+EFIAPI\r
+IScsiDriverBindingSupported (\r
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
+ IN EFI_HANDLE ControllerHandle,\r
+ IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL\r
+ );\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+IScsiDriverBindingStart (\r
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
+ IN EFI_HANDLE ControllerHandle,\r
+ IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL\r
+ );\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+IScsiDriverBindingStop (\r
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
+ IN EFI_HANDLE ControllerHandle,\r
+ IN UINTN NumberOfChildren,\r
+ IN EFI_HANDLE *ChildHandleBuffer\r
+ );\r
+\r
+//\r
+// EFI Component Name Protocol for iSCSI driver.\r
+//\r
+EFI_STATUS\r
+EFIAPI\r
+IScsiComponentNameGetDriverName (\r
+ IN EFI_COMPONENT_NAME_PROTOCOL *This,\r
+ IN CHAR8 *Language,\r
+ OUT CHAR16 **DriverName\r
+ );\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+IScsiComponentNameGetControllerName (\r
+ IN EFI_COMPONENT_NAME_PROTOCOL *This,\r
+ IN EFI_HANDLE ControllerHandle,\r
+ IN EFI_HANDLE ChildHandle OPTIONAL,\r
+ IN CHAR8 *Language,\r
+ OUT CHAR16 **ControllerName\r
+ );\r
+\r
+//\r
+// EFI iSCSI Initiator Name Protocol for iSCSI driver.\r
+//\r
+EFI_STATUS\r
+EFIAPI\r
+IScsiGetInitiatorName (\r
+ IN EFI_ISCSI_INITIATOR_NAME_PROTOCOL *This,\r
+ IN OUT UINTN *BufferSize,\r
+ OUT VOID *Buffer\r
+ );\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+IScsiSetInitiatorName (\r
+ IN EFI_ISCSI_INITIATOR_NAME_PROTOCOL *This,\r
+ IN OUT UINTN *BufferSize,\r
+ OUT VOID *Buffer\r
+ );\r
+\r
+#endif\r