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