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_INTERFACE_PROTOCOL_GUID \ 32 { 0x32dd7981, 0x2d27, 0x11d4, {0xbc, 0x8b, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81} } 33 #define EFI_UI_PROTOCOL EFI_UI_INTERFACE_PROTOCOL_GUID 34 35 36 typedef enum { 37 UiDeviceString, 38 UiVendorString, 39 UiMaxString 40 } UI_STRING_TYPE; 41 42 typedef struct { 43 ISO_639_2 *LangCode; 44 CHAR16 *UiString; 45 } UI_STRING_ENTRY; 46 47 #define EFI_UI_INTERFACE_PROTOCOL_VERSION 0x00010000 48 #define EFI_UI_VERSION EFI_UI_INTERFACE_PROTOCOL_VERSION 49 50 typedef struct _EFI_UI_INTERFACE_PROTOCOL { 51 UINT32 Version; 52 UI_STRING_ENTRY *Entry; 53 } EFI_UI_INTERFACE_PROTOCOL; 54 55 typedef struct _EFI_UI_INTERFACE_PROTOCOL _UI_INTERFACE; 56 typedef EFI_UI_INTERFACE_PROTOCOL UI_INTERFACE; 57 58 #endif 59