]> git.proxmox.com Git - mirror_edk2.git/blob - MdeModulePkg/Universal/Network/IScsiDxe/IScsiMisc.h
move iscsi driver into network directory, and change its name to comply with name...
[mirror_edk2.git] / MdeModulePkg / Universal / Network / IScsiDxe / IScsiMisc.h
1 /*++
2
3 Copyright (c) 2004 - 2007, Intel Corporation
4 All rights reserved. This program and the accompanying materials
5 are licensed and made available under the terms and conditions of the BSD License
6 which accompanies this distribution. The full text of the license may be found at
7 http://opensource.org/licenses/bsd-license.php
8
9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
11
12 Module Name:
13
14 IScsiMisc.h
15
16 Abstract:
17
18 Miscellaneous definitions for iSCSI driver.
19
20 --*/
21
22 #ifndef _ISCSI_MISC_H_
23 #define _ISCSI_MISC_H_
24
25 #pragma pack(1)
26 typedef struct _ISCSI_SESSION_CONFIG_NVDATA {
27 BOOLEAN Enabled;
28
29 BOOLEAN InitiatorInfoFromDhcp;
30 EFI_IPv4_ADDRESS LocalIp;
31 EFI_IPv4_ADDRESS SubnetMask;
32 EFI_IPv4_ADDRESS Gateway;
33
34 BOOLEAN TargetInfoFromDhcp;
35 CHAR8 TargetName[ISCSI_NAME_MAX_SIZE];
36 EFI_IPv4_ADDRESS TargetIp;
37 UINT16 TargetPort;
38 UINT8 BootLun[8];
39 } ISCSI_SESSION_CONFIG_NVDATA;
40 #pragma pack()
41
42 struct _ISCSI_SESSION_CONFIG_DATA {
43 ISCSI_SESSION_CONFIG_NVDATA NvData;
44
45 EFI_IPv4_ADDRESS PrimaryDns;
46 EFI_IPv4_ADDRESS SecondaryDns;
47 EFI_IPv4_ADDRESS DhcpServer;
48 };
49
50 UINT8
51 IScsiGetSubnetMaskPrefixLength (
52 IN EFI_IPv4_ADDRESS *SubnetMask
53 );
54
55 EFI_STATUS
56 IScsiAsciiStrToLun (
57 IN CHAR8 *Str,
58 OUT UINT8 *Lun
59 );
60
61 VOID
62 IScsiLunToUnicodeStr (
63 IN UINT8 *Lun,
64 OUT CHAR16 *String
65 );
66
67 CHAR16 *
68 IScsiAsciiStrToUnicodeStr (
69 IN CHAR8 *Source,
70 OUT CHAR16 *Destination
71 );
72
73 CHAR8 *
74 IScsiUnicodeStrToAsciiStr (
75 IN CHAR16 *Source,
76 OUT CHAR8 *Destination
77 );
78
79 VOID
80 IScsiMacAddrToStr (
81 IN EFI_MAC_ADDRESS *Mac,
82 IN UINT32 Len,
83 OUT CHAR16 *Str
84 );
85
86 EFI_STATUS
87 IScsiAsciiStrToIp (
88 IN CHAR8 *Str,
89 OUT EFI_IPv4_ADDRESS *Ip
90 );
91
92 EFI_STATUS
93 IScsiBinToHex (
94 IN UINT8 *BinBuffer,
95 IN UINT32 BinLength,
96 IN OUT CHAR8 *HexStr,
97 IN OUT UINT32 *HexLength
98 );
99
100 EFI_STATUS
101 IScsiHexToBin (
102 IN OUT UINT8 *BinBuffer,
103 IN OUT UINT32 *BinLength,
104 IN CHAR8 *HexStr
105 );
106
107 VOID
108 IScsiGenRandom (
109 IN OUT UINT8 *Rand,
110 IN UINTN RandLength
111 );
112
113 ISCSI_DRIVER_DATA *
114 IScsiCreateDriverData (
115 IN EFI_HANDLE Image,
116 IN EFI_HANDLE Controller
117 );
118
119 VOID
120 IScsiCleanDriverData (
121 IN ISCSI_DRIVER_DATA *Private
122 );
123
124 EFI_STATUS
125 IScsiGetConfigData (
126 IN ISCSI_DRIVER_DATA *Private
127 );
128
129 EFI_DEVICE_PATH_PROTOCOL *
130 IScsiGetTcpConnDevicePath (
131 IN ISCSI_DRIVER_DATA *Private
132 );
133
134 VOID
135 EFIAPI
136 IScsiOnExitBootService (
137 IN EFI_EVENT Event,
138 IN VOID *Context
139 );
140
141 extern CHAR16 NibbleToHexChar(UINT8 Nibble);
142
143 #endif