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