Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/stand/efi/include/efiapi.h
34874 views
1
#ifndef _EFI_API_H
2
#define _EFI_API_H
3
4
/*++
5
6
Copyright (c) 1999 - 2002 Intel Corporation. All rights reserved
7
This software and associated documentation (if any) is furnished
8
under a license and may only be used or copied in accordance
9
with the terms of the license. Except as permitted by such
10
license, no part of this software or documentation may be
11
reproduced, stored in a retrieval system, or transmitted in any
12
form or by any means without the express written consent of
13
Intel Corporation.
14
15
Module Name:
16
17
efiapi.h
18
19
Abstract:
20
21
Global EFI runtime & boot service interfaces
22
23
24
25
26
Revision History
27
28
--*/
29
30
//
31
// EFI Specification Revision
32
//
33
34
#define EFI_SPECIFICATION_MAJOR_REVISION 1
35
#define EFI_SPECIFICATION_MINOR_REVISION 10
36
37
//
38
// Declare forward referenced data structures
39
//
40
41
INTERFACE_DECL(_EFI_SYSTEM_TABLE);
42
43
//
44
// EFI Memory
45
//
46
47
typedef
48
EFI_STATUS
49
(EFIAPI *EFI_ALLOCATE_PAGES) (
50
IN EFI_ALLOCATE_TYPE Type,
51
IN EFI_MEMORY_TYPE MemoryType,
52
IN UINTN NoPages,
53
OUT EFI_PHYSICAL_ADDRESS *Memory
54
);
55
56
typedef
57
EFI_STATUS
58
(EFIAPI *EFI_FREE_PAGES) (
59
IN EFI_PHYSICAL_ADDRESS Memory,
60
IN UINTN NoPages
61
);
62
63
typedef
64
EFI_STATUS
65
(EFIAPI *EFI_GET_MEMORY_MAP) (
66
IN OUT UINTN *MemoryMapSize,
67
IN OUT EFI_MEMORY_DESCRIPTOR *MemoryMap,
68
OUT UINTN *MapKey,
69
OUT UINTN *DescriptorSize,
70
OUT UINT32 *DescriptorVersion
71
);
72
73
#define NextMemoryDescriptor(Ptr,Size) ((EFI_MEMORY_DESCRIPTOR *) (((UINT8 *) Ptr) + Size))
74
75
76
typedef
77
EFI_STATUS
78
(EFIAPI *EFI_ALLOCATE_POOL) (
79
IN EFI_MEMORY_TYPE PoolType,
80
IN UINTN Size,
81
OUT VOID **Buffer
82
);
83
84
typedef
85
EFI_STATUS
86
(EFIAPI *EFI_FREE_POOL) (
87
IN VOID *Buffer
88
);
89
90
typedef
91
EFI_STATUS
92
(EFIAPI *EFI_SET_VIRTUAL_ADDRESS_MAP) (
93
IN UINTN MemoryMapSize,
94
IN UINTN DescriptorSize,
95
IN UINT32 DescriptorVersion,
96
IN EFI_MEMORY_DESCRIPTOR *VirtualMap
97
);
98
99
100
#define EFI_OPTIONAL_PTR 0x00000001
101
#define EFI_INTERNAL_FNC 0x00000002 // Pointer to internal runtime fnc
102
#define EFI_INTERNAL_PTR 0x00000004 // Pointer to internal runtime data
103
104
105
typedef
106
EFI_STATUS
107
(EFIAPI *EFI_CONVERT_POINTER) (
108
IN UINTN DebugDisposition,
109
IN OUT VOID **Address
110
);
111
112
113
//
114
// EFI Events
115
//
116
117
118
119
#define EVT_TIMER 0x80000000
120
#define EVT_RUNTIME 0x40000000
121
#define EVT_RUNTIME_CONTEXT 0x20000000
122
123
#define EVT_NOTIFY_WAIT 0x00000100
124
#define EVT_NOTIFY_SIGNAL 0x00000200
125
126
#define EVT_SIGNAL_EXIT_BOOT_SERVICES 0x00000201
127
#define EVT_SIGNAL_VIRTUAL_ADDRESS_CHANGE 0x60000202
128
129
#define EVT_EFI_SIGNAL_MASK 0x000000FF
130
#define EVT_EFI_SIGNAL_MAX 2
131
132
typedef
133
VOID
134
(EFIAPI *EFI_EVENT_NOTIFY) (
135
IN EFI_EVENT Event,
136
IN VOID *Context
137
);
138
139
typedef
140
EFI_STATUS
141
(EFIAPI *EFI_CREATE_EVENT) (
142
IN UINT32 Type,
143
IN EFI_TPL NotifyTpl,
144
IN EFI_EVENT_NOTIFY NotifyFunction,
145
IN VOID *NotifyContext,
146
OUT EFI_EVENT *Event
147
);
148
149
typedef enum {
150
TimerCancel,
151
TimerPeriodic,
152
TimerRelative,
153
TimerTypeMax
154
} EFI_TIMER_DELAY;
155
156
typedef
157
EFI_STATUS
158
(EFIAPI *EFI_SET_TIMER) (
159
IN EFI_EVENT Event,
160
IN EFI_TIMER_DELAY Type,
161
IN UINT64 TriggerTime
162
);
163
164
typedef
165
EFI_STATUS
166
(EFIAPI *EFI_SIGNAL_EVENT) (
167
IN EFI_EVENT Event
168
);
169
170
typedef
171
EFI_STATUS
172
(EFIAPI *EFI_WAIT_FOR_EVENT) (
173
IN UINTN NumberOfEvents,
174
IN EFI_EVENT *Event,
175
OUT UINTN *Index
176
);
177
178
typedef
179
EFI_STATUS
180
(EFIAPI *EFI_CLOSE_EVENT) (
181
IN EFI_EVENT Event
182
);
183
184
typedef
185
EFI_STATUS
186
(EFIAPI *EFI_CHECK_EVENT) (
187
IN EFI_EVENT Event
188
);
189
190
//
191
// Task priority level
192
//
193
194
#define TPL_APPLICATION 4
195
#define TPL_CALLBACK 8
196
#define TPL_NOTIFY 16
197
#define TPL_HIGH_LEVEL 31
198
199
typedef
200
EFI_TPL
201
(EFIAPI *EFI_RAISE_TPL) (
202
IN EFI_TPL NewTpl
203
);
204
205
typedef
206
VOID
207
(EFIAPI *EFI_RESTORE_TPL) (
208
IN EFI_TPL OldTpl
209
);
210
211
212
//
213
// EFI platform varibles
214
//
215
216
#define EFI_GLOBAL_VARIABLE \
217
{ 0x8BE4DF61, 0x93CA, 0x11d2, {0xAA, 0x0D, 0x00, 0xE0, 0x98, 0x03, 0x2B, 0x8C} }
218
219
// Variable attributes
220
#define EFI_VARIABLE_NON_VOLATILE 0x00000001
221
#define EFI_VARIABLE_BOOTSERVICE_ACCESS 0x00000002
222
#define EFI_VARIABLE_RUNTIME_ACCESS 0x00000004
223
#define EFI_VARIABLE_HARDWARE_ERROR_RECORD 0x00000008
224
#define EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS 0x00000010
225
#define EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS 0x00000020
226
#define EFI_VARIABLE_APPEND_WRITE 0x00000040
227
228
// Variable size limitation
229
#define EFI_MAXIMUM_VARIABLE_SIZE 1024
230
231
typedef
232
EFI_STATUS
233
(EFIAPI *EFI_GET_VARIABLE) (
234
IN CHAR16 *VariableName,
235
IN EFI_GUID *VendorGuid,
236
OUT UINT32 *Attributes OPTIONAL,
237
IN OUT UINTN *DataSize,
238
OUT VOID *Data
239
);
240
241
typedef
242
EFI_STATUS
243
(EFIAPI *EFI_GET_NEXT_VARIABLE_NAME) (
244
IN OUT UINTN *VariableNameSize,
245
IN OUT CHAR16 *VariableName,
246
IN OUT EFI_GUID *VendorGuid
247
);
248
249
250
typedef
251
EFI_STATUS
252
(EFIAPI *EFI_SET_VARIABLE) (
253
IN const CHAR16 *VariableName,
254
IN EFI_GUID *VendorGuid,
255
IN UINT32 Attributes,
256
IN UINTN DataSize,
257
IN VOID *Data
258
);
259
260
261
//
262
// EFI Time
263
//
264
265
typedef struct {
266
UINT32 Resolution; // 1e-6 parts per million
267
UINT32 Accuracy; // hertz
268
BOOLEAN SetsToZero; // Set clears sub-second time
269
} EFI_TIME_CAPABILITIES;
270
271
272
typedef
273
EFI_STATUS
274
(EFIAPI *EFI_GET_TIME) (
275
OUT EFI_TIME *Time,
276
OUT EFI_TIME_CAPABILITIES *Capabilities OPTIONAL
277
);
278
279
typedef
280
EFI_STATUS
281
(EFIAPI *EFI_SET_TIME) (
282
IN EFI_TIME *Time
283
);
284
285
typedef
286
EFI_STATUS
287
(EFIAPI *EFI_GET_WAKEUP_TIME) (
288
OUT BOOLEAN *Enabled,
289
OUT BOOLEAN *Pending,
290
OUT EFI_TIME *Time
291
);
292
293
typedef
294
EFI_STATUS
295
(EFIAPI *EFI_SET_WAKEUP_TIME) (
296
IN BOOLEAN Enable,
297
IN EFI_TIME *Time OPTIONAL
298
);
299
300
301
//
302
// Image functions
303
//
304
305
306
// PE32+ Subsystem type for EFI images
307
308
#if !defined(IMAGE_SUBSYSTEM_EFI_APPLICATION)
309
#define IMAGE_SUBSYSTEM_EFI_APPLICATION 10
310
#define IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER 11
311
#define IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER 12
312
#endif
313
314
// PE32+ Machine type for EFI images
315
316
#if !defined(EFI_IMAGE_MACHINE_IA32)
317
#define EFI_IMAGE_MACHINE_IA32 0x014c
318
#endif
319
320
#if !defined(EFI_IMAGE_MACHINE_EBC)
321
#define EFI_IMAGE_MACHINE_EBC 0x0EBC
322
#endif
323
324
// Image Entry prototype
325
326
typedef
327
EFI_STATUS
328
(EFIAPI *EFI_IMAGE_ENTRY_POINT) (
329
IN EFI_HANDLE ImageHandle,
330
IN struct _EFI_SYSTEM_TABLE *SystemTable
331
);
332
333
typedef
334
EFI_STATUS
335
(EFIAPI *EFI_IMAGE_LOAD) (
336
IN BOOLEAN BootPolicy,
337
IN EFI_HANDLE ParentImageHandle,
338
IN EFI_DEVICE_PATH *FilePath,
339
IN VOID *SourceBuffer OPTIONAL,
340
IN UINTN SourceSize,
341
OUT EFI_HANDLE *ImageHandle
342
);
343
344
typedef
345
EFI_STATUS
346
(EFIAPI *EFI_IMAGE_START) (
347
IN EFI_HANDLE ImageHandle,
348
OUT UINTN *ExitDataSize,
349
OUT CHAR16 **ExitData OPTIONAL
350
);
351
352
typedef
353
EFI_STATUS
354
(EFIAPI *EFI_EXIT) (
355
IN EFI_HANDLE ImageHandle,
356
IN EFI_STATUS ExitStatus,
357
IN UINTN ExitDataSize,
358
IN CHAR16 *ExitData OPTIONAL
359
) __dead2;
360
361
typedef
362
EFI_STATUS
363
(EFIAPI *EFI_IMAGE_UNLOAD) (
364
IN EFI_HANDLE ImageHandle
365
);
366
367
368
// Image handle
369
#define LOADED_IMAGE_PROTOCOL \
370
{ 0x5B1B31A1, 0x9562, 0x11d2, {0x8E, 0x3F, 0x00, 0xA0, 0xC9, 0x69, 0x72, 0x3B} }
371
372
#define EFI_LOADED_IMAGE_INFORMATION_REVISION 0x1000
373
typedef struct {
374
UINT32 Revision;
375
EFI_HANDLE ParentHandle;
376
struct _EFI_SYSTEM_TABLE *SystemTable;
377
378
// Source location of image
379
EFI_HANDLE DeviceHandle;
380
EFI_DEVICE_PATH *FilePath;
381
VOID *Reserved;
382
383
// Images load options
384
UINT32 LoadOptionsSize;
385
VOID *LoadOptions;
386
387
// Location of where image was loaded
388
VOID *ImageBase;
389
UINT64 ImageSize;
390
EFI_MEMORY_TYPE ImageCodeType;
391
EFI_MEMORY_TYPE ImageDataType;
392
393
// If the driver image supports a dynamic unload request
394
EFI_IMAGE_UNLOAD Unload;
395
396
} EFI_LOADED_IMAGE;
397
398
399
typedef
400
EFI_STATUS
401
(EFIAPI *EFI_EXIT_BOOT_SERVICES) (
402
IN EFI_HANDLE ImageHandle,
403
IN UINTN MapKey
404
);
405
406
//
407
// Misc
408
//
409
410
411
typedef
412
EFI_STATUS
413
(EFIAPI *EFI_STALL) (
414
IN UINTN Microseconds
415
);
416
417
typedef
418
EFI_STATUS
419
(EFIAPI *EFI_SET_WATCHDOG_TIMER) (
420
IN UINTN Timeout,
421
IN UINT64 WatchdogCode,
422
IN UINTN DataSize,
423
IN CHAR16 *WatchdogData OPTIONAL
424
);
425
426
427
typedef enum {
428
EfiResetCold,
429
EfiResetWarm,
430
EfiResetShutdown
431
} EFI_RESET_TYPE;
432
433
typedef
434
VOID
435
(EFIAPI *EFI_RESET_SYSTEM) (
436
IN EFI_RESET_TYPE ResetType,
437
IN EFI_STATUS ResetStatus,
438
IN UINTN DataSize,
439
IN CHAR16 *ResetData OPTIONAL
440
) __dead2;
441
442
typedef
443
EFI_STATUS
444
(EFIAPI *EFI_GET_NEXT_MONOTONIC_COUNT) (
445
OUT UINT64 *Count
446
);
447
448
typedef
449
EFI_STATUS
450
(EFIAPI *EFI_GET_NEXT_HIGH_MONO_COUNT) (
451
OUT UINT32 *HighCount
452
);
453
454
//
455
// Protocol handler functions
456
//
457
458
typedef enum {
459
EFI_NATIVE_INTERFACE
460
} EFI_INTERFACE_TYPE;
461
462
typedef
463
EFI_STATUS
464
(EFIAPI *EFI_INSTALL_PROTOCOL_INTERFACE) (
465
IN OUT EFI_HANDLE *Handle,
466
IN EFI_GUID *Protocol,
467
IN EFI_INTERFACE_TYPE InterfaceType,
468
IN VOID *Interface
469
);
470
471
typedef
472
EFI_STATUS
473
(EFIAPI *EFI_REINSTALL_PROTOCOL_INTERFACE) (
474
IN EFI_HANDLE Handle,
475
IN EFI_GUID *Protocol,
476
IN VOID *OldInterface,
477
IN VOID *NewInterface
478
);
479
480
typedef
481
EFI_STATUS
482
(EFIAPI *EFI_UNINSTALL_PROTOCOL_INTERFACE) (
483
IN EFI_HANDLE Handle,
484
IN EFI_GUID *Protocol,
485
IN VOID *Interface
486
);
487
488
typedef
489
EFI_STATUS
490
(EFIAPI *EFI_HANDLE_PROTOCOL) (
491
IN EFI_HANDLE Handle,
492
IN EFI_GUID *Protocol,
493
OUT VOID **Interface
494
);
495
496
typedef
497
EFI_STATUS
498
(EFIAPI *EFI_REGISTER_PROTOCOL_NOTIFY) (
499
IN EFI_GUID *Protocol,
500
IN EFI_EVENT Event,
501
OUT VOID **Registration
502
);
503
504
typedef enum {
505
AllHandles,
506
ByRegisterNotify,
507
ByProtocol
508
} EFI_LOCATE_SEARCH_TYPE;
509
510
typedef
511
EFI_STATUS
512
(EFIAPI *EFI_LOCATE_HANDLE) (
513
IN EFI_LOCATE_SEARCH_TYPE SearchType,
514
IN EFI_GUID *Protocol OPTIONAL,
515
IN VOID *SearchKey OPTIONAL,
516
IN OUT UINTN *BufferSize,
517
OUT EFI_HANDLE *Buffer
518
);
519
520
typedef
521
EFI_STATUS
522
(EFIAPI *EFI_LOCATE_DEVICE_PATH) (
523
IN EFI_GUID *Protocol,
524
IN OUT EFI_DEVICE_PATH **DevicePath,
525
OUT EFI_HANDLE *Device
526
);
527
528
typedef
529
EFI_STATUS
530
(EFIAPI *EFI_INSTALL_CONFIGURATION_TABLE) (
531
IN EFI_GUID *Guid,
532
IN VOID *Table
533
);
534
535
typedef
536
EFI_STATUS
537
(EFIAPI *EFI_RESERVED_SERVICE) (
538
VOID
539
);
540
541
typedef
542
EFI_STATUS
543
(EFIAPI *EFI_CONNECT_CONTROLLER) (
544
IN EFI_HANDLE ControllerHandle,
545
IN EFI_HANDLE *DriverImageHandle OPTIONAL,
546
IN EFI_DEVICE_PATH *RemainingDevicePath OPTIONAL,
547
IN BOOLEAN Recursive
548
);
549
550
typedef
551
EFI_STATUS
552
(EFIAPI *EFI_DISCONNECT_CONTROLLER)(
553
IN EFI_HANDLE ControllerHandle,
554
IN EFI_HANDLE DriverImageHandle, OPTIONAL
555
IN EFI_HANDLE ChildHandle OPTIONAL
556
);
557
558
#define EFI_OPEN_PROTOCOL_BY_HANDLE_PROTOCOL 0x00000001
559
#define EFI_OPEN_PROTOCOL_GET_PROTOCOL 0x00000002
560
#define EFI_OPEN_PROTOCOL_TEST_PROTOCOL 0x00000004
561
#define EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER 0x00000008
562
#define EFI_OPEN_PROTOCOL_BY_DRIVER 0x00000010
563
#define EFI_OPEN_PROTOCOL_EXCLUSIVE 0x00000020
564
565
typedef
566
EFI_STATUS
567
(EFIAPI *EFI_OPEN_PROTOCOL) (
568
IN EFI_HANDLE Handle,
569
IN EFI_GUID *Protocol,
570
OUT VOID **Interface,
571
IN EFI_HANDLE ImageHandle,
572
IN EFI_HANDLE ControllerHandle, OPTIONAL
573
IN UINT32 Attributes
574
);
575
576
typedef
577
EFI_STATUS
578
(EFIAPI *EFI_CLOSE_PROTOCOL) (
579
IN EFI_HANDLE Handle,
580
IN EFI_GUID *Protocol,
581
IN EFI_HANDLE ImageHandle,
582
IN EFI_HANDLE DeviceHandle
583
);
584
585
typedef struct {
586
EFI_HANDLE AgentHandle;
587
EFI_HANDLE ControllerHandle;
588
UINT32 Attributes;
589
UINT32 OpenCount;
590
} EFI_OPEN_PROTOCOL_INFORMATION_ENTRY;
591
592
typedef
593
EFI_STATUS
594
(EFIAPI *EFI_OPEN_PROTOCOL_INFORMATION) (
595
IN EFI_HANDLE UserHandle,
596
IN EFI_GUID *Protocol,
597
IN EFI_OPEN_PROTOCOL_INFORMATION_ENTRY **EntryBuffer,
598
OUT UINTN *EntryCount
599
);
600
601
typedef
602
EFI_STATUS
603
(EFIAPI *EFI_PROTOCOLS_PER_HANDLE) (
604
IN EFI_HANDLE UserHandle,
605
OUT EFI_GUID ***ProtocolBuffer,
606
OUT UINTN *ProtocolBufferCount
607
);
608
609
typedef
610
EFI_STATUS
611
(EFIAPI *EFI_LOCATE_HANDLE_BUFFER) (
612
IN EFI_LOCATE_SEARCH_TYPE SearchType,
613
IN EFI_GUID *Protocol OPTIONAL,
614
IN VOID *SearchKey OPTIONAL,
615
IN OUT UINTN *NumberHandles,
616
OUT EFI_HANDLE **Buffer
617
);
618
619
typedef
620
EFI_STATUS
621
(EFIAPI *EFI_LOCATE_PROTOCOL) (
622
EFI_GUID *Protocol,
623
VOID *Registration, OPTIONAL
624
VOID **Interface
625
);
626
627
typedef
628
EFI_STATUS
629
(EFIAPI *EFI_INSTALL_MULTIPLE_PROTOCOL_INTERFACES) (
630
IN OUT EFI_HANDLE *Handle,
631
...
632
);
633
634
typedef
635
EFI_STATUS
636
(EFIAPI *EFI_UNINSTALL_MULTIPLE_PROTOCOL_INTERFACES) (
637
IN EFI_HANDLE Handle,
638
...
639
);
640
641
typedef
642
EFI_STATUS
643
(EFIAPI *EFI_CALCULATE_CRC32) (
644
IN VOID *Data,
645
IN UINTN DataSize,
646
OUT UINT32 *Crc32
647
);
648
649
typedef
650
VOID
651
(EFIAPI *EFI_COPY_MEM) (
652
IN VOID *Destination,
653
IN VOID *Source,
654
IN UINTN Length
655
);
656
657
typedef
658
VOID
659
(EFIAPI *EFI_SET_MEM) (
660
IN VOID *Buffer,
661
IN UINTN Size,
662
IN UINT8 Value
663
);
664
665
//
666
// Standard EFI table header
667
//
668
669
typedef struct _EFI_TABLE_HEARDER {
670
UINT64 Signature;
671
UINT32 Revision;
672
UINT32 HeaderSize;
673
UINT32 CRC32;
674
UINT32 Reserved;
675
} EFI_TABLE_HEADER;
676
677
678
//
679
// EFI Runtime Serivces Table
680
//
681
682
#define EFI_RUNTIME_SERVICES_SIGNATURE 0x56524553544e5552
683
#define EFI_RUNTIME_SERVICES_REVISION ((EFI_SPECIFICATION_MAJOR_REVISION<<16) | (EFI_SPECIFICATION_MINOR_REVISION))
684
685
typedef struct {
686
EFI_TABLE_HEADER Hdr;
687
688
//
689
// Time services
690
//
691
692
EFI_GET_TIME GetTime;
693
EFI_SET_TIME SetTime;
694
EFI_GET_WAKEUP_TIME GetWakeupTime;
695
EFI_SET_WAKEUP_TIME SetWakeupTime;
696
697
//
698
// Virtual memory services
699
//
700
701
EFI_SET_VIRTUAL_ADDRESS_MAP SetVirtualAddressMap;
702
EFI_CONVERT_POINTER ConvertPointer;
703
704
//
705
// Variable serviers
706
//
707
708
EFI_GET_VARIABLE GetVariable;
709
EFI_GET_NEXT_VARIABLE_NAME GetNextVariableName;
710
EFI_SET_VARIABLE SetVariable;
711
712
//
713
// Misc
714
//
715
716
EFI_GET_NEXT_HIGH_MONO_COUNT GetNextHighMonotonicCount;
717
EFI_RESET_SYSTEM ResetSystem;
718
719
} EFI_RUNTIME_SERVICES;
720
721
722
//
723
// EFI Boot Services Table
724
//
725
726
#define EFI_BOOT_SERVICES_SIGNATURE 0x56524553544f4f42
727
#define EFI_BOOT_SERVICES_REVISION ((EFI_SPECIFICATION_MAJOR_REVISION<<16) | (EFI_SPECIFICATION_MINOR_REVISION))
728
729
typedef struct {
730
731
EFI_TABLE_HEADER Hdr;
732
733
//
734
// Task priority functions
735
//
736
737
EFI_RAISE_TPL RaiseTPL;
738
EFI_RESTORE_TPL RestoreTPL;
739
740
//
741
// Memory functions
742
//
743
744
EFI_ALLOCATE_PAGES AllocatePages;
745
EFI_FREE_PAGES FreePages;
746
EFI_GET_MEMORY_MAP GetMemoryMap;
747
EFI_ALLOCATE_POOL AllocatePool;
748
EFI_FREE_POOL FreePool;
749
750
//
751
// Event & timer functions
752
//
753
754
EFI_CREATE_EVENT CreateEvent;
755
EFI_SET_TIMER SetTimer;
756
EFI_WAIT_FOR_EVENT WaitForEvent;
757
EFI_SIGNAL_EVENT SignalEvent;
758
EFI_CLOSE_EVENT CloseEvent;
759
EFI_CHECK_EVENT CheckEvent;
760
761
//
762
// Protocol handler functions
763
//
764
765
EFI_INSTALL_PROTOCOL_INTERFACE InstallProtocolInterface;
766
EFI_REINSTALL_PROTOCOL_INTERFACE ReinstallProtocolInterface;
767
EFI_UNINSTALL_PROTOCOL_INTERFACE UninstallProtocolInterface;
768
EFI_HANDLE_PROTOCOL HandleProtocol;
769
VOID *Reserved;
770
EFI_REGISTER_PROTOCOL_NOTIFY RegisterProtocolNotify;
771
EFI_LOCATE_HANDLE LocateHandle;
772
EFI_LOCATE_DEVICE_PATH LocateDevicePath;
773
EFI_INSTALL_CONFIGURATION_TABLE InstallConfigurationTable;
774
775
//
776
// Image functions
777
//
778
779
EFI_IMAGE_LOAD LoadImage;
780
EFI_IMAGE_START StartImage;
781
EFI_EXIT Exit;
782
EFI_IMAGE_UNLOAD UnloadImage;
783
EFI_EXIT_BOOT_SERVICES ExitBootServices;
784
785
//
786
// Misc functions
787
//
788
789
EFI_GET_NEXT_MONOTONIC_COUNT GetNextMonotonicCount;
790
EFI_STALL Stall;
791
EFI_SET_WATCHDOG_TIMER SetWatchdogTimer;
792
793
//
794
// DriverSupport Services
795
//
796
EFI_CONNECT_CONTROLLER ConnectController;
797
EFI_DISCONNECT_CONTROLLER DisconnectController;
798
799
//
800
// Open and Close Protocol Services
801
//
802
EFI_OPEN_PROTOCOL OpenProtocol;
803
EFI_CLOSE_PROTOCOL CloseProtocol;
804
EFI_OPEN_PROTOCOL_INFORMATION OpenProtocolInformation;
805
806
//
807
// Library Services to reduce size of drivers
808
//
809
EFI_PROTOCOLS_PER_HANDLE ProtocolsPerHandle;
810
EFI_LOCATE_HANDLE_BUFFER LocateHandleBuffer;
811
EFI_LOCATE_PROTOCOL LocateProtocol;
812
813
EFI_INSTALL_MULTIPLE_PROTOCOL_INTERFACES InstallMultipleProtocolInterfaces;
814
EFI_UNINSTALL_MULTIPLE_PROTOCOL_INTERFACES UninstallMultipleProtocolInterfaces;
815
816
//
817
// CRC32 services
818
//
819
EFI_CALCULATE_CRC32 CalculateCrc32;
820
821
//
822
// Memory Utility Services
823
//
824
EFI_COPY_MEM CopyMem;
825
EFI_SET_MEM SetMem;
826
827
} EFI_BOOT_SERVICES;
828
829
830
//
831
// EFI Configuration Table and GUID definitions
832
//
833
834
#define MPS_TABLE_GUID \
835
{ 0xeb9d2d2f, 0x2d88, 0x11d3, {0x9a, 0x16, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d} }
836
837
#define ACPI_TABLE_GUID \
838
{ 0xeb9d2d30, 0x2d88, 0x11d3, {0x9a, 0x16, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d} }
839
840
#define ACPI_20_TABLE_GUID \
841
{ 0x8868e871, 0xe4f1, 0x11d3, {0xbc, 0x22, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81} }
842
843
#define SMBIOS_TABLE_GUID \
844
{ 0xeb9d2d31, 0x2d88, 0x11d3, {0x9a, 0x16, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d} }
845
846
#define SMBIOS3_TABLE_GUID \
847
{ 0xf2fd1544, 0x9794, 0x4a2c, {0x99, 0x2e, 0xe5, 0xbb, 0xcf, 0x20, 0xe3, 0x94} }
848
849
#define SAL_SYSTEM_TABLE_GUID \
850
{ 0xeb9d2d32, 0x2d88, 0x11d3, {0x9a, 0x16, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d} }
851
852
#define FDT_TABLE_GUID \
853
{ 0xb1b621d5, 0xf19c, 0x41a5, {0x83, 0x0b, 0xd9, 0x15, 0x2c, 0x69, 0xaa, 0xe0} }
854
855
#define DXE_SERVICES_TABLE_GUID \
856
{ 0x5ad34ba, 0x6f02, 0x4214, {0x95, 0x2e, 0x4d, 0xa0, 0x39, 0x8e, 0x2b, 0xb9} }
857
858
#define HOB_LIST_TABLE_GUID \
859
{ 0x7739f24c, 0x93d7, 0x11d4, {0x9a, 0x3a, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d} }
860
861
#define LZMA_DECOMPRESSION_GUID \
862
{ 0xee4e5898, 0x3914, 0x4259, {0x9d, 0x6e, 0xdc, 0x7b, 0xd7, 0x94, 0x3, 0xcf} }
863
864
#define ARM_MP_CORE_INFO_TABLE_GUID \
865
{ 0xa4ee0728, 0xe5d7, 0x4ac5, {0xb2, 0x1e, 0x65, 0x8e, 0xd8, 0x57, 0xe8, 0x34} }
866
867
#define ESRT_TABLE_GUID \
868
{ 0xb122a263, 0x3661, 0x4f68, {0x99, 0x29, 0x78, 0xf8, 0xb0, 0xd6, 0x21, 0x80} }
869
870
#define MEMORY_TYPE_INFORMATION_TABLE_GUID \
871
{ 0x4c19049f, 0x4137, 0x4dd3, {0x9c, 0x10, 0x8b, 0x97, 0xa8, 0x3f, 0xfd, 0xfa} }
872
873
#define DEBUG_IMAGE_INFO_TABLE_GUID \
874
{ 0x49152e77, 0x1ada, 0x4764, {0xb7, 0xa2, 0x7a, 0xfe, 0xfe, 0xd9, 0x5e, 0x8b} }
875
876
typedef struct _EFI_CONFIGURATION_TABLE {
877
EFI_GUID VendorGuid;
878
VOID *VendorTable;
879
} EFI_CONFIGURATION_TABLE;
880
881
882
//
883
// EFI System Table
884
//
885
886
887
888
889
#define EFI_SYSTEM_TABLE_SIGNATURE 0x5453595320494249
890
#define EFI_SYSTEM_TABLE_REVISION ((EFI_SPECIFICATION_MAJOR_REVISION<<16) | (EFI_SPECIFICATION_MINOR_REVISION))
891
#define EFI_1_10_SYSTEM_TABLE_REVISION ((1<<16) | 10)
892
#define EFI_1_02_SYSTEM_TABLE_REVISION ((1<<16) | 02)
893
894
typedef struct _EFI_SYSTEM_TABLE {
895
EFI_TABLE_HEADER Hdr;
896
897
CHAR16 *FirmwareVendor;
898
UINT32 FirmwareRevision;
899
900
EFI_HANDLE ConsoleInHandle;
901
SIMPLE_INPUT_INTERFACE *ConIn;
902
903
EFI_HANDLE ConsoleOutHandle;
904
SIMPLE_TEXT_OUTPUT_INTERFACE *ConOut;
905
906
EFI_HANDLE StandardErrorHandle;
907
SIMPLE_TEXT_OUTPUT_INTERFACE *StdErr;
908
909
EFI_RUNTIME_SERVICES *RuntimeServices;
910
EFI_BOOT_SERVICES *BootServices;
911
912
UINTN NumberOfTableEntries;
913
EFI_CONFIGURATION_TABLE *ConfigurationTable;
914
915
} EFI_SYSTEM_TABLE;
916
917
/*
918
* unlisted GUID's..
919
*/
920
#define EFI_EBC_INTERPRETER_PROTOCOL_GUID \
921
{ 0x13AC6DD1, 0x73D0, 0x11D4, {0xB0, 0x6B, 0x00, 0xAA, 0x00, 0xBD, 0x6D, 0xE7} }
922
923
#define EFI_DRIVER_CONFIGURATION2_PROTOCOL_GUID \
924
{ 0xbfd7dc1d, 0x24f1, 0x40d9, {0x82, 0xe7, 0x2e, 0x09, 0xbb, 0x6b, 0x4e, 0xbe} }
925
926
#define EFI_DRIVER_CONFIGURATION_PROTOCOL_GUID \
927
{ 0x107a772b, 0xd5e1, 0x11d4, {0x9a, 0x46, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d} }
928
929
#define EFI_DRIVER_BINDING_PROTOCOL_GUID \
930
{ 0x18A031AB, 0xB443, 0x4D1A, \
931
{ 0xA5, 0xC0, 0x0C, 0x09, 0x26, 0x1E, 0x9F, 0x71 } \
932
}
933
934
#define EFI_TAPE_IO_PROTOCOL_GUID \
935
{ 0x1e93e633, 0xd65a, 0x459e, \
936
{ 0xab, 0x84, 0x93, 0xd9, 0xec, 0x26, 0x6d, 0x18 } \
937
}
938
939
#define EFI_SCSI_IO_PROTOCOL_GUID \
940
{ 0x932f47e6, 0x2362, 0x4002, \
941
{ 0x80, 0x3e, 0x3c, 0xd5, 0x4b, 0x13, 0x8f, 0x85 } \
942
}
943
944
#define EFI_USB2_HC_PROTOCOL_GUID \
945
{ 0x3e745226, 0x9818, 0x45b6, \
946
{ 0xa2, 0xac, 0xd7, 0xcd, 0x0e, 0x8b, 0xa2, 0xbc } \
947
}
948
949
#define EFI_DEBUG_SUPPORT_PROTOCOL_GUID \
950
{ 0x2755590C, 0x6F3C, 0x42FA, \
951
{ 0x9E, 0xA4, 0xA3, 0xBA, 0x54, 0x3C, 0xDA, 0x25 } \
952
}
953
954
#define EFI_DEBUGPORT_PROTOCOL_GUID \
955
{ 0xEBA4E8D2, 0x3858, 0x41EC, \
956
{ 0xA2, 0x81, 0x26, 0x47, 0xBA, 0x96, 0x60, 0xD0 } \
957
}
958
959
#define EFI_DECOMPRESS_PROTOCOL_GUID \
960
{ 0xd8117cfe, 0x94a6, 0x11d4, \
961
{ 0x9a, 0x3a, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d } \
962
}
963
964
#define EFI_ACPI_TABLE_PROTOCOL_GUID \
965
{ 0xffe06bdd, 0x6107, 0x46a6, \
966
{ 0x7b, 0xb2, 0x5a, 0x9c, 0x7e, 0xc5, 0x27, 0x5c} \
967
}
968
969
#define EFI_HII_CONFIG_ROUTING_PROTOCOL_GUID \
970
{ 0x587e72d7, 0xcc50, 0x4f79, \
971
{ 0x82, 0x09, 0xca, 0x29, 0x1f, 0xc1, 0xa1, 0x0f } \
972
}
973
974
#define EFI_HII_DATABASE_PROTOCOL_GUID \
975
{ 0xef9fc172, 0xa1b2, 0x4693, \
976
{ 0xb3, 0x27, 0x6d, 0x32, 0xfc, 0x41, 0x60, 0x42 } \
977
}
978
979
#define EFI_HII_STRING_PROTOCOL_GUID \
980
{ 0xfd96974, 0x23aa, 0x4cdc, \
981
{ 0xb9, 0xcb, 0x98, 0xd1, 0x77, 0x50, 0x32, 0x2a } \
982
}
983
984
#define EFI_HII_IMAGE_PROTOCOL_GUID \
985
{ 0x31a6406a, 0x6bdf, 0x4e46, \
986
{ 0xb2, 0xa2, 0xeb, 0xaa, 0x89, 0xc4, 0x9, 0x20 } \
987
}
988
989
#define EFI_HII_FONT_PROTOCOL_GUID \
990
{ 0xe9ca4775, 0x8657, 0x47fc, \
991
{ 0x97, 0xe7, 0x7e, 0xd6, 0x5a, 0x8, 0x43, 0x24 } \
992
}
993
#define EFI_HII_CONFIGURATION_ACCESS_PROTOCOL_GUID \
994
{ 0x330d4706, 0xf2a0, 0x4e4f, \
995
{ 0xa3, 0x69, 0xb6, 0x6f, 0xa8, 0xd5, 0x43, 0x85 } \
996
}
997
998
#define EFI_COMPONENT_NAME_PROTOCOL_GUID \
999
{ 0x107a772c, 0xd5e1, 0x11d4, {0x9a, 0x46, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d} }
1000
1001
#define EFI_COMPONENT_NAME2_PROTOCOL_GUID \
1002
{ 0x6a7a5cff, 0xe8d9, 0x4f70, \
1003
{ 0xba, 0xda, 0x75, 0xab, 0x30, 0x25, 0xce, 0x14} \
1004
}
1005
1006
#define EFI_USB_IO_PROTOCOL_GUID \
1007
{ 0x2B2F68D6, 0x0CD2, 0x44cf, \
1008
{ 0x8E, 0x8B, 0xBB, 0xA2, 0x0B, 0x1B, 0x5B, 0x75 } \
1009
}
1010
#define EFI_HCDP_TABLE_GUID \
1011
{ 0xf951938d, 0x620b, 0x42ef, \
1012
{ 0x82, 0x79, 0xa8, 0x4b, 0x79, 0x61, 0x78, 0x98 } \
1013
}
1014
1015
#define EFI_DEVICE_TREE_GUID \
1016
{ 0xb1b621d5, 0xf19c, 0x41a5, \
1017
{ 0x83, 0x0b, 0xd9, 0x15, 0x2c, 0x69, 0xaa, 0xe0 } \
1018
}
1019
1020
#define EFI_VENDOR_APPLE_GUID \
1021
{ 0x2B0585EB, 0xD8B8, 0x49A9, \
1022
{ 0x8B, 0x8C, 0xE2, 0x1B, 0x01, 0xAE, 0xF2, 0xB7 } \
1023
}
1024
1025
#define EFI_CONSOLE_IN_DEVICE_GUID \
1026
{ 0xd3b36f2b, 0xd551, 0x11d4, {0x9a, 0x46, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d} }
1027
1028
#define EFI_CONSOLE_OUT_DEVICE_GUID \
1029
{ 0xd3b36f2c, 0xd551, 0x11d4, {0x9a, 0x46, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d} }
1030
1031
#define EFI_STANDARD_ERROR_DEVICE_GUID \
1032
{ 0xd3b36f2d, 0xd551, 0x11d4, {0x9a, 0x46, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d} }
1033
1034
#define EFI_UNICODE_COLLATION2_PROTOCOL_GUID \
1035
{ 0xa4c751fc, 0x23ae, 0x4c3e, {0x92, 0xe9, 0x49, 0x64, 0xcf, 0x63, 0xf3, 0x49} }
1036
1037
#define EFI_FORM_BROWSER2_PROTOCOL_GUID \
1038
{ 0xb9d4c360, 0xbcfb, 0x4f9b, {0x92, 0x98, 0x53, 0xc1, 0x36, 0x98, 0x22, 0x58} }
1039
1040
#define EFI_ARP_SERVICE_BINDING_PROTOCOL_GUID \
1041
{ 0xf44c00ee, 0x1f2c, 0x4a00, {0xaa, 0x9, 0x1c, 0x9f, 0x3e, 0x8, 0x0, 0xa3} }
1042
1043
#define EFI_ARP_PROTOCOL_GUID \
1044
{ 0xf4b427bb, 0xba21, 0x4f16, {0xbc, 0x4e, 0x43, 0xe4, 0x16, 0xab, 0x61, 0x9c} }
1045
1046
#define EFI_IP4_CONFIG_PROTOCOL_GUID \
1047
{ 0x3b95aa31, 0x3793, 0x434b, {0x86, 0x67, 0xc8, 0x07, 0x08, 0x92, 0xe0, 0x5e} }
1048
1049
#define EFI_IP6_CONFIG_PROTOCOL_GUID \
1050
{ 0x937fe521, 0x95ae, 0x4d1a, {0x89, 0x29, 0x48, 0xbc, 0xd9, 0x0a, 0xd3, 0x1a} }
1051
1052
#define EFI_MANAGED_NETWORK_SERVICE_BINDING_PROTOCOL_GUID \
1053
{ 0xf36ff770, 0xa7e1, 0x42cf, {0x9e, 0xd2, 0x56, 0xf0, 0xf2, 0x71, 0xf4, 0x4c} }
1054
1055
#define EFI_MANAGED_NETWORK_PROTOCOL_GUID \
1056
{ 0x7ab33a91, 0xace5, 0x4326, {0xb5, 0x72, 0xe7, 0xee, 0x33, 0xd3, 0x9f, 0x16} }
1057
1058
#define EFI_MTFTP4_SERVICE_BINDING_PROTOCOL_GUID \
1059
{ 0x2FE800BE, 0x8F01, 0x4aa6, {0x94, 0x6B, 0xD7, 0x13, 0x88, 0xE1, 0x83, 0x3F} }
1060
1061
#define EFI_MTFTP4_PROTOCOL_GUID \
1062
{ 0x78247c57, 0x63db, 0x4708, {0x99, 0xc2, 0xa8, 0xb4, 0xa9, 0xa6, 0x1f, 0x6b} }
1063
1064
#define EFI_MTFTP6_SERVICE_BINDING_PROTOCOL_GUID \
1065
{ 0xd9760ff3, 0x3cca, 0x4267, {0x80, 0xf9, 0x75, 0x27, 0xfa, 0xfa, 0x42, 0x23} }
1066
1067
#define EFI_MTFTP6_PROTOCOL_GUID \
1068
{ 0xbf0a78ba, 0xec29, 0x49cf, {0xa1, 0xc9, 0x7a, 0xe5, 0x4e, 0xab, 0x6a, 0x51} }
1069
1070
#define EFI_DHCP4_PROTOCOL_GUID \
1071
{ 0x8a219718, 0x4ef5, 0x4761, {0x91, 0xc8, 0xc0, 0xf0, 0x4b, 0xda, 0x9e, 0x56} }
1072
1073
#define EFI_DHCP4_SERVICE_BINDING_PROTOCOL_GUID \
1074
{ 0x9d9a39d8, 0xbd42, 0x4a73, {0xa4, 0xd5, 0x8e, 0xe9, 0x4b, 0xe1, 0x13, 0x80} }
1075
1076
#define EFI_DHCP6_SERVICE_BINDING_PROTOCOL_GUID \
1077
{ 0x9fb9a8a1, 0x2f4a, 0x43a6, {0x88, 0x9c, 0xd0, 0xf7, 0xb6, 0xc4, 0x7a, 0xd5} }
1078
1079
#define EFI_DHCP6_PROTOCOL_GUID \
1080
{ 0x87c8bad7, 0x595, 0x4053, {0x82, 0x97, 0xde, 0xde, 0x39, 0x5f, 0x5d, 0x5b} }
1081
1082
#define EFI_SCSI_PASS_THRU_PROTOCOL_GUID \
1083
{ 0xa59e8fcf, 0xbda0, 0x43bb, {0x90, 0xb1, 0xd3, 0x73, 0x2e, 0xca, 0xa8, 0x77} }
1084
1085
#define EFI_EXT_SCSI_PASS_THRU_PROTOCOL_GUID \
1086
{ 0x143b7632, 0xb81b, 0x4cb7, {0xab, 0xd3, 0xb6, 0x25, 0xa5, 0xb9, 0xbf, 0xfe} }
1087
1088
#define EFI_DISK_INFO_PROTOCOL_GUID \
1089
{ 0xd432a67f, 0x14dc, 0x484b, {0xb3, 0xbb, 0x3f, 0x2, 0x91, 0x84, 0x93, 0x27} }
1090
1091
#define EFI_ISA_IO_PROTOCOL_GUID \
1092
{ 0x7ee2bd44, 0x3da0, 0x11d4, { 0x9a, 0x38, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d} }
1093
1094
#define EFI_VLAN_CONFIG_PROTOCOL_GUID \
1095
{ 0x9e23d768, 0xd2f3, 0x4366, {0x9f, 0xc3, 0x3a, 0x7a, 0xba, 0x86, 0x43, 0x74} }
1096
1097
#define EFI_IDE_CONTROLLER_INIT_PROTOCOL_GUID \
1098
{ 0xa1e37052, 0x80d9, 0x4e65, {0xa3, 0x17, 0x3e, 0x9a, 0x55, 0xc4, 0x3e, 0xc9} }
1099
1100
#define EFI_ISA_ACPI_PROTOCOL_GUID \
1101
{ 0x64a892dc, 0x5561, 0x4536, {0x92, 0xc7, 0x79, 0x9b, 0xfc, 0x18, 0x33, 0x55} }
1102
1103
#define EFI_PCI_ENUMERATION_COMPLETE_GUID \
1104
{ 0x30cfe3e7, 0x3de1, 0x4586, {0xbe, 0x20, 0xde, 0xab, 0xa1, 0xb3, 0xb7, 0x93} }
1105
1106
#define EFI_DRIVER_DIAGNOSTICS_PROTOCOL_GUID \
1107
{ 0x0784924f, 0xe296, 0x11d4, {0x9a, 0x49, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d } }
1108
1109
#define EFI_DRIVER_DIAGNOSTICS2_PROTOCOL_GUID \
1110
{ 0x4d330321, 0x025f, 0x4aac, {0x90, 0xd8, 0x5e, 0xd9, 0x00, 0x17, 0x3b, 0x63} }
1111
1112
#define EFI_CAPSULE_ARCH_PROTOCOL_GUID \
1113
{ 0x5053697e, 0x2cbc, 0x4819, {0x90, 0xd9, 0x05, 0x80, 0xde, 0xee, 0x57, 0x54} }
1114
1115
#define EFI_MONOTONIC_COUNTER_ARCH_PROTOCOL_GUID \
1116
{0x1da97072, 0xbddc, 0x4b30, {0x99, 0xf1, 0x72, 0xa0, 0xb5, 0x6f, 0xff, 0x2a} }
1117
1118
#define EFI_REALTIME_CLOCK_ARCH_PROTOCOL_GUID \
1119
{0x27cfac87, 0x46cc, 0x11d4, {0x9a, 0x38, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d} }
1120
1121
#define EFI_MP_SERVICES_PROTOCOL_GUID \
1122
{ 0x3fdda605, 0xa76e, 0x4f46, {0xad, 0x29, 0x12, 0xf4, 0x53, 0x1b, 0x3d, 0x08} }
1123
1124
#define EFI_VARIABLE_ARCH_PROTOCOL_GUID \
1125
{ 0x1e5668e2, 0x8481, 0x11d4, {0xbc, 0xf1, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81 } }
1126
1127
#define EFI_VARIABLE_WRITE_ARCH_PROTOCOL_GUID \
1128
{ 0x6441f818, 0x6362, 0x4e44, {0xb5, 0x70, 0x7d, 0xba, 0x31, 0xdd, 0x24, 0x53} }
1129
1130
#define EFI_WATCHDOG_TIMER_ARCH_PROTOCOL_GUID \
1131
{ 0x6441f818, 0x6362, 0x4e44, {0xb5, 0x70, 0x7d, 0xba, 0x31, 0xdd, 0x24, 0x53} }
1132
1133
#define EFI_ACPI_SUPPORT_PROTOCOL_GUID \
1134
{ 0x6441f818, 0x6362, 0x4e44, {0xb5, 0x70, 0x7d, 0xba, 0x31, 0xdd, 0x24, 0x53} }
1135
1136
#define EFI_BDS_ARCH_PROTOCOL_GUID \
1137
{ 0x665e3ff6, 0x46cc, 0x11d4, {0x9a, 0x38, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d} }
1138
1139
#define EFI_METRONOME_ARCH_PROTOCOL_GUID \
1140
{ 0x26baccb2, 0x6f42, 0x11d4, {0xbc, 0xe7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81 } }
1141
1142
#define EFI_TIMER_ARCH_PROTOCOL_GUID \
1143
{ 0x26baccb3, 0x6f42, 0x11d4, {0xbc, 0xe7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81 } }
1144
1145
#define EFI_DPC_PROTOCOL_GUID \
1146
{ 0x480f8ae9, 0xc46, 0x4aa9, { 0xbc, 0x89, 0xdb, 0x9f, 0xba, 0x61, 0x98, 0x6} }
1147
1148
#define EFI_PRINT2_PROTOCOL_GUID \
1149
{ 0xf05976ef, 0x83f1, 0x4f3d, {0x86, 0x19, 0xf7, 0x59, 0x5d, 0x41, 0xe5, 0x38} }
1150
1151
#define EFI_RESET_ARCH_PROTOCOL_GUID \
1152
{ 0x27cfac88, 0x46cc, 0x11d4, {0x9a, 0x38, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d} }
1153
1154
#define EFI_CPU_ARCH_PROTOCOL_GUID \
1155
{ 0x26baccb1, 0x6f42, 0x11d4, {0xbc, 0xe7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81 } }
1156
1157
#define EFI_CPU_IO2_PROTOCOL_GUID \
1158
{ 0xad61f191, 0xae5f, 0x4c0e, {0xb9, 0xfa, 0xe8, 0x69, 0xd2, 0x88, 0xc6, 0x4f} }
1159
1160
#define EFI_LEGACY_8259_PROTOCOL_GUID \
1161
{ 0x38321dba, 0x4fe0, 0x4e17, {0x8a, 0xec, 0x41, 0x30, 0x55, 0xea, 0xed, 0xc1} }
1162
1163
#define EFI_SECURITY_ARCH_PROTOCOL_GUID \
1164
{ 0xa46423e3, 0x4617, 0x49f1, {0xb9, 0xff, 0xd1, 0xbf, 0xa9, 0x11, 0x58, 0x39} }
1165
1166
#define EFI_SECURITY2_ARCH_PROTOCOL_GUID \
1167
{ 0x94ab2f58, 0x1438, 0x4ef1, {0x91, 0x52, 0x18, 0x94, 0x1a, 0x3a, 0x0e, 0x68} }
1168
1169
#define EFI_RUNTIME_ARCH_PROTOCOL_GUID \
1170
{ 0xb7dfb4e1, 0x52f, 0x449f, {0x87, 0xbe, 0x98, 0x18, 0xfc, 0x91, 0xb7, 0x33} }
1171
1172
#define EFI_STATUS_CODE_RUNTIME_PROTOCOL_GUID \
1173
{ 0xd2b2b828, 0x826, 0x48a7, {0xb3, 0xdf, 0x98, 0x3c, 0x0, 0x60, 0x24, 0xf0} }
1174
1175
#define EFI_DATA_HUB_PROTOCOL_GUID \
1176
{ 0xae80d021, 0x618e, 0x11d4, {0xbc, 0xd7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81} }
1177
1178
#define PCD_PROTOCOL_GUID \
1179
{ 0x11b34006, 0xd85b, 0x4d0a, { 0xa2, 0x90, 0xd5, 0xa5, 0x71, 0x31, 0xe, 0xf7} }
1180
1181
#define EFI_PCD_PROTOCOL_GUID \
1182
{ 0x13a3f0f6, 0x264a, 0x3ef0, {0xf2, 0xe0, 0xde, 0xc5, 0x12, 0x34, 0x2f, 0x34} }
1183
1184
#define EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL_GUID \
1185
{ 0x8f644fa9, 0xe850, 0x4db1, {0x9c, 0xe2, 0xb, 0x44, 0x69, 0x8e, 0x8d, 0xa4 } }
1186
1187
#define EFI_FIRMWARE_VOLUME2_PROTOCOL_GUID \
1188
{ 0x220e73b6, 0x6bdb, 0x4413, { 0x84, 0x5, 0xb9, 0x74, 0xb1, 0x8, 0x61, 0x9a } }
1189
1190
#define EFI_FIRMWARE_VOLUME_DISPATCH_PROTOCOL_GUID \
1191
{ 0x7aa35a69, 0x506c, 0x444f, {0xa7, 0xaf, 0x69, 0x4b, 0xf5, 0x6f, 0x71, 0xc8} }
1192
1193
#define LZMA_COMPRESS_GUID \
1194
{ 0xee4e5898, 0x3914, 0x4259, {0x9d, 0x6e, 0xdc, 0x7b, 0xd7, 0x94, 0x03, 0xcf} }
1195
#endif
1196
1197