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