]> git.proxmox.com Git - mirror_edk2.git/blob - MdeModulePkg/Universal/iScsi/IScsiConfig.h
UEFI HII: Merge UEFI HII support changes from branch.
[mirror_edk2.git] / MdeModulePkg / Universal / iScsi / IScsiConfig.h
1 /*++
2
3 Copyright (c) 2007 Intel Corporation. All rights reserved
4 This software and associated documentation (if any) is furnished
5 under a license and may only be used or copied in accordance
6 with the terms of the license. Except as permitted by such
7 license, no part of this software or documentation may be
8 reproduced, stored in a retrieval system, or transmitted in any
9 form or by any means without the express written consent of
10 Intel Corporation.
11
12 Module Name:
13
14 IScsiConfig.h
15
16 Abstract:
17
18
19 --*/
20
21 #ifndef _ISCSI_CONFIG_H_
22 #define _ISCSI_CONFIG_H_
23
24 //#include "Tiano.h"
25 //#include "EfiDriverLib.h"
26 //#include "Base.h"
27 #include <Library/HiiLib.h>
28 #include <Library/IfrSupportLib.h>
29 #include <Library/DebugLib.h>
30 #include <Library/BaseLib.h>
31 //#include "EfiPrintLib.h"
32 //#include EFI_PROTOCOL_DEFINITION (Hii)
33 //#include EFI_PROTOCOL_DEFINITION (FormBrowser)
34 //#include EFI_PROTOCOL_DEFINITION (FormCallback)
35
36 #include <Library/NetLib.h>
37 #include "IScsiConfigNVDataStruc.h"
38
39 extern UINT8 IScsiConfigDxeBin[];
40 extern UINT8 iSCSIStrings[];
41
42 #define ISCSI_INITATOR_NAME_VAR_NAME L"I_NAME"
43
44 #define ISCSI_CONFIG_VAR_ATTR (EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_NON_VOLATILE)
45
46 #define ISCSI_FORM_CALLBACK_INFO_SIGNATURE EFI_SIGNATURE_32 ('I', 'f', 'c', 'i')
47
48 #define ISCSI_FORM_CALLBACK_INFO_FROM_FORM_CALLBACK(Callback) \
49 CR ( \
50 Callback, \
51 ISCSI_FORM_CALLBACK_INFO, \
52 ConfigAccess, \
53 ISCSI_FORM_CALLBACK_INFO_SIGNATURE \
54 )
55
56 #pragma pack(1)
57
58 typedef struct _ISCSI_MAC_INFO {
59 EFI_MAC_ADDRESS Mac;
60 UINT8 Len;
61 } ISCSI_MAC_INFO;
62
63 typedef struct _ISCSI_DEVICE_LIST {
64 UINT8 NumDevice;
65 ISCSI_MAC_INFO MacInfo[1];
66 } ISCSI_DEVICE_LIST;
67
68 #pragma pack()
69
70 typedef struct _ISCSI_CONFIG_FORM_ENTRY {
71 NET_LIST_ENTRY Link;
72 EFI_HANDLE Controller;
73 CHAR16 MacString[95];
74 STRING_REF PortTitleToken;
75 STRING_REF PortTitleHelpToken;
76
77 ISCSI_SESSION_CONFIG_NVDATA SessionConfigData;
78 ISCSI_CHAP_AUTH_CONFIG_NVDATA AuthConfigData;
79 } ISCSI_CONFIG_FORM_ENTRY;
80
81 typedef struct _ISCSI_FORM_CALLBACK_INFO {
82 UINTN Signature;
83 EFI_HANDLE DriverHandle;
84 EFI_HII_CONFIG_ACCESS_PROTOCOL ConfigAccess;
85 EFI_HII_DATABASE_PROTOCOL *HiiDatabase;
86 EFI_HII_CONFIG_ROUTING_PROTOCOL *ConfigRouting;
87 UINT16 *KeyList;
88 VOID *FormBuffer;
89 EFI_HII_HANDLE RegisteredHandle;
90 ISCSI_CONFIG_FORM_ENTRY *Current;
91 } ISCSI_FORM_CALLBACK_INFO;
92
93 EFI_STATUS
94 IScsiConfigUpdateForm (
95 IN EFI_HANDLE DriverBindingHandle,
96 IN EFI_HANDLE Controller,
97 IN BOOLEAN AddForm
98 );
99
100 EFI_STATUS
101 IScsiConfigFormInit (
102 IN EFI_HANDLE DriverBindingHandle
103 );
104
105 EFI_STATUS
106 IScsiConfigFormUnload (
107 IN EFI_HANDLE DriverBindingHandle
108 );
109
110 #endif