xref: /DragonStub/inc/efiui.h (revision 0e6995a96b0f5867c8d85fbd251cfbc295a3fc4d)
1 #ifndef _EFI_UI_H
2 #define _EFI_UI_H
3 
4 /*++
5 
6 Copyright (c) 200  Intel Corporation
7 
8 Module Name:
9 
10     EfiUi.h
11 
12 Abstract:
13     Protocol used to build User Interface (UI) stuff.
14 
15     This protocol is just data. It is a multi dimentional array.
16     For each string there is an array of UI_STRING_ENTRY. Each string
17     is for a different language translation of the same string. The list
18     is terminated by a NULL UiString. There can be any number of
19     UI_STRING_ENTRY arrays. A NULL array terminates the list. A NULL array
20     entry contains all zeros.
21 
22     Thus the shortest possible EFI_UI_PROTOCOL has three UI_STRING_ENTRY.
23     The String, it's NULL terminator, and the NULL terminator for the entire
24     thing.
25 
26 
27 Revision History
28 
29 --*/
30 
31 #define EFI_UI_INTERFACE_PROTOCOL_GUID \
32     { 0x32dd7981, 0x2d27, 0x11d4, {0xbc, 0x8b, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81} }
33 #define EFI_UI_PROTOCOL EFI_UI_INTERFACE_PROTOCOL_GUID
34 
35 
36 typedef enum {
37     UiDeviceString,
38     UiVendorString,
39     UiMaxString
40 } UI_STRING_TYPE;
41 
42 typedef struct {
43     ISO_639_2   *LangCode;
44     CHAR16      *UiString;
45 } UI_STRING_ENTRY;
46 
47 #define EFI_UI_INTERFACE_PROTOCOL_VERSION 0x00010000
48 #define EFI_UI_VERSION                    EFI_UI_INTERFACE_PROTOCOL_VERSION
49 
50 typedef struct _EFI_UI_INTERFACE_PROTOCOL {
51     UINT32          Version;
52     UI_STRING_ENTRY *Entry;
53 } EFI_UI_INTERFACE_PROTOCOL;
54 
55 typedef struct _EFI_UI_INTERFACE_PROTOCOL _UI_INTERFACE;
56 typedef EFI_UI_INTERFACE_PROTOCOL UI_INTERFACE;
57 
58 #endif
59