xref: /DragonStub/inc/efiui.h (revision 751cbce3f640c79fbb4660cb59a372b79a7f4d11)
1530d68baSNigel Croxon #ifndef _EFI_UI_H
2530d68baSNigel Croxon #define _EFI_UI_H
3530d68baSNigel Croxon 
4530d68baSNigel Croxon /*++
5530d68baSNigel Croxon 
6530d68baSNigel Croxon Copyright (c) 200  Intel Corporation
7530d68baSNigel Croxon 
8530d68baSNigel Croxon Module Name:
9530d68baSNigel Croxon 
10530d68baSNigel Croxon     EfiUi.h
11530d68baSNigel Croxon 
12530d68baSNigel Croxon Abstract:
13530d68baSNigel Croxon     Protocol used to build User Interface (UI) stuff.
14530d68baSNigel Croxon 
15530d68baSNigel Croxon     This protocol is just data. It is a multi dimentional array.
16530d68baSNigel Croxon     For each string there is an array of UI_STRING_ENTRY. Each string
17530d68baSNigel Croxon     is for a different language translation of the same string. The list
18530d68baSNigel Croxon     is terminated by a NULL UiString. There can be any number of
19530d68baSNigel Croxon     UI_STRING_ENTRY arrays. A NULL array terminates the list. A NULL array
20530d68baSNigel Croxon     entry contains all zeros.
21530d68baSNigel Croxon 
22530d68baSNigel Croxon     Thus the shortest possible EFI_UI_PROTOCOL has three UI_STRING_ENTRY.
23530d68baSNigel Croxon     The String, it's NULL terminator, and the NULL terminator for the entire
24530d68baSNigel Croxon     thing.
25530d68baSNigel Croxon 
26530d68baSNigel Croxon 
27530d68baSNigel Croxon Revision History
28530d68baSNigel Croxon 
29530d68baSNigel Croxon --*/
30530d68baSNigel Croxon 
31*751cbce3SNigel Croxon #define EFI_UI_INTERFACE_PROTOCOL_GUID \
32530d68baSNigel Croxon     { 0x32dd7981, 0x2d27, 0x11d4, {0xbc, 0x8b, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81} }
33*751cbce3SNigel Croxon #define EFI_UI_PROTOCOL EFI_UI_INTERFACE_PROTOCOL_GUID
34530d68baSNigel Croxon 
35530d68baSNigel Croxon 
36530d68baSNigel Croxon typedef enum {
37530d68baSNigel Croxon     UiDeviceString,
38530d68baSNigel Croxon     UiVendorString,
39530d68baSNigel Croxon     UiMaxString
40530d68baSNigel Croxon } UI_STRING_TYPE;
41530d68baSNigel Croxon 
42530d68baSNigel Croxon typedef struct {
43530d68baSNigel Croxon     ISO_639_2   *LangCode;
44530d68baSNigel Croxon     CHAR16      *UiString;
45530d68baSNigel Croxon } UI_STRING_ENTRY;
46530d68baSNigel Croxon 
47*751cbce3SNigel Croxon #define EFI_UI_INTERFACE_PROTOCOL_VERSION 0x00010000
48*751cbce3SNigel Croxon #define EFI_UI_VERSION                    EFI_UI_INTERFACE_PROTOCOL_VERSION
49530d68baSNigel Croxon 
50*751cbce3SNigel Croxon typedef struct _EFI_UI_INTERFACE_PROTOCOL {
51530d68baSNigel Croxon     UINT32          Version;
52530d68baSNigel Croxon     UI_STRING_ENTRY *Entry;
53*751cbce3SNigel Croxon } EFI_UI_INTERFACE_PROTOCOL;
54530d68baSNigel Croxon 
55*751cbce3SNigel Croxon typedef struct _EFI_UI_INTERFACE_PROTOCOL _UI_INTERFACE;
56*751cbce3SNigel Croxon typedef EFI_UI_INTERFACE_PROTOCOL UI_INTERFACE;
57530d68baSNigel Croxon 
58530d68baSNigel Croxon #endif
59