Changeset 77662 in vbox for trunk/src/VBox/Devices/EFI/FirmwareNew/MdePkg/Include/Uefi/UefiSpec.h
- Timestamp:
- Mar 12, 2019 12:40:12 PM (6 years ago)
- svn:sync-xref-src-repo-rev:
- 129295
- Location:
- trunk/src/VBox/Devices/EFI/FirmwareNew
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/EFI/FirmwareNew
-
Property svn:mergeinfo
changed from (toggle deleted branches)
to (toggle deleted branches)/vendor/edk2/current 103735-103757,103769-103776 /vendor/edk2/current 103735-103757,103769-103776,129194-129237
-
Property svn:mergeinfo
changed from (toggle deleted branches)
-
trunk/src/VBox/Devices/EFI/FirmwareNew/MdePkg/Include/Uefi/UefiSpec.h
r58466 r77662 2 2 Include file that supports UEFI. 3 3 4 This include file must contain things defined in the UEFI 2. 4specification.5 If a code construct is defined in the UEFI 2. 4specification it must be included4 This include file must contain things defined in the UEFI 2.7 specification. 5 If a code construct is defined in the UEFI 2.7 specification it must be included 6 6 by this include file. 7 7 8 Copyright (c) 2006 - 201 4, Intel Corporation. All rights reserved.<BR>8 Copyright (c) 2006 - 2017, Intel Corporation. All rights reserved.<BR> 9 9 This program and the accompanying materials are licensed and made available under 10 10 the terms and conditions of the BSD License that accompanies this distribution. … … 64 64 // Memory cacheability attributes 65 65 // 66 #define EFI_MEMORY_UC 0x0000000000000001ULL67 #define EFI_MEMORY_WC 0x0000000000000002ULL68 #define EFI_MEMORY_WT 0x0000000000000004ULL69 #define EFI_MEMORY_WB 0x0000000000000008ULL70 #define EFI_MEMORY_UCE 0x0000000000000010ULL66 #define EFI_MEMORY_UC 0x0000000000000001ULL 67 #define EFI_MEMORY_WC 0x0000000000000002ULL 68 #define EFI_MEMORY_WT 0x0000000000000004ULL 69 #define EFI_MEMORY_WB 0x0000000000000008ULL 70 #define EFI_MEMORY_UCE 0x0000000000000010ULL 71 71 // 72 72 // Physical memory protection attributes 73 73 // 74 #define EFI_MEMORY_WP 0x0000000000001000ULL 75 #define EFI_MEMORY_RP 0x0000000000002000ULL 76 #define EFI_MEMORY_XP 0x0000000000004000ULL 74 // Note: UEFI spec 2.5 and following: use EFI_MEMORY_RO as write-protected physical memory 75 // protection attribute. Also, EFI_MEMORY_WP means cacheability attribute. 76 // 77 #define EFI_MEMORY_WP 0x0000000000001000ULL 78 #define EFI_MEMORY_RP 0x0000000000002000ULL 79 #define EFI_MEMORY_XP 0x0000000000004000ULL 80 #define EFI_MEMORY_RO 0x0000000000020000ULL 77 81 // 78 82 // Physical memory persistence attribute. 79 83 // The memory region supports byte-addressable non-volatility. 80 84 // 81 #define EFI_MEMORY_NV 0x0000000000008000ULL 85 #define EFI_MEMORY_NV 0x0000000000008000ULL 86 // 87 // The memory region provides higher reliability relative to other memory in the system. 88 // If all memory has the same reliability, then this bit is not used. 89 // 90 #define EFI_MEMORY_MORE_RELIABLE 0x0000000000010000ULL 82 91 // 83 92 // Runtime memory attribute 84 93 // 85 #define EFI_MEMORY_RUNTIME 0x8000000000000000ULL94 #define EFI_MEMORY_RUNTIME 0x8000000000000000ULL 86 95 87 96 /// … … 95 104 typedef struct { 96 105 /// 97 /// Type of the memory region. See EFI_MEMORY_TYPE. 106 /// Type of the memory region. 107 /// Type EFI_MEMORY_TYPE is defined in the 108 /// AllocatePages() function description. 98 109 /// 99 110 UINT32 Type; 100 111 /// 101 /// Physical address of the first byte of the memory region. Must aligned 102 /// on a 4 KB boundary. 112 /// Physical address of the first byte in the memory region. PhysicalStart must be 113 /// aligned on a 4 KiB boundary, and must not be above 0xfffffffffffff000. Type 114 /// EFI_PHYSICAL_ADDRESS is defined in the AllocatePages() function description 103 115 /// 104 116 EFI_PHYSICAL_ADDRESS PhysicalStart; 105 117 /// 106 /// Virtual address of the first byte of the memory region. Must aligned 107 /// on a 4 KB boundary. 118 /// Virtual address of the first byte in the memory region. 119 /// VirtualStart must be aligned on a 4 KiB boundary, 120 /// and must not be above 0xfffffffffffff000. 108 121 /// 109 122 EFI_VIRTUAL_ADDRESS VirtualStart; 110 123 /// 111 /// Number of 4KB pages in the memory region. 124 /// NumberOfPagesNumber of 4 KiB pages in the memory region. 125 /// NumberOfPages must not be 0, and must not be any value 126 /// that would represent a memory page with a start address, 127 /// either physical or virtual, above 0xfffffffffffff000. 112 128 /// 113 129 UINT64 NumberOfPages; … … 123 139 Allocates memory pages from the system. 124 140 125 @param Type The type of allocation to perform. 126 @param MemoryType The type of memory to allocate. 127 @param Pages The number of contiguous 4 KB pages to allocate. 128 @param Memory The pointer to a physical address. On input, the way in which the address is 129 used depends on the value of Type. 141 @param[in] Type The type of allocation to perform. 142 @param[in] MemoryType The type of memory to allocate. 143 MemoryType values in the range 0x70000000..0x7FFFFFFF 144 are reserved for OEM use. MemoryType values in the range 145 0x80000000..0xFFFFFFFF are reserved for use by UEFI OS loaders 146 that are provided by operating system vendors. 147 @param[in] Pages The number of contiguous 4 KB pages to allocate. 148 @param[in, out] Memory The pointer to a physical address. On input, the way in which the address is 149 used depends on the value of Type. 130 150 131 151 @retval EFI_SUCCESS The requested pages were allocated. … … 133 153 AllocateMaxAddress or AllocateAddress. 134 154 2) MemoryType is in the range 155 EfiMaxMemoryType..0x6FFFFFFF. 135 156 3) Memory is NULL. 136 4) MemoryType was EfiPersistentMemory. 137 EfiMaxMemoryType..0x7FFFFFFF. 157 4) MemoryType is EfiPersistentMemory. 138 158 @retval EFI_OUT_OF_RESOURCES The pages could not be allocated. 139 159 @retval EFI_NOT_FOUND The requested pages could not be found. … … 152 172 Frees memory pages. 153 173 154 @param Memory The base physical address of the pages to be freed.155 @param Pages The number of contiguous 4 KB pages to free.174 @param[in] Memory The base physical address of the pages to be freed. 175 @param[in] Pages The number of contiguous 4 KB pages to free. 156 176 157 177 @retval EFI_SUCCESS The requested pages were freed. … … 171 191 Returns the current memory map. 172 192 173 @param MemoryMapSize A pointer to the size, in bytes, of the MemoryMap buffer.174 On input, this is the size of the buffer allocated by the caller.175 On output, it is the size of the buffer returned by the firmware if176 the buffer was large enough, or the size of the buffer needed to contain177 the map if the buffer was too small.178 @param MemoryMap A pointer to the buffer in which firmware places the current memory179 map.180 @param MapKey A pointer to the location in which firmware returns the key for the181 current memory map.182 @param DescriptorSize A pointer to the location in which firmware returns the size, in bytes, of183 an individual EFI_MEMORY_DESCRIPTOR.184 @param DescriptorVersion A pointer to the location in which firmware returns the version number185 associated with the EFI_MEMORY_DESCRIPTOR.193 @param[in, out] MemoryMapSize A pointer to the size, in bytes, of the MemoryMap buffer. 194 On input, this is the size of the buffer allocated by the caller. 195 On output, it is the size of the buffer returned by the firmware if 196 the buffer was large enough, or the size of the buffer needed to contain 197 the map if the buffer was too small. 198 @param[in, out] MemoryMap A pointer to the buffer in which firmware places the current memory 199 map. 200 @param[out] MapKey A pointer to the location in which firmware returns the key for the 201 current memory map. 202 @param[out] DescriptorSize A pointer to the location in which firmware returns the size, in bytes, of 203 an individual EFI_MEMORY_DESCRIPTOR. 204 @param[out] DescriptorVersion A pointer to the location in which firmware returns the version number 205 associated with the EFI_MEMORY_DESCRIPTOR. 186 206 187 207 @retval EFI_SUCCESS The memory map was returned in the MemoryMap buffer. … … 206 226 Allocates pool memory. 207 227 208 @param PoolType The type of pool to allocate. 209 @param Size The number of bytes to allocate from the pool. 210 @param Buffer A pointer to a pointer to the allocated buffer if the call succeeds; 228 @param[in] PoolType The type of pool to allocate. 229 MemoryType values in the range 0x70000000..0x7FFFFFFF 230 are reserved for OEM use. MemoryType values in the range 231 0x80000000..0xFFFFFFFF are reserved for use by UEFI OS loaders 232 that are provided by operating system vendors. 233 @param[in] Size The number of bytes to allocate from the pool. 234 @param[out] Buffer A pointer to a pointer to the allocated buffer if the call succeeds; 211 235 undefined otherwise. 212 236 213 237 @retval EFI_SUCCESS The requested number of bytes was allocated. 214 238 @retval EFI_OUT_OF_RESOURCES The pool requested could not be allocated. 215 @retval EFI_INVALID_PARAMETER PoolType was invalid or Buffer is NULL. 216 PoolType was EfiPersistentMemory. 239 @retval EFI_INVALID_PARAMETER Buffer is NULL. 240 PoolType is in the range EfiMaxMemoryType..0x6FFFFFFF. 241 PoolType is EfiPersistentMemory. 217 242 218 243 **/ … … 228 253 Returns pool memory to the system. 229 254 230 @param BufferThe pointer to the buffer to free.255 @param[in] Buffer The pointer to the buffer to free. 231 256 232 257 @retval EFI_SUCCESS The memory was returned to the system. … … 243 268 Changes the runtime addressing mode of EFI firmware from physical to virtual. 244 269 245 @param MemoryMapSizeThe size in bytes of VirtualMap.246 @param DescriptorSizeThe size in bytes of an entry in the VirtualMap.247 @param DescriptorVersionThe version of the structure entries in VirtualMap.248 @param VirtualMapAn array of memory descriptors which contain new virtual270 @param[in] MemoryMapSize The size in bytes of VirtualMap. 271 @param[in] DescriptorSize The size in bytes of an entry in the VirtualMap. 272 @param[in] DescriptorVersion The version of the structure entries in VirtualMap. 273 @param[in] VirtualMap An array of memory descriptors which contain new virtual 249 274 address mapping information for all runtime ranges. 250 275 … … 271 296 Connects one or more drivers to a controller. 272 297 273 @param ControllerHandle The handle of the controller to which driver(s) are to be connected.274 @param DriverImageHandle A pointer to an ordered list handles that support the275 EFI_DRIVER_BINDING_PROTOCOL.276 @param RemainingDevicePath A pointer to the device path that specifies a child of the277 controller specified by ControllerHandle.278 @param Recursive If TRUE, then ConnectController() is called recursively279 until the entire tree of controllers below the controller specified280 by ControllerHandle have been created. If FALSE, then281 the tree of controllers is only expanded one level.298 @param[in] ControllerHandle The handle of the controller to which driver(s) are to be connected. 299 @param[in] DriverImageHandle A pointer to an ordered list handles that support the 300 EFI_DRIVER_BINDING_PROTOCOL. 301 @param[in] RemainingDevicePath A pointer to the device path that specifies a child of the 302 controller specified by ControllerHandle. 303 @param[in] Recursive If TRUE, then ConnectController() is called recursively 304 until the entire tree of controllers below the controller specified 305 by ControllerHandle have been created. If FALSE, then 306 the tree of controllers is only expanded one level. 282 307 283 308 @retval EFI_SUCCESS 1) One or more drivers were connected to ControllerHandle. … … 305 330 Disconnects one or more drivers from a controller. 306 331 307 @param ControllerHandle The handle of the controller from which driver(s) are to be disconnected.308 @param DriverImageHandle The driver to disconnect from ControllerHandle.309 If DriverImageHandle is NULL, then all the drivers currently managing310 ControllerHandle are disconnected from ControllerHandle.311 @param ChildHandle The handle of the child to destroy.312 If ChildHandle is NULL, then all the children of ControllerHandle are313 destroyed before the drivers are disconnected from ControllerHandle.332 @param[in] ControllerHandle The handle of the controller from which driver(s) are to be disconnected. 333 @param[in] DriverImageHandle The driver to disconnect from ControllerHandle. 334 If DriverImageHandle is NULL, then all the drivers currently managing 335 ControllerHandle are disconnected from ControllerHandle. 336 @param[in] ChildHandle The handle of the child to destroy. 337 If ChildHandle is NULL, then all the children of ControllerHandle are 338 destroyed before the drivers are disconnected from ControllerHandle. 314 339 315 340 @retval EFI_SUCCESS 1) One or more drivers were disconnected from the controller. … … 344 369 Determines the new virtual address that is to be used on subsequent memory accesses. 345 370 346 @param DebugDispositionSupplies type information for the pointer being converted.347 @param AddressA pointer to a pointer that is to be fixed to be the value needed348 for the new virtual address mappings being applied.371 @param[in] DebugDisposition Supplies type information for the pointer being converted. 372 @param[in, out] Address A pointer to a pointer that is to be fixed to be the value needed 373 for the new virtual address mappings being applied. 349 374 350 375 @retval EFI_SUCCESS The pointer pointed to by Address was modified. … … 388 413 Invoke a notification event 389 414 390 @param Event Event whose notification function is being invoked.391 @param Context The pointer to the notification function's context,392 which is implementation-dependent.415 @param[in] Event Event whose notification function is being invoked. 416 @param[in] Context The pointer to the notification function's context, 417 which is implementation-dependent. 393 418 394 419 **/ … … 403 428 Creates an event. 404 429 405 @param TypeThe type of event to create and its mode and attributes.406 @param NotifyTplThe task priority level of event notifications, if needed.407 @param NotifyFunctionThe pointer to the event's notification function, if any.408 @param NotifyContextThe pointer to the notification function's context; corresponds to parameter430 @param[in] Type The type of event to create and its mode and attributes. 431 @param[in] NotifyTpl The task priority level of event notifications, if needed. 432 @param[in] NotifyFunction The pointer to the event's notification function, if any. 433 @param[in] NotifyContext The pointer to the notification function's context; corresponds to parameter 409 434 Context in the notification function. 410 @param EventThe pointer to the newly created event if the call succeeds; undefined435 @param[out] Event The pointer to the newly created event if the call succeeds; undefined 411 436 otherwise. 412 437 … … 429 454 Creates an event in a group. 430 455 431 @param TypeThe type of event to create and its mode and attributes.432 @param NotifyTplThe task priority level of event notifications,if needed.433 @param NotifyFunctionThe pointer to the event's notification function, if any.434 @param NotifyContextThe pointer to the notification function's context; corresponds to parameter456 @param[in] Type The type of event to create and its mode and attributes. 457 @param[in] NotifyTpl The task priority level of event notifications,if needed. 458 @param[in] NotifyFunction The pointer to the event's notification function, if any. 459 @param[in] NotifyContext The pointer to the notification function's context; corresponds to parameter 435 460 Context in the notification function. 436 @param EventGroupThe pointer to the unique identifier of the group to which this event belongs.461 @param[in] EventGroup The pointer to the unique identifier of the group to which this event belongs. 437 462 If this is NULL, then the function behaves as if the parameters were passed 438 463 to CreateEvent. 439 @param EventThe pointer to the newly created event if the call succeeds; undefined464 @param[out] Event The pointer to the newly created event if the call succeeds; undefined 440 465 otherwise. 441 466 … … 477 502 Sets the type of timer and the trigger time for a timer event. 478 503 479 @param EventThe timer event that is to be signaled at the specified time.480 @param TypeThe type of time that is specified in TriggerTime.481 @param TriggerTimeThe number of 100ns units until the timer expires.504 @param[in] Event The timer event that is to be signaled at the specified time. 505 @param[in] Type The type of time that is specified in TriggerTime. 506 @param[in] TriggerTime The number of 100ns units until the timer expires. 482 507 A TriggerTime of 0 is legal. 483 508 If Type is TimerRelative and TriggerTime is 0, then the timer … … 501 526 Signals an event. 502 527 503 @param EventThe event to signal.528 @param[in] Event The event to signal. 504 529 505 530 @retval EFI_SUCCESS The event has been signaled. … … 515 540 Stops execution until an event is signaled. 516 541 517 @param NumberOfEventsThe number of events in the Event array.518 @param EventAn array of EFI_EVENT.519 @param IndexThe pointer to the index of the event which satisfied the wait condition.542 @param[in] NumberOfEvents The number of events in the Event array. 543 @param[in] Event An array of EFI_EVENT. 544 @param[out] Index The pointer to the index of the event which satisfied the wait condition. 520 545 521 546 @retval EFI_SUCCESS The event indicated by Index was signaled. … … 537 562 Closes an event. 538 563 539 @param EventThe event to close.564 @param[in] Event The event to close. 540 565 541 566 @retval EFI_SUCCESS The event has been closed. … … 551 576 Checks whether an event is in the signaled state. 552 577 553 @param EventThe event to check.578 @param[in] Event The event to check. 554 579 555 580 @retval EFI_SUCCESS The event is in the signaled state. … … 577 602 Raises a task's priority level and returns its previous level. 578 603 579 @param NewTplThe new task priority level.604 @param[in] NewTpl The new task priority level. 580 605 581 606 @return Previous task priority level … … 591 616 Restores a task's priority level to its previous value. 592 617 593 @param OldTplThe previous task priority level to restore.618 @param[in] OldTpl The previous task priority level to restore. 594 619 595 620 **/ … … 603 628 Returns the value of a variable. 604 629 605 @param VariableName A Null-terminated string that is the name of the vendor's 606 variable. 607 @param VendorGuid A unique identifier for the vendor. 608 @param Attributes If not NULL, a pointer to the memory location to return the 609 attributes bitmask for the variable. 610 @param DataSize On input, the size in bytes of the return Data buffer. 611 On output the size of data returned in Data. 612 @param Data The buffer to return the contents of the variable. 630 @param[in] VariableName A Null-terminated string that is the name of the vendor's 631 variable. 632 @param[in] VendorGuid A unique identifier for the vendor. 633 @param[out] Attributes If not NULL, a pointer to the memory location to return the 634 attributes bitmask for the variable. 635 @param[in, out] DataSize On input, the size in bytes of the return Data buffer. 636 On output the size of data returned in Data. 637 @param[out] Data The buffer to return the contents of the variable. May be NULL 638 with a zero DataSize in order to determine the size buffer needed. 613 639 614 640 @retval EFI_SUCCESS The function completed successfully. … … 630 656 OUT UINT32 *Attributes, OPTIONAL 631 657 IN OUT UINTN *DataSize, 632 OUT VOID *Data 658 OUT VOID *Data OPTIONAL 633 659 ); 634 660 … … 636 662 Enumerates the current variable names. 637 663 638 @param VariableNameSize The size of the VariableName buffer. 639 @param VariableName On input, supplies the last VariableName that was returned 640 by GetNextVariableName(). On output, returns the Nullterminated 641 string of the current variable. 642 @param VendorGuid On input, supplies the last VendorGuid that was returned by 643 GetNextVariableName(). On output, returns the 644 VendorGuid of the current variable. 664 @param[in, out] VariableNameSize The size of the VariableName buffer. The size must be large 665 enough to fit input string supplied in VariableName buffer. 666 @param[in, out] VariableName On input, supplies the last VariableName that was returned 667 by GetNextVariableName(). On output, returns the Nullterminated 668 string of the current variable. 669 @param[in, out] VendorGuid On input, supplies the last VendorGuid that was returned by 670 GetNextVariableName(). On output, returns the 671 VendorGuid of the current variable. 645 672 646 673 @retval EFI_SUCCESS The function completed successfully. 647 674 @retval EFI_NOT_FOUND The next variable was not found. 648 675 @retval EFI_BUFFER_TOO_SMALL The VariableNameSize is too small for the result. 676 VariableNameSize has been updated with the size needed to complete the request. 649 677 @retval EFI_INVALID_PARAMETER VariableNameSize is NULL. 650 678 @retval EFI_INVALID_PARAMETER VariableName is NULL. 651 679 @retval EFI_INVALID_PARAMETER VendorGuid is NULL. 680 @retval EFI_INVALID_PARAMETER The input values of VariableName and VendorGuid are not a name and 681 GUID of an existing variable. 682 @retval EFI_INVALID_PARAMETER Null-terminator is not found in the first VariableNameSize bytes of 683 the input VariableName buffer. 652 684 @retval EFI_DEVICE_ERROR The variable could not be retrieved due to a hardware error. 653 685 … … 664 696 Sets the value of a variable. 665 697 666 @param VariableNameA Null-terminated string that is the name of the vendor's variable.698 @param[in] VariableName A Null-terminated string that is the name of the vendor's variable. 667 699 Each VariableName is unique for each VendorGuid. VariableName must 668 700 contain 1 or more characters. If VariableName is an empty string, 669 701 then EFI_INVALID_PARAMETER is returned. 670 @param VendorGuid A unique identifier for the vendor. 671 @param Attributes Attributes bitmask to set for the variable. 672 @param DataSize The size in bytes of the Data buffer. Unless the EFI_VARIABLE_APPEND_WRITE, 673 EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS, or 702 @param[in] VendorGuid A unique identifier for the vendor. 703 @param[in] Attributes Attributes bitmask to set for the variable. 704 @param[in] DataSize The size in bytes of the Data buffer. Unless the EFI_VARIABLE_APPEND_WRITE or 674 705 EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS attribute is set, a size of zero 675 706 causes the variable to be deleted. When the EFI_VARIABLE_APPEND_WRITE attribute is … … 679 710 EFI_VARIABLE_AUTHENTICATION_2 descriptor below. In this case the DataSize will not 680 711 be zero since the EFI_VARIABLE_AUTHENTICATION_2 descriptor will be populated). 681 @param DataThe contents for the variable.712 @param[in] Data The contents for the variable. 682 713 683 714 @retval EFI_SUCCESS The firmware has successfully stored the variable and its data as … … 690 721 @retval EFI_WRITE_PROTECTED The variable in question is read-only. 691 722 @retval EFI_WRITE_PROTECTED The variable in question cannot be deleted. 692 @retval EFI_SECURITY_VIOLATION The variable could not be written due to EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS 693 or EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACESS being set, but the AuthInfo 694 does NOT pass the validation check carried out by the firmware. 723 @retval EFI_SECURITY_VIOLATION The variable could not be written due to EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACESS being set, 724 but the AuthInfo does NOT pass the validation check carried out by the firmware. 695 725 696 726 @retval EFI_NOT_FOUND The variable trying to be updated or deleted was not found. … … 741 771 of the hardware platform. 742 772 743 @param TimeA pointer to storage to receive a snapshot of the current time.744 @param CapabilitiesAn optional pointer to a buffer to receive the real time clock773 @param[out] Time A pointer to storage to receive a snapshot of the current time. 774 @param[out] Capabilities An optional pointer to a buffer to receive the real time clock 745 775 device's capabilities. 746 776 … … 760 790 Sets the current local time and date information. 761 791 762 @param TimeA pointer to the current time.792 @param[in] Time A pointer to the current time. 763 793 764 794 @retval EFI_SUCCESS The operation completed successfully. … … 776 806 Returns the current wakeup alarm clock setting. 777 807 778 @param EnabledIndicates if the alarm is currently enabled or disabled.779 @param PendingIndicates if the alarm signal is pending and requires acknowledgement.780 @param TimeThe current alarm setting.808 @param[out] Enabled Indicates if the alarm is currently enabled or disabled. 809 @param[out] Pending Indicates if the alarm signal is pending and requires acknowledgement. 810 @param[out] Time The current alarm setting. 781 811 782 812 @retval EFI_SUCCESS The alarm settings were returned. … … 799 829 Sets the system wakeup alarm clock time. 800 830 801 @param EnabledEnable or disable the wakeup alarm.802 @param TimeIf Enable is TRUE, the time to set the wakeup alarm for.831 @param[in] Enable Enable or disable the wakeup alarm. 832 @param[in] Time If Enable is TRUE, the time to set the wakeup alarm for. 803 833 If Enable is FALSE, then this parameter is optional, and may be NULL. 804 834 … … 820 850 Loads an EFI image into memory. 821 851 822 @param BootPolicyIf TRUE, indicates that the request originates from the boot823 manager, and that the boot manager is attempting to load824 FilePath as a boot selection. Ignored if SourceBuffer is825 not NULL.826 @param ParentImageHandleThe caller's image handle.827 @param DevicePathThe DeviceHandle specific file path from which the image is828 loaded.829 @param SourceBufferIf not NULL, a pointer to the memory location containing a copy830 of the image to be loaded.831 @param SourceSizeThe size in bytes of SourceBuffer. Ignored if SourceBuffer is NULL.832 @param ImageHandleThe pointer to the returned image handle that is created when the833 image is successfully loaded.834 835 @retval EFI_SUCCESS Image was loaded into memory correctly.836 @retval EFI_NOT_FOUND Both SourceBuffer and DevicePath are NULL.837 @retval EFI_INVALID_PARAMETER One or more parametes are invalid.838 @retval EFI_UNSUPPORTED The image type is not supported.839 @retval EFI_OUT_OF_RESOURCES Image was not loaded due to insufficient resources.840 @retval EFI_LOAD_ERROR Image was not loaded because the image format was corrupt or not841 understood.842 @retval EFI_DEVICE_ERROR Image was not loaded because the device returned a read error.843 @retval EFI_ACCESS_DENIED Image was not loaded because the platform policy prohibits the844 image from being loaded. NULL is returned in *ImageHandle.852 @param[in] BootPolicy If TRUE, indicates that the request originates from the boot 853 manager, and that the boot manager is attempting to load 854 FilePath as a boot selection. Ignored if SourceBuffer is 855 not NULL. 856 @param[in] ParentImageHandle The caller's image handle. 857 @param[in] DevicePath The DeviceHandle specific file path from which the image is 858 loaded. 859 @param[in] SourceBuffer If not NULL, a pointer to the memory location containing a copy 860 of the image to be loaded. 861 @param[in] SourceSize The size in bytes of SourceBuffer. Ignored if SourceBuffer is NULL. 862 @param[out] ImageHandle The pointer to the returned image handle that is created when the 863 image is successfully loaded. 864 865 @retval EFI_SUCCESS Image was loaded into memory correctly. 866 @retval EFI_NOT_FOUND Both SourceBuffer and DevicePath are NULL. 867 @retval EFI_INVALID_PARAMETER One or more parametes are invalid. 868 @retval EFI_UNSUPPORTED The image type is not supported. 869 @retval EFI_OUT_OF_RESOURCES Image was not loaded due to insufficient resources. 870 @retval EFI_LOAD_ERROR Image was not loaded because the image format was corrupt or not 871 understood. 872 @retval EFI_DEVICE_ERROR Image was not loaded because the device returned a read error. 873 @retval EFI_ACCESS_DENIED Image was not loaded because the platform policy prohibits the 874 image from being loaded. NULL is returned in *ImageHandle. 845 875 @retval EFI_SECURITY_VIOLATION Image was loaded and an ImageHandle was created with a 846 valid EFI_LOADED_IMAGE_PROTOCOL. However, the current847 platform policy specifies that the image should not be started.876 valid EFI_LOADED_IMAGE_PROTOCOL. However, the current 877 platform policy specifies that the image should not be started. 848 878 **/ 849 879 typedef … … 861 891 Transfers control to a loaded image's entry point. 862 892 863 @param ImageHandleHandle of image to be started.864 @param ExitDataSizeThe pointer to the size, in bytes, of ExitData.865 @param ExitDataThe pointer to a pointer to a data buffer that includes a Null-terminated866 string, optionally followed by additional binary data.893 @param[in] ImageHandle Handle of image to be started. 894 @param[out] ExitDataSize The pointer to the size, in bytes, of ExitData. 895 @param[out] ExitData The pointer to a pointer to a data buffer that includes a Null-terminated 896 string, optionally followed by additional binary data. 867 897 868 898 @retval EFI_INVALID_PARAMETER ImageHandle is either an invalid image handle or the image … … 883 913 Terminates a loaded EFI image and returns control to boot services. 884 914 885 @param ImageHandleHandle that identifies the image. This parameter is passed to the915 @param[in] ImageHandle Handle that identifies the image. This parameter is passed to the 886 916 image on entry. 887 @param ExitStatusThe image's exit code.888 @param ExitDataSizeThe size, in bytes, of ExitData. Ignored if ExitStatus is EFI_SUCCESS.889 @param ExitDataThe pointer to a data buffer that includes a Null-terminated string,917 @param[in] ExitStatus The image's exit code. 918 @param[in] ExitDataSize The size, in bytes, of ExitData. Ignored if ExitStatus is EFI_SUCCESS. 919 @param[in] ExitData The pointer to a data buffer that includes a Null-terminated string, 890 920 optionally followed by additional binary data. The string is a 891 921 description that the caller may use to further indicate the reason … … 912 942 Unloads an image. 913 943 914 @param ImageHandleHandle that identifies the image to be unloaded.944 @param[in] ImageHandle Handle that identifies the image to be unloaded. 915 945 916 946 @retval EFI_SUCCESS The image has been unloaded. … … 927 957 Terminates all boot services. 928 958 929 @param ImageHandleHandle that identifies the exiting image.930 @param MapKeyKey to the latest memory map.959 @param[in] ImageHandle Handle that identifies the exiting image. 960 @param[in] MapKey Key to the latest memory map. 931 961 932 962 @retval EFI_SUCCESS Boot services have been terminated. … … 944 974 Induces a fine-grained stall. 945 975 946 @param MicrosecondsThe number of microseconds to stall execution.976 @param[in] Microseconds The number of microseconds to stall execution. 947 977 948 978 @retval EFI_SUCCESS Execution was stalled at least the requested number of … … 959 989 Sets the system's watchdog timer. 960 990 961 @param TimeoutThe number of seconds to set the watchdog timer to.962 @param WatchdogCodeThe numeric code to log on a watchdog timer timeout event.963 @param DataSizeThe size, in bytes, of WatchdogData.964 @param WatchdogDataA data buffer that includes a Null-terminated string, optionally991 @param[in] Timeout The number of seconds to set the watchdog timer to. 992 @param[in] WatchdogCode The numeric code to log on a watchdog timer timeout event. 993 @param[in] DataSize The size, in bytes, of WatchdogData. 994 @param[in] WatchdogData A data buffer that includes a Null-terminated string, optionally 965 995 followed by additional binary data. 966 996 … … 981 1011 ); 982 1012 983 ///984 /// Enumeration of reset types.985 ///986 typedef enum {987 ///988 /// Used to induce a system-wide reset. This sets all circuitry within the989 /// system to its initial state. This type of reset is asynchronous to system990 /// operation and operates withgout regard to cycle boundaries. EfiColdReset991 /// is tantamount to a system power cycle.992 ///993 EfiResetCold,994 ///995 /// Used to induce a system-wide initialization. The processors are set to their996 /// initial state, and pending cycles are not corrupted. If the system does997 /// not support this reset type, then an EfiResetCold must be performed.998 ///999 EfiResetWarm,1000 ///1001 /// Used to induce an entry into a power state equivalent to the ACPI G2/S5 or G31002 /// state. If the system does not support this reset type, then when the system1003 /// is rebooted, it should exhibit the EfiResetCold attributes.1004 ///1005 EfiResetShutdown,1006 ///1007 /// Used to induce a system-wide reset. The exact type of the reset is defined by1008 /// the EFI_GUID that follows the Null-terminated Unicode string passed into1009 /// ResetData. If the platform does not recognize the EFI_GUID in ResetData the1010 /// platform must pick a supported reset type to perform. The platform may1011 /// optionally log the parameters from any non-normal reset that occurs.1012 ///1013 EfiResetPlatformSpecific1014 } EFI_RESET_TYPE;1015 1016 1013 /** 1017 1014 Resets the entire platform. 1018 1015 1019 @param ResetTypeThe type of reset to perform.1020 @param ResetStatusThe status code for the reset.1021 @param DataSize The size, in bytes, of WatchdogData.1022 @param ResetDataFor a ResetType of EfiResetCold, EfiResetWarm, or1016 @param[in] ResetType The type of reset to perform. 1017 @param[in] ResetStatus The status code for the reset. 1018 @param[in] DataSize The size, in bytes, of ResetData. 1019 @param[in] ResetData For a ResetType of EfiResetCold, EfiResetWarm, or 1023 1020 EfiResetShutdown the data buffer starts with a Null-terminated 1024 1021 string, optionally followed by additional binary data. 1025 1022 The string is a description that the caller may use to further 1023 indicate the reason for the system reset. ResetData is only 1024 valid if ResetStatus is something other than EFI_SUCCESS 1025 unless the ResetType is EfiResetPlatformSpecific 1026 where a minimum amount of ResetData is always required. 1027 For a ResetType of EfiResetPlatformSpecific the data buffer 1028 also starts with a Null-terminated string that is followed 1029 by an EFI_GUID that describes the specific type of reset to perform. 1026 1030 **/ 1027 1031 typedef … … 1037 1041 Returns a monotonically increasing count for the platform. 1038 1042 1039 @param CountThe pointer to returned value.1043 @param[out] Count The pointer to returned value. 1040 1044 1041 1045 @retval EFI_SUCCESS The next monotonic count was returned. … … 1053 1057 Returns the next high 32 bits of the platform's monotonic counter. 1054 1058 1055 @param HighCountThe pointer to returned value.1059 @param[out] HighCount The pointer to returned value. 1056 1060 1057 1061 @retval EFI_SUCCESS The next high monotonic count was returned. … … 1069 1073 Computes and returns a 32-bit CRC for a data buffer. 1070 1074 1071 @param DataA pointer to the buffer on which the 32-bit CRC is to be computed.1072 @param DataSizeThe number of bytes in the buffer Data.1073 @param Crc32The 32-bit CRC that was computed for the data buffer specified by Data1075 @param[in] Data A pointer to the buffer on which the 32-bit CRC is to be computed. 1076 @param[in] DataSize The number of bytes in the buffer Data. 1077 @param[out] Crc32 The 32-bit CRC that was computed for the data buffer specified by Data 1074 1078 and DataSize. 1075 1079 … … 1092 1096 Copies the contents of one buffer to another buffer. 1093 1097 1094 @param DestinationThe pointer to the destination buffer of the memory copy.1095 @param SourceThe pointer to the source buffer of the memory copy.1096 @param LengthNumber of bytes to copy from Source to Destination.1098 @param[in] Destination The pointer to the destination buffer of the memory copy. 1099 @param[in] Source The pointer to the source buffer of the memory copy. 1100 @param[in] Length Number of bytes to copy from Source to Destination. 1097 1101 1098 1102 **/ … … 1108 1112 The SetMem() function fills a buffer with a specified value. 1109 1113 1110 @param BufferThe pointer to the buffer to fill.1111 @param SizeNumber of bytes in Buffer to fill.1112 @param ValueValue to fill Buffer with.1114 @param[in] Buffer The pointer to the buffer to fill. 1115 @param[in] Size Number of bytes in Buffer to fill. 1116 @param[in] Value Value to fill Buffer with. 1113 1117 1114 1118 **/ … … 1138 1142 InstallProtocolInterface() 1139 1143 1140 @param HandleA pointer to the EFI_HANDLE on which the interface is to be installed.1141 @param ProtocolThe numeric ID of the protocol interface.1142 @param InterfaceTypeIndicates whether Interface is supplied in native form.1143 @param InterfaceA pointer to the protocol interface.1144 @param[in, out] Handle A pointer to the EFI_HANDLE on which the interface is to be installed. 1145 @param[in] Protocol The numeric ID of the protocol interface. 1146 @param[in] InterfaceType Indicates whether Interface is supplied in native form. 1147 @param[in] Interface A pointer to the protocol interface. 1144 1148 1145 1149 @retval EFI_SUCCESS The protocol interface was installed. … … 1163 1167 Installs one or more protocol interfaces into the boot services environment. 1164 1168 1165 @param HandleThe pointer to a handle to install the new protocol interfaces on,1169 @param[in, out] Handle The pointer to a handle to install the new protocol interfaces on, 1166 1170 or a pointer to NULL if a new handle is to be allocated. 1167 1171 @param ... A variable argument list containing pairs of protocol GUIDs and protocol … … 1186 1190 Reinstalls a protocol interface on a device handle. 1187 1191 1188 @param HandleHandle on which the interface is to be reinstalled.1189 @param ProtocolThe numeric ID of the interface.1190 @param OldInterfaceA pointer to the old interface. NULL can be used if a structure is not1192 @param[in] Handle Handle on which the interface is to be reinstalled. 1193 @param[in] Protocol The numeric ID of the interface. 1194 @param[in] OldInterface A pointer to the old interface. NULL can be used if a structure is not 1191 1195 associated with Protocol. 1192 @param NewInterfaceA pointer to the new interface.1196 @param[in] NewInterface A pointer to the new interface. 1193 1197 1194 1198 @retval EFI_SUCCESS The protocol interface was reinstalled. … … 1215 1219 UninstallProtocolInterface(). 1216 1220 1217 @param HandleThe handle on which the interface was installed.1218 @param ProtocolThe numeric ID of the interface.1219 @param InterfaceA pointer to the interface.1221 @param[in] Handle The handle on which the interface was installed. 1222 @param[in] Protocol The numeric ID of the interface. 1223 @param[in] Interface A pointer to the interface. 1220 1224 1221 1225 @retval EFI_SUCCESS The interface was removed. … … 1238 1242 Removes one or more protocol interfaces into the boot services environment. 1239 1243 1240 @param HandleThe handle to remove the protocol interfaces from.1244 @param[in] Handle The handle to remove the protocol interfaces from. 1241 1245 @param ... A variable argument list containing pairs of protocol GUIDs and 1242 1246 protocol interfaces. … … 1256 1260 Queries a handle to determine if it supports a specified protocol. 1257 1261 1258 @param HandleThe handle being queried.1259 @param ProtocolThe published unique identifier of the protocol.1260 @param InterfaceSupplies the address where a pointer to the corresponding Protocol1262 @param[in] Handle The handle being queried. 1263 @param[in] Protocol The published unique identifier of the protocol. 1264 @param[out] Interface Supplies the address where a pointer to the corresponding Protocol 1261 1265 Interface is returned. 1262 1266 … … 1287 1291 handle, it opens the protocol on behalf of the calling agent. 1288 1292 1289 @param HandleThe handle for the protocol interface that is being opened.1290 @param ProtocolThe published unique identifier of the protocol.1291 @param InterfaceSupplies the address where a pointer to the corresponding Protocol1293 @param[in] Handle The handle for the protocol interface that is being opened. 1294 @param[in] Protocol The published unique identifier of the protocol. 1295 @param[out] Interface Supplies the address where a pointer to the corresponding Protocol 1292 1296 Interface is returned. 1293 @param AgentHandleThe handle of the agent that is opening the protocol interface1297 @param[in] AgentHandle The handle of the agent that is opening the protocol interface 1294 1298 specified by Protocol and Interface. 1295 @param ControllerHandleIf the agent that is opening a protocol is a driver that follows the1299 @param[in] ControllerHandle If the agent that is opening a protocol is a driver that follows the 1296 1300 UEFI Driver Model, then this parameter is the controller handle 1297 1301 that requires the protocol interface. If the agent does not follow 1298 1302 the UEFI Driver Model, then this parameter is optional and may 1299 1303 be NULL. 1300 @param AttributesThe open mode of the protocol interface specified by Handle1304 @param[in] Attributes The open mode of the protocol interface specified by Handle 1301 1305 and Protocol. 1302 1306 … … 1325 1329 Closes a protocol on a handle that was opened using OpenProtocol(). 1326 1330 1327 @param HandleThe handle for the protocol interface that was previously opened1331 @param[in] Handle The handle for the protocol interface that was previously opened 1328 1332 with OpenProtocol(), and is now being closed. 1329 @param ProtocolThe published unique identifier of the protocol.1330 @param AgentHandleThe handle of the agent that is closing the protocol interface.1331 @param ControllerHandleIf the agent that opened a protocol is a driver that follows the1333 @param[in] Protocol The published unique identifier of the protocol. 1334 @param[in] AgentHandle The handle of the agent that is closing the protocol interface. 1335 @param[in] ControllerHandle If the agent that opened a protocol is a driver that follows the 1332 1336 UEFI Driver Model, then this parameter is the controller handle 1333 1337 that required the protocol interface. … … 1365 1369 Retrieves the list of agents that currently have a protocol interface opened. 1366 1370 1367 @param HandleThe handle for the protocol interface that is being queried.1368 @param ProtocolThe published unique identifier of the protocol.1369 @param EntryBufferA pointer to a buffer of open protocol information in the form of1371 @param[in] Handle The handle for the protocol interface that is being queried. 1372 @param[in] Protocol The published unique identifier of the protocol. 1373 @param[out] EntryBuffer A pointer to a buffer of open protocol information in the form of 1370 1374 EFI_OPEN_PROTOCOL_INFORMATION_ENTRY structures. 1371 @param EntryCountA pointer to the number of entries in EntryBuffer.1375 @param[out] EntryCount A pointer to the number of entries in EntryBuffer. 1372 1376 1373 1377 @retval EFI_SUCCESS The open protocol information was returned in EntryBuffer, and the … … 1390 1394 from pool. 1391 1395 1392 @param HandleThe handle from which to retrieve the list of protocol interface1393 GUIDs.1394 @param ProtocolBufferA pointer to the list of protocol interface GUID pointers that are1395 installed on Handle.1396 @param ProtocolBufferCountA pointer to the number of GUID pointers present in1397 ProtocolBuffer.1396 @param[in] Handle The handle from which to retrieve the list of protocol interface 1397 GUIDs. 1398 @param[out] ProtocolBuffer A pointer to the list of protocol interface GUID pointers that are 1399 installed on Handle. 1400 @param[out] ProtocolBufferCount A pointer to the number of GUID pointers present in 1401 ProtocolBuffer. 1398 1402 1399 1403 @retval EFI_SUCCESS The list of protocol interface GUIDs installed on Handle was returned in … … 1418 1422 Creates an event that is to be signaled whenever an interface is installed for a specified protocol. 1419 1423 1420 @param ProtocolThe numeric ID of the protocol for which the event is to be registered.1421 @param EventEvent that is to be signaled whenever a protocol interface is registered1424 @param[in] Protocol The numeric ID of the protocol for which the event is to be registered. 1425 @param[in] Event Event that is to be signaled whenever a protocol interface is registered 1422 1426 for Protocol. 1423 @param RegistrationA pointer to a memory location to receive the registration value.1427 @param[out] Registration A pointer to a memory location to receive the registration value. 1424 1428 1425 1429 @retval EFI_SUCCESS The notification event has been registered. … … 1460 1464 Returns an array of handles that support a specified protocol. 1461 1465 1462 @param SearchTypeSpecifies which handle(s) are to be returned.1463 @param ProtocolSpecifies the protocol to search by.1464 @param SearchKeySpecifies the search key.1465 @param BufferSizeOn input, the size in bytes of Buffer. On output, the size in bytes of1466 @param[in] SearchType Specifies which handle(s) are to be returned. 1467 @param[in] Protocol Specifies the protocol to search by. 1468 @param[in] SearchKey Specifies the search key. 1469 @param[in, out] BufferSize On input, the size in bytes of Buffer. On output, the size in bytes of 1466 1470 the array returned in Buffer (if the buffer was large enough) or the 1467 1471 size, in bytes, of the buffer needed to obtain the array (if the buffer was 1468 1472 not large enough). 1469 @param BufferThe buffer in which the array is returned.1473 @param[out] Buffer The buffer in which the array is returned. 1470 1474 1471 1475 @retval EFI_SUCCESS The array of handles was returned. … … 1492 1496 Locates the handle to a device on the device path that supports the specified protocol. 1493 1497 1494 @param ProtocolSpecifies the protocol to search for.1495 @param DevicePathOn input, a pointer to a pointer to the device path. On output, the device1498 @param[in] Protocol Specifies the protocol to search for. 1499 @param[in, out] DevicePath On input, a pointer to a pointer to the device path. On output, the device 1496 1500 path pointer is modified to point to the remaining part of the device 1497 1501 path. 1498 @param DeviceA pointer to the returned device handle.1502 @param[out] Device A pointer to the returned device handle. 1499 1503 1500 1504 @retval EFI_SUCCESS The resulting handle was returned. … … 1516 1520 Adds, updates, or removes a configuration table entry from the EFI System Table. 1517 1521 1518 @param GuidA pointer to the GUID for the entry to add, update, or remove.1519 @param TableA pointer to the configuration table for the entry to add, update, or1522 @param[in] Guid A pointer to the GUID for the entry to add, update, or remove. 1523 @param[in] Table A pointer to the configuration table for the entry to add, update, or 1520 1524 remove. May be NULL. 1521 1525 … … 1536 1540 Returns an array of handles that support the requested protocol in a buffer allocated from pool. 1537 1541 1538 @param SearchTypeSpecifies which handle(s) are to be returned.1539 @param ProtocolProvides the protocol to search by.1542 @param[in] SearchType Specifies which handle(s) are to be returned. 1543 @param[in] Protocol Provides the protocol to search by. 1540 1544 This parameter is only valid for a SearchType of ByProtocol. 1541 @param SearchKeySupplies the search key depending on the SearchType.1542 @param NoHandlesThe number of handles returned in Buffer.1543 @param BufferA pointer to the buffer to return the requested array of handles that1545 @param[in] SearchKey Supplies the search key depending on the SearchType. 1546 @param[in, out] NoHandles The number of handles returned in Buffer. 1547 @param[out] Buffer A pointer to the buffer to return the requested array of handles that 1544 1548 support Protocol. 1545 1549 … … 1565 1569 Returns the first protocol instance that matches the given protocol. 1566 1570 1567 @param ProtocolProvides the protocol to search for.1568 @param RegistrationOptional registration key returned from1571 @param[in] Protocol Provides the protocol to search for. 1572 @param[in] Registration Optional registration key returned from 1569 1573 RegisterProtocolNotify(). 1570 @param InterfaceOn return, a pointer to the first interface that matches Protocol and1574 @param[out] Interface On return, a pointer to the first interface that matches Protocol and 1571 1575 Registration. 1572 1576 … … 1576 1580 Registration. 1577 1581 @retval EFI_INVALID_PARAMETER Interface is NULL. 1582 Protocol is NULL. 1578 1583 1579 1584 **/ … … 1663 1668 part of the reset process. 1664 1669 1665 @param CapsuleHeaderArrayVirtual pointer to an array of virtual pointers to the capsules1666 being passed into update capsule.1667 @param CapsuleCountNumber of pointers to EFI_CAPSULE_HEADER in1668 CaspuleHeaderArray.1669 @param ScatterGatherListPhysical pointer to a set of1670 EFI_CAPSULE_BLOCK_DESCRIPTOR that describes the1671 location in physical memory of a set of capsules.1670 @param[in] CapsuleHeaderArray Virtual pointer to an array of virtual pointers to the capsules 1671 being passed into update capsule. 1672 @param[in] CapsuleCount Number of pointers to EFI_CAPSULE_HEADER in 1673 CaspuleHeaderArray. 1674 @param[in] ScatterGatherList Physical pointer to a set of 1675 EFI_CAPSULE_BLOCK_DESCRIPTOR that describes the 1676 location in physical memory of a set of capsules. 1672 1677 1673 1678 @retval EFI_SUCCESS Valid capsule was passed. If … … 1697 1702 Returns if the capsule can be supported via UpdateCapsule(). 1698 1703 1699 @param CapsuleHeaderArrayVirtual pointer to an array of virtual pointers to the capsules1700 being passed into update capsule.1701 @param CapsuleCountNumber of pointers to EFI_CAPSULE_HEADER in1702 CaspuleHeaderArray.1703 @param MaxiumCapsuleSizeOn output the maximum size that UpdateCapsule() can1704 support as an argument to UpdateCapsule() via1705 CapsuleHeaderArray and ScatterGatherList.1706 @param ResetTypeReturns the type of reset required for the capsule update.1704 @param[in] CapsuleHeaderArray Virtual pointer to an array of virtual pointers to the capsules 1705 being passed into update capsule. 1706 @param[in] CapsuleCount Number of pointers to EFI_CAPSULE_HEADER in 1707 CaspuleHeaderArray. 1708 @param[out] MaxiumCapsuleSize On output the maximum size that UpdateCapsule() can 1709 support as an argument to UpdateCapsule() via 1710 CapsuleHeaderArray and ScatterGatherList. 1711 @param[out] ResetType Returns the type of reset required for the capsule update. 1707 1712 1708 1713 @retval EFI_SUCCESS Valid answer returned. … … 1729 1734 Returns information about the EFI variables. 1730 1735 1731 @param Attributes Attributes bitmask to specify the type of variables on1732 which to return information.1733 @param MaximumVariableStorageSize On output the maximum size of the storage space1734 available for the EFI variables associated with the1735 attributes specified.1736 @param RemainingVariableStorageSize Returns the remaining size of the storage space1737 available for the EFI variables associated with the1738 attributes specified.1739 @param MaximumVariableSize Returns the maximum size of the individual EFI1740 variables associated with the attributes specified.1736 @param[in] Attributes Attributes bitmask to specify the type of variables on 1737 which to return information. 1738 @param[out] MaximumVariableStorageSize On output the maximum size of the storage space 1739 available for the EFI variables associated with the 1740 attributes specified. 1741 @param[out] RemainingVariableStorageSize Returns the remaining size of the storage space 1742 available for the EFI variables associated with the 1743 attributes specified. 1744 @param[out] MaximumVariableSize Returns the maximum size of the individual EFI 1745 variables associated with the attributes specified. 1741 1746 1742 1747 @retval EFI_SUCCESS Valid answer returned. … … 1765 1770 #define EFI_OS_INDICATIONS_FMP_CAPSULE_SUPPORTED 0x0000000000000008 1766 1771 #define EFI_OS_INDICATIONS_CAPSULE_RESULT_VAR_SUPPORTED 0x0000000000000010 1772 #define EFI_OS_INDICATIONS_START_PLATFORM_RECOVERY 0x0000000000000040 1767 1773 1768 1774 // … … 1770 1776 // 1771 1777 #define EFI_SYSTEM_TABLE_SIGNATURE SIGNATURE_64 ('I','B','I',' ','S','Y','S','T') 1778 #define EFI_2_70_SYSTEM_TABLE_REVISION ((2 << 16) | (70)) 1779 #define EFI_2_60_SYSTEM_TABLE_REVISION ((2 << 16) | (60)) 1780 #define EFI_2_50_SYSTEM_TABLE_REVISION ((2 << 16) | (50)) 1772 1781 #define EFI_2_40_SYSTEM_TABLE_REVISION ((2 << 16) | (40)) 1773 1782 #define EFI_2_31_SYSTEM_TABLE_REVISION ((2 << 16) | (31)) … … 1778 1787 #define EFI_1_10_SYSTEM_TABLE_REVISION ((1 << 16) | (10)) 1779 1788 #define EFI_1_02_SYSTEM_TABLE_REVISION ((1 << 16) | (02)) 1780 #define EFI_SYSTEM_TABLE_REVISION EFI_2_ 40_SYSTEM_TABLE_REVISION1789 #define EFI_SYSTEM_TABLE_REVISION EFI_2_70_SYSTEM_TABLE_REVISION 1781 1790 #define EFI_SPECIFICATION_VERSION EFI_SYSTEM_TABLE_REVISION 1782 1791 … … 2034 2043 both device drivers and bus drivers. 2035 2044 2036 @param ImageHandleThe firmware allocated handle for the UEFI image.2037 @param SystemTableA pointer to the EFI System Table.2045 @param[in] ImageHandle The firmware allocated handle for the UEFI image. 2046 @param[in] SystemTable A pointer to the EFI System Table. 2038 2047 2039 2048 @retval EFI_SUCCESS The operation completed successfully. … … 2048 2057 2049 2058 // 2059 // EFI Load Option. This data structure describes format of UEFI boot option variables. 2060 // 2061 // NOTE: EFI Load Option is a byte packed buffer of variable length fields. 2062 // The first two fields have fixed length. They are declared as members of the 2063 // EFI_LOAD_OPTION structure. All the other fields are variable length fields. 2064 // They are listed in the comment block below for reference purposes. 2065 // 2066 #pragma pack(1) 2067 typedef struct _EFI_LOAD_OPTION { 2068 /// 2069 /// The attributes for this load option entry. All unused bits must be zero 2070 /// and are reserved by the UEFI specification for future growth. 2071 /// 2072 UINT32 Attributes; 2073 /// 2074 /// Length in bytes of the FilePathList. OptionalData starts at offset 2075 /// sizeof(UINT32) + sizeof(UINT16) + StrSize(Description) + FilePathListLength 2076 /// of the EFI_LOAD_OPTION descriptor. 2077 /// 2078 UINT16 FilePathListLength; 2079 /// 2080 /// The user readable description for the load option. 2081 /// This field ends with a Null character. 2082 /// 2083 // CHAR16 Description[]; 2084 /// 2085 /// A packed array of UEFI device paths. The first element of the array is a 2086 /// device path that describes the device and location of the Image for this 2087 /// load option. The FilePathList[0] is specific to the device type. Other 2088 /// device paths may optionally exist in the FilePathList, but their usage is 2089 /// OSV specific. Each element in the array is variable length, and ends at 2090 /// the device path end structure. Because the size of Description is 2091 /// arbitrary, this data structure is not guaranteed to be aligned on a 2092 /// natural boundary. This data structure may have to be copied to an aligned 2093 /// natural boundary before it is used. 2094 /// 2095 // EFI_DEVICE_PATH_PROTOCOL FilePathList[]; 2096 /// 2097 /// The remaining bytes in the load option descriptor are a binary data buffer 2098 /// that is passed to the loaded image. If the field is zero bytes long, a 2099 /// NULL pointer is passed to the loaded image. The number of bytes in 2100 /// OptionalData can be computed by subtracting the starting offset of 2101 /// OptionalData from total size in bytes of the EFI_LOAD_OPTION. 2102 /// 2103 // UINT8 OptionalData[]; 2104 } EFI_LOAD_OPTION; 2105 #pragma pack() 2106 2107 // 2050 2108 // EFI Load Options Attributes 2051 2109 // 2052 #define LOAD_OPTION_ACTIVE 0x00000001 2053 #define LOAD_OPTION_FORCE_RECONNECT 0x00000002 2054 #define LOAD_OPTION_HIDDEN 0x00000008 2055 #define LOAD_OPTION_CATEGORY 0x00001F00 2056 2057 #define LOAD_OPTION_CATEGORY_BOOT 0x00000000 2058 #define LOAD_OPTION_CATEGORY_APP 0x00000100 2059 2060 #define EFI_BOOT_OPTION_SUPPORT_KEY 0x00000001 2061 #define EFI_BOOT_OPTION_SUPPORT_APP 0x00000002 2062 #define EFI_BOOT_OPTION_SUPPORT_COUNT 0x00000300 2110 #define LOAD_OPTION_ACTIVE 0x00000001 2111 #define LOAD_OPTION_FORCE_RECONNECT 0x00000002 2112 #define LOAD_OPTION_HIDDEN 0x00000008 2113 #define LOAD_OPTION_CATEGORY 0x00001F00 2114 2115 #define LOAD_OPTION_CATEGORY_BOOT 0x00000000 2116 #define LOAD_OPTION_CATEGORY_APP 0x00000100 2117 2118 #define EFI_BOOT_OPTION_SUPPORT_KEY 0x00000001 2119 #define EFI_BOOT_OPTION_SUPPORT_APP 0x00000002 2120 #define EFI_BOOT_OPTION_SUPPORT_SYSPREP 0x00000010 2121 #define EFI_BOOT_OPTION_SUPPORT_COUNT 0x00000300 2063 2122 2064 2123 ///
Note:
See TracChangeset
for help on using the changeset viewer.