1530d68baSNigel Croxon #ifndef _EFI_UI_H 2530d68baSNigel Croxon #define _EFI_UI_H 3530d68baSNigel Croxon 4530d68baSNigel Croxon /*++ 5530d68baSNigel Croxon 6530d68baSNigel Croxon Copyright (c) 200 Intel Corporation 7530d68baSNigel Croxon 8530d68baSNigel Croxon Module Name: 9530d68baSNigel Croxon 10530d68baSNigel Croxon EfiUi.h 11530d68baSNigel Croxon 12530d68baSNigel Croxon Abstract: 13530d68baSNigel Croxon Protocol used to build User Interface (UI) stuff. 14530d68baSNigel Croxon 15530d68baSNigel Croxon This protocol is just data. It is a multi dimentional array. 16530d68baSNigel Croxon For each string there is an array of UI_STRING_ENTRY. Each string 17530d68baSNigel Croxon is for a different language translation of the same string. The list 18530d68baSNigel Croxon is terminated by a NULL UiString. There can be any number of 19530d68baSNigel Croxon UI_STRING_ENTRY arrays. A NULL array terminates the list. A NULL array 20530d68baSNigel Croxon entry contains all zeros. 21530d68baSNigel Croxon 22530d68baSNigel Croxon Thus the shortest possible EFI_UI_PROTOCOL has three UI_STRING_ENTRY. 23530d68baSNigel Croxon The String, it's NULL terminator, and the NULL terminator for the entire 24530d68baSNigel Croxon thing. 25530d68baSNigel Croxon 26530d68baSNigel Croxon 27530d68baSNigel Croxon Revision History 28530d68baSNigel Croxon 29530d68baSNigel Croxon --*/ 30530d68baSNigel Croxon 31*751cbce3SNigel Croxon #define EFI_UI_INTERFACE_PROTOCOL_GUID \ 32530d68baSNigel Croxon { 0x32dd7981, 0x2d27, 0x11d4, {0xbc, 0x8b, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81} } 33*751cbce3SNigel Croxon #define EFI_UI_PROTOCOL EFI_UI_INTERFACE_PROTOCOL_GUID 34530d68baSNigel Croxon 35530d68baSNigel Croxon 36530d68baSNigel Croxon typedef enum { 37530d68baSNigel Croxon UiDeviceString, 38530d68baSNigel Croxon UiVendorString, 39530d68baSNigel Croxon UiMaxString 40530d68baSNigel Croxon } UI_STRING_TYPE; 41530d68baSNigel Croxon 42530d68baSNigel Croxon typedef struct { 43530d68baSNigel Croxon ISO_639_2 *LangCode; 44530d68baSNigel Croxon CHAR16 *UiString; 45530d68baSNigel Croxon } UI_STRING_ENTRY; 46530d68baSNigel Croxon 47*751cbce3SNigel Croxon #define EFI_UI_INTERFACE_PROTOCOL_VERSION 0x00010000 48*751cbce3SNigel Croxon #define EFI_UI_VERSION EFI_UI_INTERFACE_PROTOCOL_VERSION 49530d68baSNigel Croxon 50*751cbce3SNigel Croxon typedef struct _EFI_UI_INTERFACE_PROTOCOL { 51530d68baSNigel Croxon UINT32 Version; 52530d68baSNigel Croxon UI_STRING_ENTRY *Entry; 53*751cbce3SNigel Croxon } EFI_UI_INTERFACE_PROTOCOL; 54530d68baSNigel Croxon 55*751cbce3SNigel Croxon typedef struct _EFI_UI_INTERFACE_PROTOCOL _UI_INTERFACE; 56*751cbce3SNigel Croxon typedef EFI_UI_INTERFACE_PROTOCOL UI_INTERFACE; 57530d68baSNigel Croxon 58530d68baSNigel Croxon #endif 59