]> git.proxmox.com Git - mirror_edk2.git/blob - EdkCompatibilityPkg/Foundation/Framework/Protocol/FormBrowser/FormBrowser.h
bf776b001ac05b5bfd89f4168605afac8d18e7e0
[mirror_edk2.git] / EdkCompatibilityPkg / Foundation / Framework / Protocol / FormBrowser / FormBrowser.h
1 /*++
2
3 Copyright (c) 2004, 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 FormBrowser.h
15
16 Abstract:
17
18 The EFI_FORM_BROWSER_PROTOCOL is the interface to the EFI
19 Configuration Driver. This will allow the caller to direct the
20 configuration driver to use either the HII database or use the passed
21 in packet of data. This will also allow the caller to post messages
22 into the configuration drivers internal mailbox.
23
24 --*/
25
26 #ifndef _FORM_BROWSER_H_
27 #define _FORM_BROWSER_H_
28
29 #include EFI_PROTOCOL_DEFINITION (Hii)
30
31 //
32 // EFI_FORM_BROWSER_PROTOCOL_GUID has been changed from the one defined in Framework HII 0.92 as the
33 // Setup Browser protocol produced by HII Thunk Layer support the UEFI IFR and UEF String Package format.
34 //
35 #define EFI_FORM_BROWSER_PROTOCOL_GUID \
36 { \
37 0xfb7c852, 0xadca, 0x4853, {0x8d, 0xf, 0xfb, 0xa7, 0x1b, 0x1c, 0xe1, 0x1a} \
38 }
39
40
41 //#define EFI_FORM_BROWSER_PROTOCOL_GUID \
42 // { \
43 // 0xe5a1333e, 0xe1b4, 0x4d55, {0xce, 0xeb, 0x35, 0xc3, 0xef, 0x13, 0x34, 0x43} \
44 // }
45
46 //
47 // Forward reference for pure ANSI compatability
48 //
49 typedef struct _EFI_FORM_BROWSER_PROTOCOL EFI_FORM_BROWSER_PROTOCOL;
50
51 typedef struct {
52 UINT32 Length;
53 UINT16 Type;
54 UINT8 Data[1];
55 } EFI_HII_PACKET;
56
57 typedef struct {
58 EFI_HII_IFR_PACK *IfrData;
59 EFI_HII_STRING_PACK *StringData;
60 } EFI_IFR_PACKET;
61
62 typedef struct {
63 UINTN LeftColumn;
64 UINTN RightColumn;
65 UINTN TopRow;
66 UINTN BottomRow;
67 } SCREEN_DESCRIPTOR;
68
69 //
70 // The following types are currently defined:
71 //
72 typedef
73 EFI_STATUS
74 (EFIAPI *EFI_SEND_FORM) (
75 IN EFI_FORM_BROWSER_PROTOCOL * This,
76 IN BOOLEAN UseDatabase,
77 IN EFI_HII_HANDLE * Handle,
78 IN UINTN HandleCount,
79 IN EFI_IFR_PACKET * Packet,
80 IN EFI_HANDLE CallbackHandle,
81 IN UINT8 *NvMapOverride,
82 IN SCREEN_DESCRIPTOR * ScreenDimensions,
83 OUT BOOLEAN *ResetRequired OPTIONAL
84 );
85
86 typedef
87 EFI_STATUS
88 (EFIAPI *EFI_CREATE_POP_UP) (
89 IN UINTN NumberOfLines,
90 IN BOOLEAN HotKey,
91 IN UINTN MaximumStringSize,
92 OUT CHAR16 *StringBuffer,
93 OUT EFI_INPUT_KEY * KeyValue,
94 IN CHAR16 *String,
95 ...
96 );
97
98 struct _EFI_FORM_BROWSER_PROTOCOL {
99 EFI_SEND_FORM SendForm;
100 EFI_CREATE_POP_UP CreatePopUp;
101 };
102
103 extern EFI_GUID gEfiFormBrowserProtocolGuid;
104
105 #endif