Imported Upstream version 3.0
[platform/upstream/gnu-efi.git] / inc / efiui.h
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