xref: /DragonStub/inc/efiui.h (revision 530d68ba191850edafc6da22cb2df55bec0c5fa5)
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_PROTOCOL \
32     { 0x32dd7981, 0x2d27, 0x11d4, {0xbc, 0x8b, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81} }
33 
34 
35 typedef enum {
36     UiDeviceString,
37     UiVendorString,
38     UiMaxString
39 } UI_STRING_TYPE;
40 
41 typedef struct {
42     ISO_639_2   *LangCode;
43     CHAR16      *UiString;
44 } UI_STRING_ENTRY;
45 
46 #define EFI_UI_VERSION      0x00010000
47 
48 typedef struct _UI_INTERFACE {
49     UINT32          Version;
50     UI_STRING_ENTRY *Entry;
51 } UI_INTERFACE;
52 
53 
54 #endif
55