blob: 7341943778e9eb53553f24e45779ed1025d2c7f6 [file] [log] [blame]
#ifndef _EFI_UI_H
#define _EFI_UI_H
/*++
Copyright (c) 200 Intel Corporation
Module Name:
EfiUi.h
Abstract:
Protocol used to build User Interface (UI) stuff.
This protocol is just data. It is a multi dimentional array.
For each string there is an array of UI_STRING_ENTRY. Each string
is for a different language translation of the same string. The list
is terminated by a NULL UiString. There can be any number of
UI_STRING_ENTRY arrays. A NULL array terminates the list. A NULL array
entry contains all zeros.
Thus the shortest possible EFI_UI_PROTOCOL has three UI_STRING_ENTRY.
The String, it's NULL terminator, and the NULL terminator for the entire
thing.
Revision History
--*/
#define EFI_UI_PROTOCOL \
{ 0x32dd7981, 0x2d27, 0x11d4, {0xbc, 0x8b, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81} }
typedef enum {
UiDeviceString,
UiVendorString,
UiMaxString
} UI_STRING_TYPE;
typedef struct {
ISO_639_2 *LangCode;
CHAR16 *UiString;
} UI_STRING_ENTRY;
#define EFI_UI_VERSION 0x00010000
typedef struct _UI_INTERFACE {
UINT32 Version;
UI_STRING_ENTRY *Entry;
} UI_INTERFACE;
#endif