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