]> git.proxmox.com Git - mirror_edk2.git/blame - MdeModulePkg/Universal/Network/IScsiDxe/IScsiMisc.h
edk2/MdeModulePkg/Universal/Network/IScsiDxe/IScsiTcp4Io.h:
[mirror_edk2.git] / MdeModulePkg / Universal / Network / IScsiDxe / IScsiMisc.h
CommitLineData
6a690e23 1/*++\r
2\r
7a444476 3Copyright (c) 2004 - 2007, Intel Corporation\r
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 IScsiMisc.h\r
15\r
16Abstract:\r
17\r
18 Miscellaneous definitions for iSCSI driver.\r
19\r
20--*/\r
21\r
22#ifndef _ISCSI_MISC_H_\r
23#define _ISCSI_MISC_H_\r
24\r
25#pragma pack(1)\r
26typedef struct _ISCSI_SESSION_CONFIG_NVDATA {\r
27 BOOLEAN Enabled;\r
28\r
29 BOOLEAN InitiatorInfoFromDhcp;\r
30 EFI_IPv4_ADDRESS LocalIp;\r
31 EFI_IPv4_ADDRESS SubnetMask;\r
32 EFI_IPv4_ADDRESS Gateway;\r
33\r
34 BOOLEAN TargetInfoFromDhcp;\r
35 CHAR8 TargetName[ISCSI_NAME_MAX_SIZE];\r
36 EFI_IPv4_ADDRESS TargetIp;\r
37 UINT16 TargetPort;\r
38 UINT8 BootLun[8];\r
39} ISCSI_SESSION_CONFIG_NVDATA;\r
40#pragma pack()\r
41\r
07a7038c 42struct _ISCSI_SESSION_CONFIG_DATA {\r
6a690e23 43 ISCSI_SESSION_CONFIG_NVDATA NvData;\r
44\r
45 EFI_IPv4_ADDRESS PrimaryDns;\r
46 EFI_IPv4_ADDRESS SecondaryDns;\r
47 EFI_IPv4_ADDRESS DhcpServer;\r
07a7038c 48};\r
6a690e23 49\r
50UINT8\r
51IScsiGetSubnetMaskPrefixLength (\r
52 IN EFI_IPv4_ADDRESS *SubnetMask\r
53 );\r
54\r
55EFI_STATUS\r
56IScsiAsciiStrToLun (\r
57 IN CHAR8 *Str,\r
58 OUT UINT8 *Lun\r
59 );\r
60\r
61VOID\r
62IScsiLunToUnicodeStr (\r
63 IN UINT8 *Lun,\r
64 OUT CHAR16 *String\r
65 );\r
66\r
67CHAR16 *\r
68IScsiAsciiStrToUnicodeStr (\r
69 IN CHAR8 *Source,\r
70 OUT CHAR16 *Destination\r
71 );\r
72\r
73CHAR8 *\r
74IScsiUnicodeStrToAsciiStr (\r
75 IN CHAR16 *Source,\r
76 OUT CHAR8 *Destination\r
77 );\r
78\r
79VOID\r
80IScsiMacAddrToStr (\r
81 IN EFI_MAC_ADDRESS *Mac,\r
82 IN UINT32 Len,\r
83 OUT CHAR16 *Str\r
84 );\r
85\r
86EFI_STATUS\r
87IScsiAsciiStrToIp (\r
88 IN CHAR8 *Str,\r
89 OUT EFI_IPv4_ADDRESS *Ip\r
90 );\r
91\r
92EFI_STATUS\r
93IScsiBinToHex (\r
94 IN UINT8 *BinBuffer,\r
95 IN UINT32 BinLength,\r
96 IN OUT CHAR8 *HexStr,\r
97 IN OUT UINT32 *HexLength\r
98 );\r
99\r
100EFI_STATUS\r
101IScsiHexToBin (\r
102 IN OUT UINT8 *BinBuffer,\r
103 IN OUT UINT32 *BinLength,\r
104 IN CHAR8 *HexStr\r
105 );\r
106\r
107VOID\r
108IScsiGenRandom (\r
109 IN OUT UINT8 *Rand,\r
110 IN UINTN RandLength\r
111 );\r
112\r
113ISCSI_DRIVER_DATA *\r
114IScsiCreateDriverData (\r
115 IN EFI_HANDLE Image,\r
116 IN EFI_HANDLE Controller\r
117 );\r
118\r
119VOID\r
120IScsiCleanDriverData (\r
121 IN ISCSI_DRIVER_DATA *Private\r
122 );\r
123\r
124EFI_STATUS\r
125IScsiGetConfigData (\r
126 IN ISCSI_DRIVER_DATA *Private\r
127 );\r
128\r
129EFI_DEVICE_PATH_PROTOCOL *\r
130IScsiGetTcpConnDevicePath (\r
131 IN ISCSI_DRIVER_DATA *Private\r
132 );\r
133\r
134VOID\r
135EFIAPI\r
136IScsiOnExitBootService (\r
137 IN EFI_EVENT Event,\r
138 IN VOID *Context\r
139 );\r
140\r
141extern CHAR16 NibbleToHexChar(UINT8 Nibble);\r
142\r
143#endif\r