1 // SPDX-License-Identifier: GPL-2.0+ 2 /* 3 * This file's test data is derived from UEFI SCT. 4 * The original copyright is attached below. 5 */ 6 7 /* 8 * Copyright 2006 - 2016 Unified EFI, Inc.<BR> 9 * Copyright (c) 2010 - 2016, Intel Corporation. All rights reserved.<BR> 10 * 11 * This program and the accompanying materials 12 * are licensed and made available under the terms and conditions of the BSD 13 * License which accompanies this distribution. The full text of the license 14 * may be found at 15 * http://opensource.org/licenses/bsd-license.php 16 * 17 * THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 18 * WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 19 */ 20 21 #include <efi.h> 22 23 #ifdef NOT_USED 24 /* 25 * TODO: These macro's are not used as they appear only in 26 * "#ifdef NOT_USED" clauses. In the future, define them elsewhere. 27 */ 28 29 /* HII form */ 30 #define EFI_IFR_AND_OP 0x15 31 #define EFI_IFR_END_OP 0x29 32 #define EFI_IFR_BITWISE_AND_OP 0x35 33 34 /* HII image */ 35 #define EFI_HII_IIBT_END 0x00 36 #define EFI_HII_IIBT_IMAGE_1BIT 0x10 37 #endif 38 39 /* HII keyboard layout */ 40 #define EFI_NULL_MODIFIER 0x0000 41 42 u8 packagelist1[] = { 43 // EFI_HII_PACKAGE_LIST_HEADER, length = 20 44 // SimpleFont, Font, GUID, Form, String, Image, DevicePath, 45 // (74) (110) 20 (8) 78 (67) (8) 46 // KeyboardLayout, End 47 // 192 4 48 49 0x89, 0xcd, 0xab, 0x03, 0xf4, 0x03, 0x44, 0x70, 50 0x81, 0xde, 0x99, 0xb1, 0x81, 0x20, 0xf7, 0x68, //16: guid 51 0x3a, 0x01, 0x00, 0x00, // 4: total 314(0x13a) 52 #ifdef NOT_USED /* TODO: simple font package not implemented yet */ 53 // 54 // Simple Font Package 1, length = 74 55 // 56 0x4A, 0x00, 0x00, 57 EFI_HII_PACKAGE_SIMPLE_FONTS, 58 1, 0, 59 1, 0, 60 0x55, 0x0, 0x1, 61 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 62 0x77, 0x0, 0x2, 63 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 64 3, 4, 5, 65 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 0, 0, 0, 66 // 67 // Font Package 1, length = 110 68 // 69 0x6e, 0x00, 0x00, // 3 70 EFI_HII_PACKAGE_FONTS, // 1 71 0x5c, 0x00, 0x00, 0x00, // 4: size of header 72 0x5c, 0x00, 0x00, 0x00, // 4: offset 73 0xf1, 0x00, 0xf2, 0x00, 0xf3, 0x00, 0xf4, 0x00, 74 0xf5, 0x00, 0xec, 0xec, //10+2(pads) 75 0xff, 0x33, 0xff, 0x44, // 4: font style 76 0x77, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 77 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 78 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 79 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 80 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 81 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 82 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 83 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, //64 84 // 85 // Glyph block 1, length = 18 86 // 87 EFI_HII_GIBT_GLYPH_DEFAULT, // 1 88 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x99, 89 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, //16: BitMapData 90 EFI_HII_GIBT_END, // 1 91 #endif 92 // 93 // Guid Package 1, length = 20 94 // 95 0x14, 0x00, 0x00, // 3 96 EFI_HII_PACKAGE_TYPE_GUID, // 1 97 0x5a, 0xc9, 0x87, 0x03, 0x3, 0xd7, 0x46, 0x23, 98 0xb2, 0xab, 0xd0, 0xc7, 0xdd, 0x90, 0x44, 0xf8, //16: guid 99 #ifdef NOT_USED /* TODO: form package not implemented yet */ 100 // 101 // EFI_HII_PACKAGE_FORMS, length = 8 102 // 103 0x08, 0x00, 0x00, // 3 104 EFI_HII_PACKAGE_FORMS, // 1 105 // 106 // Opcode 1, length = 4 107 // 108 EFI_IFR_AND_OP, 109 0x82, 110 EFI_IFR_END_OP, 111 0x02, 112 // 113 #endif 114 // EFI_HII_PACKAGE_STRINGS, length = 78 115 // 116 0x4e, 0x00, 0x00, // 3: length(header) 117 EFI_HII_PACKAGE_STRINGS, // 1: type(header) 118 0x3c, 0x00, 0x00, 0x00, // 4: header_size 119 0x3c, 0x00, 0x00, 0x00, // 4: string_offset 120 0x00, 0x00, 0x11, 0x22, 0x44, 0x55, 0x77, 0x89, //32: language_window 121 0x11, 0x00, 0x11, 0x22, 0x44, 0x55, 0x87, 0x89, 122 0x22, 0x00, 0x11, 0x22, 0x44, 0x55, 0x77, 0x89, 123 0x33, 0x00, 0x11, 0x22, 0x44, 0x55, 0x77, 0x89, 124 0x01, 0x00, // 2: language name 125 0x65, 0x6e, 0x2d, 0x55, 0x53, 0x3b, 0x7a, 0x68, //14: language 126 0x2d, 0x48, 0x61, 0x6e, 0x74, 0x00, // "en-US;zh-Hant" 127 EFI_HII_SIBT_STRING_UCS2, // 1 128 0x45, 0x00, 0x6E, 0x00, 0x67, 0x00, 0x6C, 0x00, 129 0x69, 0x00, 0x73, 0x00, 0x68, 0x00, 0x00, 0x00, //16: "English" 130 EFI_HII_SIBT_END, // 1 131 #ifdef NOT_USED /* TODO: image package not implemented yet */ 132 // 133 // EFI_HII_PACKAGE_IMAGES, length = 67 134 // 135 0x43, 0x00, 0x00, // 3 136 EFI_HII_PACKAGE_IMAGES, // 1 137 0x0c, 0x00, 0x00, 0x00, // 4: image info offset 138 0x39, 0x00, 0x00, 0x00, // 4: palette info offset 139 EFI_HII_IIBT_IMAGE_1BIT, // 1 140 0x01, 141 0x0b, 0x00, 142 0x13, 0x00, 143 0x80, 0x00, 144 0xc0, 0x00, 145 0xe0, 0x00, 146 0xf0, 0x00, 147 0xf8, 0x00, 148 0xfc, 0x00, 149 0xfe, 0x00, 150 0xff, 0x00, 151 0xff, 0x80, 152 0xff, 0xc0, 153 0xff, 0xe0, 154 0xfe, 0x00, 155 0xef, 0x00, 156 0xcf, 0x00, 157 0x87, 0x80, 158 0x07, 0x80, 159 0x03, 0xc0, 160 0x03, 0xc0, 161 0x01, 0x80, //43 162 EFI_HII_IIBT_END, // 1 163 0x01, 0x00, 164 0x06, 0x00, 165 0x00, 0x00, 0x00, 166 0xFF, 0xFF, 0xFF, //10 167 // 168 // EFI_HII_PACKAGE_DEVICE_PATH, length = 8 169 // 170 0x08, 0x00, 0x00, // 3 171 EFI_HII_PACKAGE_DEVICE_PATH, // 1 172 0x01, 0x23, 0x45, 0x66, // 4: dummy device path protocol 173 // instance address 174 #endif 175 // 176 // Keyboard layout package 1, length = 192 177 0xc0, 0x00, 0x00, // 3: length(header) 178 EFI_HII_PACKAGE_KEYBOARD_LAYOUT, // 1: type(header) 179 0x02, 0x00, // 2: LayoutCount 180 // 181 // Layout 1, length = 93 182 // 183 0x5d, 0x00, // 2: layout_length 184 0x95, 0xe4, 0x40, 0x8d, 0xaa, 0xe2, 0x6f, 0x4c, 185 0x89, 0x70, 0x68, 0x85, 0x09, 0xee, 0xc7, 0xd2, //16: guid 186 0x37, 0x00, 0x00, 0x00, // 4: layout_descriptor_ 187 // string_offset 188 0x02, // 1: descriptor_count 189 // 190 // Descriptor 1, length = 16 191 // 192 49, 0x00, 0x00, 0x00, // 4: key (EfiKeyD1) 193 'q', 0x00, // 2: unicode 194 'Q', 0x00, // 2: shifted_unicode 195 0x00, 0x00, // 2: alt_gr_unicode 196 0x00, 0x00, // 2: shifted_alt_gr_unicode 197 EFI_NULL_MODIFIER, 0x00, // 2: modifier 198 0x03, 0x00, // 2: affected_attribute 199 // 200 // Descriptor 2, length = 16 201 // 202 50, 0x00, 0x00, 0x00, // 4: key (EfiKeyD2) 203 'w', 0x00, // 2: unicode 204 'W', 0x00, // 2: shifted_unicode 205 0x00, 0x00, // 2: alt_gr_unicode 206 0x00, 0x00, // 2: shifted_alt_gr_unicode 207 EFI_NULL_MODIFIER, 0x00, // 2: modifier 208 0x3, 0x0, // 2: affected_attribute 209 // 210 // EFI_DESCRIPTOR_STRING_BUNDLE, length = 38 211 // 212 0x01, 0x00, // 2: DescriptionCount 213 'e', 0x0, 'n', 0x0, '-', 0x0, 'U', 0x0, 'S', 0x0, 214 //10: RFC3066 language code 215 ' ', 0x0, // 2: Space 216 'S', 0x0, 'i', 0x0, 'm', 0x0, 'p', 0x0, 'l', 0x0, 'e', 0x0, 217 '1', 0x0, 'o', 0x0, 'n', 0x0, 'l', 0x0, 'y', 0x0, '\0', 0x0, 218 //24: DescriptionString 219 // 220 // Layout 2, length = 93 221 // 222 0x5d, 0x00, // 2: layout_length 223 0x3e, 0x0b, 0xe6, 0x2a, 0xd6, 0xb9, 0xd8, 0x49, 224 0x9a, 0x16, 0xc2, 0x48, 0xf1, 0xeb, 0xa8, 0xdb, //16: guid 225 0x37, 0x00, 0x00, 0x00, // 4: layout_descriptor_ 226 // string_offset 227 0x02, // 1 Descriptor count 228 // 229 // Descriptor 1, length = 16 230 // 231 51, 0x0, 0x0, 0x0, // 4: key (EfiKeyD3) 232 'e', 0x00, // 2: unicode 233 'E', 0x00, // 2: shifted_unicode 234 0x00, 0x00, // 2: alt_gr_unicode 235 0x00, 0x00, // 2: shifted_alt_gr_unicode 236 EFI_NULL_MODIFIER, 0x0, // 2: modifier 237 0x3, 0x0, // 2: affected_attribute 238 // 239 // Descriptor 2, length = 16 240 // 241 52, 0x0, 0x0, 0x0, // 4: key (EfiKeyD4) 242 'r', 0x00, // 2: unicode 243 'R', 0x00, // 2: shifted_unicode 244 0x00, 0x00, // 2: alt_gr_unicode 245 0x00, 0x00, // 2: shifted_alt_gr_unicode 246 EFI_NULL_MODIFIER, 0x0, // 2: modifier 247 0x3, 0x0, // 2: affected_attribute 248 // 249 // EFI_DESCRIPTOR_STRING_BUNDLE, length = 38 250 // 251 0x01, 0x00, // 2: DescriptionCount 252 'e', 0x0, 'n', 0x0, '-', 0x0, 'U', 0x0, 'S', 0x0, 253 //10: RFC3066 language code 254 ' ', 0x0, // 2: Space 255 'S', 0x0, 'i', 0x0, 'm', 0x0, 'p', 0x0, 'l', 0x0, 'e', 0x0, 256 '2', 0x0, 'o', 0x0, 'n', 0x0, 'l', 0x0, 'y', 0x0, '\0', 0x0, 257 //24: DescriptionString 258 // 259 // End of package list, length = 4 260 // 261 0x4, 0x00, 0x00, 262 EFI_HII_PACKAGE_END 263 }; 264 265 u8 packagelist2[] = { 266 // EFI_HII_PACKAGE_LIST_HEADER, length = 20 267 // SimpleFont, Font, GUID, KeyboardLayout, Form, End 268 // (74) (122) 20 192 (8) 4 269 0xd3, 0xde, 0x85, 0x86, 0xce, 0x1b, 0xf3, 0x43, 270 0xa2, 0x0c, 0xa3, 0x06, 0xec, 0x69, 0x72, 0xdd, //16 271 0xec, 0x00, 0x00, 0x00, // 4: total 236(0xec) 272 273 #ifdef NOT_USED /* TODO: simple font package not implemented yet */ 274 // 275 // Simple Font Package 2, length = 74 276 // 277 0x4A, 0x00, 0x00, // 3 278 EFI_HII_PACKAGE_SIMPLE_FONTS, // 1 279 1, 0, // 2 280 1, 0, // 2 281 0x33, 0x0, 0, 1, 2, 3, 4, 5, 0, 7, 8, 9, 282 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, //22 283 0x44, 0x0, 0x2, 2, 3, 4, 5, 6, 0, 8, 9, 284 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, //22 285 3, 4, 5, 6, 7, 8, 9, 10, 11, 9, 13, 286 14, 15, 16, 17, 18, 19, 20, 21, 0, 0, 0, //22 287 // 288 // Font Package 2, length = 122 289 // 290 0x7A, 0x00, 0x00, // 3 291 EFI_HII_PACKAGE_FONTS, // 1 292 0x5C, 0x00, 0x00, 0x00, // 4: size of header 293 0x5C, 0x00, 0x00, 0x00, // 4: dummy offset 294 0xf1, 0x00, 0xf2, 0x00, 0xf3, 0x00, 0xf4, 0x00, 295 0xf5, 0x00, 0xec, 0xec, //10+2(pads) 296 0xff, 0x11, 0xff, 0x22, // 4: font style 297 0x99, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 298 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 299 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 300 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 301 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 302 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 303 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 304 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, //64 305 // 306 // Glyph block 1, length = 30 307 // 308 EFI_HII_GIBT_GLYPH, // 1 309 0xf1, 0x00, 0xf2, 0x00, 0xf3, 0x00, 0xf4, 0x00, 310 0xf5, 0x00, //10 311 0xff, 0x01, // 2 312 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 313 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, //16: BitMapData 314 EFI_HII_GIBT_END, // 1 315 #endif 316 // 317 // Guid Package 1, length = 20 318 // 319 0x14, 0x00, 0x00, // 3 320 EFI_HII_PACKAGE_TYPE_GUID, // 1 321 0x5a, 0xc9, 0x87, 0x03, 0x3, 0xd7, 0x46, 0x23, 322 0xb2, 0xab, 0xd0, 0xc7, 0xdd, 0x90, 0x44, 0xf8, //16: guid 323 // 324 // Keyboard layout package 2, length = 192 325 0xc0, 0x00, 0x00, // 3 326 EFI_HII_PACKAGE_KEYBOARD_LAYOUT, // 1 327 0x02, 0x00, //0xec, 0xec, // 2: LayoutCount 328 // 329 // Layout 1, length = 93 330 // 331 0x5d, 0x00, // 2: layout_length 332 0x1f, 0x6a, 0xf5, 0xe0, 0x6b, 0xdf, 0x7e, 0x4a, 333 0xa3, 0x9a, 0xe7, 0xa5, 0x19, 0x15, 0x45, 0xd6,//16: guid 334 0x37, 0x00, 0x00, 0x00, // 4: layout_descriptor 335 // string offset 336 0x02, // 1: descriptor_count 337 // 338 // Descriptor 1, length = 16 339 // 340 32, 0x00, 0x00, 0x00, // 4: key (EfiKeyC1) 341 'a', 0x00, // 2: unicode 342 'A', 0x00, // 2: shifted_unicode 343 0x00, 0x00, // 2: alt_gr_unicode 344 0x00, 0x00, // 2: shifted_alt_gr_unic 345 EFI_NULL_MODIFIER, 0x00, // 2: modifier 346 0x03, 0x00, // 2: affected_attribute 347 // 348 // Descriptor 2, length = 16 349 // 350 33 /*EfiKeyC2*/, 0x00, 0x00, 0x00, 351 's', 0x00, 352 'S', 0x00, 353 0x00, 0x00, 354 0x00, 0x00, 355 EFI_NULL_MODIFIER, 0x00, 356 0x3, 0x0, 357 // 358 // EFI_DESCRIPTOR_STRING_BUNDLE, length = 38 359 // 360 0x01, 0x00, // 2: DescriptionCount 361 'e', 0x0, 'n', 0x0, '-', 0x0, 'U', 0x0, 'S', 0x0, 362 //10: RFC3066 language code 363 ' ', 0x0, // 2: Space 364 'S', 0x0, 'i', 0x0, 'm', 0x0, 'p', 0x0, 'l', 0x0, 'e', 0x0, 365 '3', 0x0, 'o', 0x0, 'n', 0x0, 'l', 0x0, 'y', 0x0, '\0', 0x0, 366 //24: DescriptionString 367 // 368 // Layout 2, length = 93 369 // 370 0x5d, 0x00, // 2: layout_length 371 0xc9, 0x6a, 0xbe, 0x47, 0xcc, 0x54, 0xf9, 0x46, 372 0xa2, 0x62, 0xd5, 0x3b, 0x25, 0x6a, 0xc, 0x34, //16: guid 373 0x37, 0x00, 0x00, 0x00, // 4: layout_descriptor 374 // string_offset 375 0x02, // 1: descriptor_count 376 // 377 // Descriptor 1, length = 16 378 // 379 34 /*EfiKeyC3*/, 0x0, 0x0, 0x0, 380 'd', 0x00, 381 'D', 0x00, 382 0x00, 0x00, 383 0x00, 0x00, 384 EFI_NULL_MODIFIER, 0x0, 385 0x3, 0x0, 386 // 387 // Descriptor 2, length = 16 388 // 389 35 /*EfiKeyC4*/, 0x0, 0x0, 0x0, 390 'e', 0x00, 391 'E', 0x00, 392 0x00, 0x00, 393 0x00, 0x00, 394 EFI_NULL_MODIFIER, 0x0, 395 0x3, 0x0, 396 // 397 // EFI_DESCRIPTOR_STRING_BUNDLE, length = 38 398 // 399 0x01, 0x00, // 2: DescriptionCount 400 'e', 0x0, 'n', 0x0, '-', 0x0, 'U', 0x0, 'S', 0x0, 401 //10: RFC3066 language code 402 ' ', 0x0, // 2: Space 403 'S', 0x0, 'i', 0x0, 'm', 0x0, 'p', 0x0, 'l', 0x0, 'e', 0x0, 404 '4', 0x0, 'o', 0x0, 'n', 0x0, 'l', 0x0, 'y', 0x0, '\0', 0x0, 405 //24: DescriptionString 406 #ifdef NOT_USED /* TODO: form package not implemented yet */ 407 // 408 // EFI_HII_PACKAGE_FORMS, length = 8 409 // 410 0x08, 0x00, 0x00, // 3 411 EFI_HII_PACKAGE_FORMS, // 1 412 // 413 // Opcode 1 414 // 415 EFI_IFR_BITWISE_AND_OP, // 1 416 0x02, // 1 417 EFI_IFR_END_OP, // 1 418 0x02, // 1 419 #endif 420 // 421 // End of package list, length = 4 422 // 423 0x4, 0x00, 0x00, // 3 424 EFI_HII_PACKAGE_END // 1 425 }; 426 427 efi_guid_t packagelist_guid1 = 428 EFI_GUID(0x03abcd89, 0x03f4, 0x7044, 429 0x81, 0xde, 0x99, 0xb1, 0x81, 0x20, 0xf7, 0x68); 430 431 efi_guid_t packagelist_guid2 = 432 EFI_GUID(0x8685ded3, 0x1bce, 0x43f3, 433 0xa2, 0x0c, 0xa3, 0x06, 0xec, 0x69, 0x72, 0xdd); 434 435 efi_guid_t kb_layout_guid11 = 436 EFI_GUID(0x8d40e495, 0xe2aa, 0x4c6f, 437 0x89, 0x70, 0x68, 0x85, 0x09, 0xee, 0xc7, 0xd2); 438 439 efi_guid_t kb_layout_guid12 = 440 EFI_GUID(0x2ae60b3e, 0xb9d6, 0x49d8, 441 0x9a, 0x16, 0xc2, 0x48, 0xf1, 0xeb, 0xa8, 0xdb); 442 443 efi_guid_t kb_layout_guid21 = 444 EFI_GUID(0xe0f56a1f, 0xdf6b, 0x4a7e, 445 0xa3, 0x9a, 0xe7, 0xa5, 0x19, 0x15, 0x45, 0xd6); 446 447 efi_guid_t kb_layout_guid22 = 448 EFI_GUID(0x47be6ac9, 0x54cc, 0x46f9, 449 0xa2, 0x62, 0xd5, 0x3b, 0x25, 0x6a, 0x0c, 0x34); 450 451 efi_guid_t package_guid = 452 EFI_GUID(0x0387c95a, 0xd703, 0x2346, 453 0xb2, 0xab, 0xd0, 0xc7, 0xdd, 0x90, 0x44, 0xf8); 454