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