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