1 /*++
2 
3 Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>
4 This program and the accompanying materials
5 are licensed and made available under the terms and conditions of the BSD License
6 which accompanies this distribution.  The full text of the license may be found at
7 http://opensource.org/licenses/bsd-license.php
8 
9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
11 
12 Module Name:
13 
14   TianoHii.h
15 
16 Abstract:
17 
18   Tiano specific HII relative definition.
19 
20 Revision History
21 
22 --*/
23 
24 #ifndef _TIANO_HII_H_
25 #define _TIANO_HII_H_
26 
27 #include "EfiHii.h"
28 
29 #define NARROW_CHAR         0xFFF0
30 #define WIDE_CHAR           0xFFF1
31 #define NON_BREAKING_CHAR   0xFFF2
32 
33 #define GLYPH_WIDTH         EFI_GLYPH_WIDTH
34 #define GLYPH_HEIGHT        EFI_GLYPH_HEIGHT
35 
36 //
37 // State defined for password statemachine
38 //
39 #define BROWSER_STATE_VALIDATE_PASSWORD  0
40 #define BROWSER_STATE_SET_PASSWORD       1
41 
42 //
43 // References to string tokens must use this macro to enable scanning for
44 // token usages.
45 //
46 #define STRING_TOKEN(t) t
47 
48 //
49 // GUIDed opcodes defined for Tiano
50 //
51 #define EFI_IFR_TIANO_GUID \
52   { 0xf0b1735, 0x87a0, 0x4193, {0xb2, 0x66, 0x53, 0x8c, 0x38, 0xaf, 0x48, 0xce} }
53 //
54 // ClassGuid for Front Page
55 //
56 #define EFI_HII_FRONT_PAGE_CLASS_GUID \
57   { 0x94d411b7, 0x7669, 0x45c3, {0xba, 0x3b, 0xf3, 0xa5, 0x8a, 0x71, 0x56, 0x81} }
58 
59 #pragma pack(1)
60 
61 #define EFI_IFR_EXTEND_OP_LABEL       0x0
62 #define EFI_IFR_EXTEND_OP_BANNER      0x1
63 #define EFI_IFR_EXTEND_OP_TIMEOUT     0x2
64 #define EFI_IFR_EXTEND_OP_CLASS       0x3
65 #define EFI_IFR_EXTEND_OP_SUBCLASS    0x4
66 
67 typedef struct _EFI_IFR_GUID_LABEL {
68   EFI_IFR_OP_HEADER   Header;
69   EFI_GUID            Guid;
70   UINT8               ExtendOpCode;
71   UINT16              Number;
72 } EFI_IFR_GUID_LABEL;
73 
74 #define EFI_IFR_BANNER_ALIGN_LEFT     0
75 #define EFI_IFR_BANNER_ALIGN_CENTER   1
76 #define EFI_IFR_BANNER_ALIGN_RIGHT    2
77 
78 typedef struct _EFI_IFR_GUID_BANNER {
79   EFI_IFR_OP_HEADER   Header;
80   EFI_GUID            Guid;
81   UINT8               ExtendOpCode; // Extended opcode is EFI_IFR_EXTEND_OP_BANNER
82   EFI_STRING_ID       Title;        // The string token for the banner title
83   UINT16              LineNumber;   // 1-based line number
84   UINT8               Alignment;    // left, center, or right-aligned
85 } EFI_IFR_GUID_BANNER;
86 
87 typedef struct _EFI_IFR_GUID_TIMEOUT {
88   EFI_IFR_OP_HEADER   Header;
89   EFI_GUID            Guid;
90   UINT8               ExtendOpCode;
91   UINT16              TimeOut;
92 } EFI_IFR_GUID_TIMEOUT;
93 
94 #define EFI_NON_DEVICE_CLASS              0x00
95 #define EFI_DISK_DEVICE_CLASS             0x01
96 #define EFI_VIDEO_DEVICE_CLASS            0x02
97 #define EFI_NETWORK_DEVICE_CLASS          0x04
98 #define EFI_INPUT_DEVICE_CLASS            0x08
99 #define EFI_ON_BOARD_DEVICE_CLASS         0x10
100 #define EFI_OTHER_DEVICE_CLASS            0x20
101 
102 typedef struct _EFI_IFR_GUID_CLASS {
103   EFI_IFR_OP_HEADER   Header;
104   EFI_GUID            Guid;
105   UINT8               ExtendOpCode;
106   UINT16              Class;
107 } EFI_IFR_GUID_CLASS;
108 
109 #define EFI_SETUP_APPLICATION_SUBCLASS    0x00
110 #define EFI_GENERAL_APPLICATION_SUBCLASS  0x01
111 #define EFI_FRONT_PAGE_SUBCLASS           0x02
112 #define EFI_SINGLE_USE_SUBCLASS           0x03
113 
114 typedef struct _EFI_IFR_GUID_SUBCLASS {
115   EFI_IFR_OP_HEADER   Header;
116   EFI_GUID            Guid;
117   UINT8               ExtendOpCode;
118   UINT16              SubClass;
119 } EFI_IFR_GUID_SUBCLASS;
120 
121 #pragma pack()
122 
123 #endif
124