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