]> git.proxmox.com Git - mirror_edk2.git/blame - MdeModulePkg/Universal/Network/IScsiDxe/IScsiDriver.h
edk2/MdeModulePkg/Universal/Network/IScsiDxe/IScsiDriver.c:
[mirror_edk2.git] / MdeModulePkg / Universal / Network / IScsiDxe / IScsiDriver.h
CommitLineData
6a690e23 1/*++\r
2\r
9cb8724d 3Copyright (c) 2004 - 2008, Intel Corporation\r
7a444476 4All rights reserved. This program and the accompanying materials\r
5are licensed and made available under the terms and conditions of the BSD License\r
6which accompanies this distribution. The full text of the license may be found at\r
7http://opensource.org/licenses/bsd-license.php\r
8\r
9THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
10WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
6a690e23 11\r
12Module Name:\r
13\r
14 IScsiDriver.h\r
15\r
16Abstract:\r
17\r
18--*/\r
19\r
20#ifndef _ISCSI_DRIVER_H_\r
21#define _ISCSI_DRIVER_H_\r
22\r
23#include <PiDxe.h>\r
24#include <Protocol/DevicePath.h>\r
25#include <Protocol/LoadedImage.h>\r
26#include <Library/UefiDriverEntryPoint.h>\r
27#include <Library/UefiBootServicesTableLib.h>\r
28#include <Library/UefiLib.h>\r
29#include <Library/DevicePathLib.h>\r
9cb8724d 30#include <Protocol/DriverBinding.h>\r
31#include <Protocol/ScsiPassThruExt.h>\r
32#include <Protocol/IScsiInitiatorName.h>\r
33#include <Protocol/Ip4Config.h>\r
34#include <Protocol/ComponentName.h>\r
35#include <Protocol/ComponentName2.h>\r
6a690e23 36\r
37#define ISCSI_PRIVATE_GUID \\r
38 { \\r
39 0xfa3cde4c, 0x87c2, 0x427d, 0xae, 0xde, 0x7d, 0xd0, 0x96, 0xc8, 0x8c, 0x58 \\r
40 }\r
41\r
42#define ISCSI_INITIATOR_NAME_VAR_NAME L"I_NAME"\r
43\r
44extern EFI_COMPONENT_NAME2_PROTOCOL gIScsiComponentName2;\r
45extern EFI_COMPONENT_NAME_PROTOCOL gIScsiComponentName;\r
46\r
47extern EFI_ISCSI_INITIATOR_NAME_PROTOCOL gIScsiInitiatorName;\r
48\r
49extern EFI_GUID mIScsiPrivateGuid;\r
50\r
51typedef struct _ISCSI_PRIVATE_PROTOCOL {\r
52 UINT32 Reserved;\r
53} ISCSI_PRIVATE_PROTOCOL;\r
54\r
55//\r
56// EFI Driver Binding Protocol for iSCSI driver.\r
57//\r
58EFI_STATUS\r
59EFIAPI\r
60IScsiDriverBindingSupported (\r
61 IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
62 IN EFI_HANDLE ControllerHandle,\r
63 IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL\r
64 );\r
65\r
66EFI_STATUS\r
67EFIAPI\r
68IScsiDriverBindingStart (\r
69 IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
70 IN EFI_HANDLE ControllerHandle,\r
71 IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL\r
72 );\r
73\r
74EFI_STATUS\r
75EFIAPI\r
76IScsiDriverBindingStop (\r
77 IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
78 IN EFI_HANDLE ControllerHandle,\r
79 IN UINTN NumberOfChildren,\r
80 IN EFI_HANDLE *ChildHandleBuffer\r
81 );\r
82\r
83//\r
84// EFI Component Name Protocol for iSCSI driver.\r
85//\r
86EFI_STATUS\r
87EFIAPI\r
88IScsiComponentNameGetDriverName (\r
89 IN EFI_COMPONENT_NAME_PROTOCOL *This,\r
90 IN CHAR8 *Language,\r
91 OUT CHAR16 **DriverName\r
92 );\r
93\r
94EFI_STATUS\r
95EFIAPI\r
96IScsiComponentNameGetControllerName (\r
97 IN EFI_COMPONENT_NAME_PROTOCOL *This,\r
98 IN EFI_HANDLE ControllerHandle,\r
99 IN EFI_HANDLE ChildHandle OPTIONAL,\r
100 IN CHAR8 *Language,\r
101 OUT CHAR16 **ControllerName\r
102 );\r
103\r
104//\r
105// EFI iSCSI Initiator Name Protocol for iSCSI driver.\r
106//\r
107EFI_STATUS\r
108EFIAPI\r
109IScsiGetInitiatorName (\r
110 IN EFI_ISCSI_INITIATOR_NAME_PROTOCOL *This,\r
111 IN OUT UINTN *BufferSize,\r
112 OUT VOID *Buffer\r
113 );\r
114\r
115EFI_STATUS\r
116EFIAPI\r
117IScsiSetInitiatorName (\r
118 IN EFI_ISCSI_INITIATOR_NAME_PROTOCOL *This,\r
119 IN OUT UINTN *BufferSize,\r
120 OUT VOID *Buffer\r
121 );\r
122\r
123#endif\r