Home | History | Annotate | Line # | Download | only in inc
efiui.h revision 1.1.1.1.36.1
      1  1.1.1.1.36.1  christos /*	$NetBSD: efiui.h,v 1.1.1.1.36.1 2019/06/10 22:08:35 christos 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.1.36.1  christos 
     14  1.1.1.1.36.1  christos 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.1.36.1  christos     is for a different language translation of the same string. The list
     20  1.1.1.1.36.1  christos     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.1.36.1  christos     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.1.36.1  christos     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.1.36.1  christos #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.1.36.1  christos #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.1.36.1  christos #define EFI_UI_INTERFACE_PROTOCOL_VERSION 0x00010000
     50  1.1.1.1.36.1  christos #define EFI_UI_VERSION                    EFI_UI_INTERFACE_PROTOCOL_VERSION
     51           1.1  jakllsch 
     52  1.1.1.1.36.1  christos typedef struct _EFI_UI_INTERFACE_PROTOCOL {
     53           1.1  jakllsch     UINT32          Version;
     54           1.1  jakllsch     UI_STRING_ENTRY *Entry;
     55  1.1.1.1.36.1  christos } EFI_UI_INTERFACE_PROTOCOL;
     56           1.1  jakllsch 
     57  1.1.1.1.36.1  christos typedef struct _EFI_UI_INTERFACE_PROTOCOL _UI_INTERFACE;
     58  1.1.1.1.36.1  christos typedef EFI_UI_INTERFACE_PROTOCOL UI_INTERFACE;
     59           1.1  jakllsch 
     60           1.1  jakllsch #endif
     61