summaryrefslogtreecommitdiff
path: root/Include/Protocol/HiiDatabase.h
blob: b53d177b75c1eca7e263c231513380b5328215ad (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
//**********************************************************************
//**********************************************************************
//**                                                                  **
//**        (C)Copyright 1985-2009, American Megatrends, Inc.         **
//**                                                                  **
//**                       All Rights Reserved.                       **
//**                                                                  **
//**      5555 Oakbrook Parkway, Suite 200, Norcross, GA 30093        **
//**                                                                  **
//**                       Phone: (770)-246-8600                      **
//**                                                                  **
//**********************************************************************
//**********************************************************************

//**********************************************************************
// $Header: /Alaska/BIN/Core/Include/Protocol/HiiDatabase.h 2     10/13/09 6:06p Felixp $
//
// $Revision: 2 $
//
// $Date: 10/13/09 6:06p $
//**********************************************************************
// Revision History
// ----------------
// $Log: /Alaska/BIN/Core/Include/Protocol/HiiDatabase.h $
// 
// 2     10/13/09 6:06p Felixp
// Hii.h renamed to UefiHii.h
// 
// 1     10/09/09 3:52p Felixp
// 
// 1     2/27/09 3:55p Artems
// Initial check-in
// 
// 1     3/18/07 5:23p Felixp
// 
//**********************************************************************
//<AMI_FHDR_START>
//
// Name:	<HiiDatabase.h>
//
// Description:	Hii Database protocol header file
//
//<AMI_FHDR_END>
//**********************************************************************
#ifndef __HII_DATABASE__H__
#define __HII_DATABASE__H__
#ifdef __cplusplus
extern "C" {
#endif

#include <UefiHii.h>

#define EFI_HII_DATABASE_PROTOCOL_GUID \
    { 0xef9fc172, 0xa1b2, 0x4693, 0xb3, 0x27, 0x6d, 0x32, 0xfc, 0x41, 0x60, 0x42 }

GUID_VARIABLE_DECLARATION(gEfiHiiDatabaseProtocolGuid, EFI_HII_DATABASE_PROTOCOL_GUID);

typedef struct _EFI_HII_DATABASE_PROTOCOL EFI_HII_DATABASE_PROTOCOL;

typedef EFI_STATUS
(EFIAPI *EFI_HII_DATABASE_NEW_PACK) (
    IN CONST EFI_HII_DATABASE_PROTOCOL      *This,
    IN CONST EFI_HII_PACKAGE_LIST_HEADER    *PackageList,
    IN CONST EFI_HANDLE                     DriverHandle,
    OUT EFI_HII_HANDLE                      *Handle
);

typedef EFI_STATUS
(EFIAPI *EFI_HII_DATABASE_REMOVE_PACK) (
    IN CONST EFI_HII_DATABASE_PROTOCOL  *This,
    IN EFI_HII_HANDLE                   Handle
);

typedef EFI_STATUS
(EFIAPI *EFI_HII_DATABASE_UPDATE_PACK) (
    IN CONST EFI_HII_DATABASE_PROTOCOL      *This,
    IN EFI_HII_HANDLE                       Handle,
    IN CONST EFI_HII_PACKAGE_LIST_HEADER    *PackageList
);

typedef EFI_STATUS
(EFIAPI *EFI_HII_DATABASE_LIST_PACKS) (
    IN CONST EFI_HII_DATABASE_PROTOCOL  *This,
    IN UINT8                            PackageType,
    IN CONST EFI_GUID                   *PackageGuid,
    IN OUT UINTN                        *HandleBufferLength,
    OUT EFI_HII_HANDLE                  *Handle
);

typedef EFI_STATUS
(EFIAPI *EFI_HII_DATABASE_EXPORT_PACKS) (
    IN CONST EFI_HII_DATABASE_PROTOCOL  *This,
    IN EFI_HII_HANDLE                   Handle,
    IN OUT UINTN                        *BufferSize,
    OUT EFI_HII_PACKAGE_LIST_HEADER     *Buffer
);

typedef UINTN EFI_HII_DATABASE_NOTIFY_TYPE;

#define EFI_HII_DATABASE_NOTIFY_NEW_PACK    0x00000001
#define EFI_HII_DATABASE_NOTIFY_REMOVE_PACK 0x00000002
#define EFI_HII_DATABASE_NOTIFY_EXPORT_PACK 0x00000004
#define EFI_HII_DATABASE_NOTIFY_ADD_PACK    0x00000008

typedef EFI_STATUS
(EFIAPI *EFI_HII_DATABASE_NOTIFY) (
    IN UINT8                        PackageType,
    IN CONST EFI_GUID               *PackageGuid,
    IN CONST EFI_HII_PACKAGE_HEADER *Package,
    IN EFI_HII_HANDLE               Handle,
    IN EFI_HII_DATABASE_NOTIFY_TYPE NotifyType
);

typedef EFI_STATUS
(EFIAPI *EFI_HII_DATABASE_REGISTER_NOTIFY) (
    IN CONST EFI_HII_DATABASE_PROTOCOL  *This,
    IN UINT8                            PackageType,
    IN CONST EFI_GUID                   *PackageGuid,
    IN CONST EFI_HII_DATABASE_NOTIFY    PackageNotifyFn,
    IN EFI_HII_DATABASE_NOTIFY_TYPE     NotifyType,
    OUT EFI_HANDLE                      *NotifyHandle
);

typedef EFI_STATUS
(EFIAPI *EFI_HII_DATABASE_UNREGISTER_NOTIFY) (
    IN CONST EFI_HII_DATABASE_PROTOCOL *This,
    IN EFI_HANDLE NotificationHandle
);

typedef EFI_STATUS
(EFIAPI *EFI_HII_FIND_KEYBOARD_LAYOUTS) (
    IN EFI_HII_DATABASE_PROTOCOL    *This,
    IN OUT UINT16                   *KeyGuidBufferLength,
    OUT EFI_GUID                    *KeyGuidBuffer
);

typedef
EFI_STATUS (EFIAPI *EFI_HII_GET_KEYBOARD_LAYOUT) (
    IN EFI_HII_DATABASE_PROTOCOL    *This,
    IN EFI_GUID                     *KeyGuid,
    IN OUT UINT16                   *KeyGuidBufferLength,
    OUT EFI_HII_KEYBOARD_LAYOUT     *KeyboardLayout
);

typedef
EFI_STATUS (EFIAPI *EFI_HII_SET_KEYBOARD_LAYOUT) (
    IN EFI_HII_DATABASE_PROTOCOL *This,
    IN EFI_GUID                  *KeyGuid
);

typedef
EFI_STATUS (EFIAPI *EFI_HII_DATABASE_GET_PACK_HANDLE) (
    IN EFI_HII_DATABASE_PROTOCOL *This,
    IN EFI_HII_HANDLE            PackageListHandle,
    OUT EFI_HANDLE               *DriverHandle
);

struct _EFI_HII_DATABASE_PROTOCOL {
    EFI_HII_DATABASE_NEW_PACK           NewPackageList;
    EFI_HII_DATABASE_REMOVE_PACK        RemovePackageList;
    EFI_HII_DATABASE_UPDATE_PACK        UpdatePackageList;
    EFI_HII_DATABASE_LIST_PACKS         ListPackageLists;
    EFI_HII_DATABASE_EXPORT_PACKS       ExportPackageLists;
    EFI_HII_DATABASE_REGISTER_NOTIFY    RegisterPackageNotify;
    EFI_HII_DATABASE_UNREGISTER_NOTIFY  UnregisterPackageNotify;
    EFI_HII_FIND_KEYBOARD_LAYOUTS       FindKeyboardLayouts;
    EFI_HII_GET_KEYBOARD_LAYOUT         GetKeyboardLayout;
    EFI_HII_SET_KEYBOARD_LAYOUT         SetKeyboardLayout;
    EFI_HII_DATABASE_GET_PACK_HANDLE    GetPackageListHandle;
};

/****** DO NOT WRITE BELOW THIS LINE *******/
#ifdef __cplusplus
}
#endif
#endif
//**********************************************************************
//**********************************************************************
//**                                                                  **
//**        (C)Copyright 1985-2009, American Megatrends, Inc.         **
//**                                                                  **
//**                       All Rights Reserved.                       **
//**                                                                  **
//**      5555 Oakbrook Parkway, Suite 200, Norcross, GA 30093        **
//**                                                                  **
//**                       Phone: (770)-246-8600                      **
//**                                                                  **
//**********************************************************************
//**********************************************************************