VirtualBox

Ignore:
Timestamp:
Mar 12, 2019 12:40:12 PM (6 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
129295
Message:

EFI: First step in UDK2018 merge. Does not build yet.

Location:
trunk/src/VBox/Devices/EFI/FirmwareNew
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/EFI/FirmwareNew

  • trunk/src/VBox/Devices/EFI/FirmwareNew/MdePkg/Include/Uefi/UefiSpec.h

    r58466 r77662  
    22  Include file that supports UEFI.
    33
    4   This include file must contain things defined in the UEFI 2.4 specification.
    5   If a code construct is defined in the UEFI 2.4 specification it must be included
     4  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
    66  by this include file.
    77
    8 Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR>
     8Copyright (c) 2006 - 2017, Intel Corporation. All rights reserved.<BR>
    99This program and the accompanying materials are licensed and made available under
    1010the terms and conditions of the BSD License that accompanies this distribution.
     
    6464// Memory cacheability attributes
    6565//
    66 #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
     66#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
    7171//
    7272// Physical memory protection attributes
    7373//
    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
    7781//
    7882// Physical memory persistence attribute.
    7983// The memory region supports byte-addressable non-volatility.
    8084//
    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
    8291//
    8392// Runtime memory attribute
    8493//
    85 #define EFI_MEMORY_RUNTIME  0x8000000000000000ULL
     94#define EFI_MEMORY_RUNTIME          0x8000000000000000ULL
    8695
    8796///
     
    95104typedef struct {
    96105  ///
    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.
    98109  ///
    99110  UINT32                Type;
    100111  ///
    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
    103115  ///
    104116  EFI_PHYSICAL_ADDRESS  PhysicalStart;
    105117  ///
    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.
    108121  ///
    109122  EFI_VIRTUAL_ADDRESS   VirtualStart;
    110123  ///
    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.
    112128  ///
    113129  UINT64                NumberOfPages;
     
    123139  Allocates memory pages from the system.
    124140
    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.
    130150
    131151  @retval EFI_SUCCESS           The requested pages were allocated.
     
    133153                                AllocateMaxAddress or AllocateAddress.
    134154                                2) MemoryType is in the range
     155                                EfiMaxMemoryType..0x6FFFFFFF.
    135156                                3) Memory is NULL.
    136                                 4) MemoryType was EfiPersistentMemory.
    137                                 EfiMaxMemoryType..0x7FFFFFFF.
     157                                4) MemoryType is EfiPersistentMemory.
    138158  @retval EFI_OUT_OF_RESOURCES  The pages could not be allocated.
    139159  @retval EFI_NOT_FOUND         The requested pages could not be found.
     
    152172  Frees memory pages.
    153173
    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.
    156176
    157177  @retval EFI_SUCCESS           The requested pages were freed.
     
    171191  Returns the current memory map.
    172192
    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 if
    176                                 the buffer was large enough, or the size of the buffer needed to contain
    177                                 the map if the buffer was too small.
    178   @param  MemoryMap             A pointer to the buffer in which firmware places the current memory
    179                                 map.
    180   @param  MapKey                A pointer to the location in which firmware returns the key for the
    181                                 current memory map.
    182   @param  DescriptorSize        A pointer to the location in which firmware returns the size, in bytes, of
    183                                 an individual EFI_MEMORY_DESCRIPTOR.
    184   @param  DescriptorVersion     A pointer to the location in which firmware returns the version number
    185                                 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.
    186206
    187207  @retval EFI_SUCCESS           The memory map was returned in the MemoryMap buffer.
     
    206226  Allocates pool memory.
    207227
    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;
    211235                                undefined otherwise.
    212236
    213237  @retval EFI_SUCCESS           The requested number of bytes was allocated.
    214238  @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.
    217242
    218243**/
     
    228253  Returns pool memory to the system.
    229254
    230   @param  Buffer                The pointer to the buffer to free.
     255  @param[in]  Buffer            The pointer to the buffer to free.
    231256
    232257  @retval EFI_SUCCESS           The memory was returned to the system.
     
    243268  Changes the runtime addressing mode of EFI firmware from physical to virtual.
    244269
    245   @param  MemoryMapSize         The size in bytes of VirtualMap.
    246   @param  DescriptorSize        The size in bytes of an entry in the VirtualMap.
    247   @param  DescriptorVersion    The version of the structure entries in VirtualMap.
    248   @param  VirtualMap            An array of memory descriptors which contain new virtual
     270  @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
    249274                                address mapping information for all runtime ranges.
    250275
     
    271296  Connects one or more drivers to a controller.
    272297
    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 the
    275                                 EFI_DRIVER_BINDING_PROTOCOL.
    276   @param  RemainingDevicePath   A pointer to the device path that specifies a child of the
    277                                 controller specified by ControllerHandle.
    278   @param  Recursive             If TRUE, then ConnectController() is called recursively
    279                                 until the entire tree of controllers below the controller specified
    280                                 by ControllerHandle have been created. If FALSE, then
    281                                 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.
    282307
    283308  @retval EFI_SUCCESS           1) One or more drivers were connected to ControllerHandle.
     
    305330  Disconnects one or more drivers from a controller.
    306331
    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 managing
    310                                 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 are
    313                                 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.
    314339
    315340  @retval EFI_SUCCESS           1) One or more drivers were disconnected from the controller.
     
    344369  Determines the new virtual address that is to be used on subsequent memory accesses.
    345370
    346   @param  DebugDisposition      Supplies type information for the pointer being converted.
    347   @param  Address               A pointer to a pointer that is to be fixed to be the value needed
    348                                 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.
    349374
    350375  @retval EFI_SUCCESS           The pointer pointed to by Address was modified.
     
    388413  Invoke a notification event
    389414
    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.
    393418
    394419**/
     
    403428  Creates an event.
    404429
    405   @param  Type                  The type of event to create and its mode and attributes.
    406   @param  NotifyTpl             The task priority level of event notifications, if needed.
    407   @param  NotifyFunction        The pointer to the event's notification function, if any.
    408   @param  NotifyContext         The pointer to the notification function's context; corresponds to parameter
     430  @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
    409434                                Context in the notification function.
    410   @param  Event                 The pointer to the newly created event if the call succeeds; undefined
     435  @param[out]  Event            The pointer to the newly created event if the call succeeds; undefined
    411436                                otherwise.
    412437
     
    429454  Creates an event in a group.
    430455
    431   @param  Type                  The type of event to create and its mode and attributes.
    432   @param  NotifyTpl             The task priority level of event notifications,if needed.
    433   @param  NotifyFunction        The pointer to the event's notification function, if any.
    434   @param  NotifyContext         The pointer to the notification function's context; corresponds to parameter
     456  @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
    435460                                Context in the notification function.
    436   @param  EventGroup            The 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.
    437462                                If this is NULL, then the function behaves as if the parameters were passed
    438463                                to CreateEvent.
    439   @param  Event                 The pointer to the newly created event if the call succeeds; undefined
     464  @param[out]  Event            The pointer to the newly created event if the call succeeds; undefined
    440465                                otherwise.
    441466
     
    477502  Sets the type of timer and the trigger time for a timer event.
    478503
    479   @param  Event                 The timer event that is to be signaled at the specified time.
    480   @param  Type                  The type of time that is specified in TriggerTime.
    481   @param  TriggerTime           The 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.
    482507                                A TriggerTime of 0 is legal.
    483508                                If Type is TimerRelative and TriggerTime is 0, then the timer
     
    501526  Signals an event.
    502527
    503   @param  Event                 The event to signal.
     528  @param[in]  Event             The event to signal.
    504529
    505530  @retval EFI_SUCCESS           The event has been signaled.
     
    515540  Stops execution until an event is signaled.
    516541
    517   @param  NumberOfEvents        The number of events in the Event array.
    518   @param  Event                 An array of EFI_EVENT.
    519   @param  Index                 The 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.
    520545
    521546  @retval EFI_SUCCESS           The event indicated by Index was signaled.
     
    537562  Closes an event.
    538563
    539   @param  Event                 The event to close.
     564  @param[in]  Event             The event to close.
    540565
    541566  @retval EFI_SUCCESS           The event has been closed.
     
    551576  Checks whether an event is in the signaled state.
    552577
    553   @param  Event                 The event to check.
     578  @param[in]  Event             The event to check.
    554579
    555580  @retval EFI_SUCCESS           The event is in the signaled state.
     
    577602  Raises a task's priority level and returns its previous level.
    578603
    579   @param  NewTpl                The new task priority level.
     604  @param[in]  NewTpl          The new task priority level.
    580605
    581606  @return Previous task priority level
     
    591616  Restores a task's priority level to its previous value.
    592617
    593   @param  OldTpl                The previous task priority level to restore.
     618  @param[in]  OldTpl          The previous task priority level to restore.
    594619
    595620**/
     
    603628  Returns the value of a variable.
    604629
    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.
    613639
    614640  @retval EFI_SUCCESS            The function completed successfully.
     
    630656  OUT    UINT32                      *Attributes,    OPTIONAL
    631657  IN OUT UINTN                       *DataSize,
    632   OUT    VOID                        *Data
     658  OUT    VOID                        *Data           OPTIONAL
    633659  );
    634660
     
    636662  Enumerates the current variable names.
    637663
    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.
    645672
    646673  @retval EFI_SUCCESS           The function completed successfully.
    647674  @retval EFI_NOT_FOUND         The next variable was not found.
    648675  @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.
    649677  @retval EFI_INVALID_PARAMETER VariableNameSize is NULL.
    650678  @retval EFI_INVALID_PARAMETER VariableName is NULL.
    651679  @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.
    652684  @retval EFI_DEVICE_ERROR      The variable could not be retrieved due to a hardware error.
    653685
     
    664696  Sets the value of a variable.
    665697
    666   @param  VariableName           A 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.
    667699                                 Each VariableName is unique for each VendorGuid. VariableName must
    668700                                 contain 1 or more characters. If VariableName is an empty string,
    669701                                 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
    674705                                 EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS attribute is set, a size of zero
    675706                                 causes the variable to be deleted. When the EFI_VARIABLE_APPEND_WRITE attribute is
     
    679710                                 EFI_VARIABLE_AUTHENTICATION_2 descriptor below. In this case the DataSize will not
    680711                                 be zero since the EFI_VARIABLE_AUTHENTICATION_2 descriptor will be populated).
    681   @param  Data                   The contents for the variable.
     712  @param[in]  Data               The contents for the variable.
    682713
    683714  @retval EFI_SUCCESS            The firmware has successfully stored the variable and its data as
     
    690721  @retval EFI_WRITE_PROTECTED    The variable in question is read-only.
    691722  @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.
    695725
    696726  @retval EFI_NOT_FOUND          The variable trying to be updated or deleted was not found.
     
    741771  of the hardware platform.
    742772
    743   @param  Time                  A pointer to storage to receive a snapshot of the current time.
    744   @param  Capabilities          An optional pointer to a buffer to receive the real time clock
     773  @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
    745775                                device's capabilities.
    746776
     
    760790  Sets the current local time and date information.
    761791
    762   @param  Time                  A pointer to the current time.
     792  @param[in]  Time              A pointer to the current time.
    763793
    764794  @retval EFI_SUCCESS           The operation completed successfully.
     
    776806  Returns the current wakeup alarm clock setting.
    777807
    778   @param  Enabled               Indicates if the alarm is currently enabled or disabled.
    779   @param  Pending               Indicates if the alarm signal is pending and requires acknowledgement.
    780   @param  Time                  The 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.
    781811
    782812  @retval EFI_SUCCESS           The alarm settings were returned.
     
    799829  Sets the system wakeup alarm clock time.
    800830
    801   @param  Enabled               Enable or disable the wakeup alarm.
    802   @param  Time                  If 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.
    803833                                If Enable is FALSE, then this parameter is optional, and may be NULL.
    804834
     
    820850  Loads an EFI image into memory.
    821851
    822   @param  BootPolicy            If TRUE, indicates that the request originates from the boot
    823                                 manager, and that the boot manager is attempting to load
    824                                 FilePath as a boot selection. Ignored if SourceBuffer is
    825                                 not NULL.
    826   @param  ParentImageHandle    The caller's image handle.
    827   @param  DevicePath            The DeviceHandle specific file path from which the image is
    828                                 loaded.
    829   @param  SourceBuffer          If not NULL, a pointer to the memory location containing a copy
    830                                 of the image to be loaded.
    831   @param  SourceSize            The size in bytes of SourceBuffer. Ignored if SourceBuffer is NULL.
    832   @param  ImageHandle           The pointer to the returned image handle that is created when the
    833                                 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 not
    841                                 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 the
    844                                 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.
    845875  @retval EFI_SECURITY_VIOLATION Image was loaded and an ImageHandle was created with a
    846                                 valid EFI_LOADED_IMAGE_PROTOCOL. However, the current
    847                                 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.
    848878**/
    849879typedef
     
    861891  Transfers control to a loaded image's entry point.
    862892
    863   @param  ImageHandle           Handle of image to be started.
    864   @param  ExitDataSize          The pointer to the size, in bytes, of ExitData.
    865   @param  ExitData              The pointer to a pointer to a data buffer that includes a Null-terminated
    866                                 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.
    867897
    868898  @retval EFI_INVALID_PARAMETER  ImageHandle is either an invalid image handle or the image
     
    883913  Terminates a loaded EFI image and returns control to boot services.
    884914
    885   @param  ImageHandle           Handle that identifies the image. This parameter is passed to the
     915  @param[in]  ImageHandle       Handle that identifies the image. This parameter is passed to the
    886916                                image on entry.
    887   @param  ExitStatus            The image's exit code.
    888   @param  ExitDataSize          The size, in bytes, of ExitData. Ignored if ExitStatus is EFI_SUCCESS.
    889   @param  ExitData              The 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,
    890920                                optionally followed by additional binary data. The string is a
    891921                                description that the caller may use to further indicate the reason
     
    912942  Unloads an image.
    913943
    914   @param  ImageHandle           Handle that identifies the image to be unloaded.
     944  @param[in]  ImageHandle       Handle that identifies the image to be unloaded.
    915945
    916946  @retval EFI_SUCCESS           The image has been unloaded.
     
    927957  Terminates all boot services.
    928958
    929   @param  ImageHandle           Handle that identifies the exiting image.
    930   @param  MapKey                Key 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.
    931961
    932962  @retval EFI_SUCCESS           Boot services have been terminated.
     
    944974  Induces a fine-grained stall.
    945975
    946   @param  Microseconds          The number of microseconds to stall execution.
     976  @param[in]  Microseconds      The number of microseconds to stall execution.
    947977
    948978  @retval EFI_SUCCESS           Execution was stalled at least the requested number of
     
    959989  Sets the system's watchdog timer.
    960990
    961   @param  Timeout               The number of seconds to set the watchdog timer to.
    962   @param  WatchdogCode          The numeric code to log on a watchdog timer timeout event.
    963   @param  DataSize              The size, in bytes, of WatchdogData.
    964   @param  WatchdogData          A data buffer that includes a Null-terminated string, optionally
     991  @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
    965995                                followed by additional binary data.
    966996
     
    9811011  );
    9821012
    983 ///
    984 /// Enumeration of reset types.
    985 ///
    986 typedef enum {
    987   ///
    988   /// Used to induce a system-wide reset. This sets all circuitry within the
    989   /// system to its initial state.  This type of reset is asynchronous to system
    990   /// operation and operates withgout regard to cycle boundaries.  EfiColdReset
    991   /// is tantamount to a system power cycle.
    992   ///
    993   EfiResetCold,
    994   ///
    995   /// Used to induce a system-wide initialization. The processors are set to their
    996   /// initial state, and pending cycles are not corrupted.  If the system does
    997   /// 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 G3
    1002   /// state.  If the system does not support this reset type, then when the system
    1003   /// 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 by
    1008   /// the EFI_GUID that follows the Null-terminated Unicode string passed into
    1009   /// ResetData. If the platform does not recognize the EFI_GUID in ResetData the
    1010   /// platform must pick a supported reset type to perform. The platform may
    1011   /// optionally log the parameters from any non-normal reset that occurs.
    1012   ///
    1013   EfiResetPlatformSpecific
    1014 } EFI_RESET_TYPE;
    1015 
    10161013/**
    10171014  Resets the entire platform.
    10181015
    1019   @param  ResetType             The type of reset to perform.
    1020   @param  ResetStatus           The status code for the reset.
    1021   @param  DataSize              The size, in bytes, of WatchdogData.
    1022   @param  ResetData             For a ResetType of EfiResetCold, EfiResetWarm, or
     1016  @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
    10231020                                EfiResetShutdown the data buffer starts with a Null-terminated
    10241021                                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.
    10261030**/
    10271031typedef
     
    10371041  Returns a monotonically increasing count for the platform.
    10381042
    1039   @param  Count                 The pointer to returned value.
     1043  @param[out]  Count            The pointer to returned value.
    10401044
    10411045  @retval EFI_SUCCESS           The next monotonic count was returned.
     
    10531057  Returns the next high 32 bits of the platform's monotonic counter.
    10541058
    1055   @param  HighCount             The pointer to returned value.
     1059  @param[out]  HighCount        The pointer to returned value.
    10561060
    10571061  @retval EFI_SUCCESS           The next high monotonic count was returned.
     
    10691073  Computes and returns a 32-bit CRC for a data buffer.
    10701074
    1071   @param  Data                  A pointer to the buffer on which the 32-bit CRC is to be computed.
    1072   @param  DataSize              The number of bytes in the buffer Data.
    1073   @param  Crc32                 The 32-bit CRC that was computed for the data buffer specified by Data
     1075  @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
    10741078                                and DataSize.
    10751079
     
    10921096  Copies the contents of one buffer to another buffer.
    10931097
    1094   @param  Destination           The pointer to the destination buffer of the memory copy.
    1095   @param  Source                The pointer to the source buffer of the memory copy.
    1096   @param  Length                Number 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.
    10971101
    10981102**/
     
    11081112  The SetMem() function fills a buffer with a specified value.
    11091113
    1110   @param  Buffer                The pointer to the buffer to fill.
    1111   @param  Size                  Number of bytes in Buffer to fill.
    1112   @param  Value                 Value 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.
    11131117
    11141118**/
     
    11381142  InstallProtocolInterface()
    11391143
    1140   @param  Handle                A pointer to the EFI_HANDLE on which the interface is to be installed.
    1141   @param  Protocol              The numeric ID of the protocol interface.
    1142   @param  InterfaceType         Indicates whether Interface is supplied in native form.
    1143   @param  Interface             A 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.
    11441148
    11451149  @retval EFI_SUCCESS           The protocol interface was installed.
     
    11631167  Installs one or more protocol interfaces into the boot services environment.
    11641168
    1165   @param  Handle                The 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,
    11661170                                or a pointer to NULL if a new handle is to be allocated.
    11671171  @param  ...                   A variable argument list containing pairs of protocol GUIDs and protocol
     
    11861190  Reinstalls a protocol interface on a device handle.
    11871191
    1188   @param  Handle                Handle on which the interface is to be reinstalled.
    1189   @param  Protocol              The numeric ID of the interface.
    1190   @param  OldInterface          A pointer to the old interface. NULL can be used if a structure is not
     1192  @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
    11911195                                associated with Protocol.
    1192   @param  NewInterface          A pointer to the new interface.
     1196  @param[in]  NewInterface      A pointer to the new interface.
    11931197
    11941198  @retval EFI_SUCCESS           The protocol interface was reinstalled.
     
    12151219  UninstallProtocolInterface().
    12161220
    1217   @param  Handle                The handle on which the interface was installed.
    1218   @param  Protocol              The numeric ID of the interface.
    1219   @param  Interface             A 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.
    12201224
    12211225  @retval EFI_SUCCESS           The interface was removed.
     
    12381242  Removes one or more protocol interfaces into the boot services environment.
    12391243
    1240   @param  Handle                The handle to remove the protocol interfaces from.
     1244  @param[in]  Handle            The handle to remove the protocol interfaces from.
    12411245  @param  ...                   A variable argument list containing pairs of protocol GUIDs and
    12421246                                protocol interfaces.
     
    12561260  Queries a handle to determine if it supports a specified protocol.
    12571261
    1258   @param  Handle                The handle being queried.
    1259   @param  Protocol              The published unique identifier of the protocol.
    1260   @param  Interface             Supplies the address where a pointer to the corresponding Protocol
     1262  @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
    12611265                                Interface is returned.
    12621266
     
    12871291  handle, it opens the protocol on behalf of the calling agent.
    12881292
    1289   @param  Handle                The handle for the protocol interface that is being opened.
    1290   @param  Protocol              The published unique identifier of the protocol.
    1291   @param  Interface             Supplies the address where a pointer to the corresponding Protocol
     1293  @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
    12921296                                Interface is returned.
    1293   @param  AgentHandle           The handle of the agent that is opening the protocol interface
     1297  @param[in]   AgentHandle      The handle of the agent that is opening the protocol interface
    12941298                                specified by Protocol and Interface.
    1295   @param  ControllerHandle      If the agent that is opening a protocol is a driver that follows the
     1299  @param[in]   ControllerHandle If the agent that is opening a protocol is a driver that follows the
    12961300                                UEFI Driver Model, then this parameter is the controller handle
    12971301                                that requires the protocol interface. If the agent does not follow
    12981302                                the UEFI Driver Model, then this parameter is optional and may
    12991303                                be NULL.
    1300   @param  Attributes            The open mode of the protocol interface specified by Handle
     1304  @param[in]   Attributes       The open mode of the protocol interface specified by Handle
    13011305                                and Protocol.
    13021306
     
    13251329  Closes a protocol on a handle that was opened using OpenProtocol().
    13261330
    1327   @param  Handle                The handle for the protocol interface that was previously opened
     1331  @param[in]  Handle            The handle for the protocol interface that was previously opened
    13281332                                with OpenProtocol(), and is now being closed.
    1329   @param  Protocol              The published unique identifier of the protocol.
    1330   @param  AgentHandle           The handle of the agent that is closing the protocol interface.
    1331   @param  ControllerHandle      If the agent that opened a protocol is a driver that follows the
     1333  @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
    13321336                                UEFI Driver Model, then this parameter is the controller handle
    13331337                                that required the protocol interface.
     
    13651369  Retrieves the list of agents that currently have a protocol interface opened.
    13661370
    1367   @param  Handle                The handle for the protocol interface that is being queried.
    1368   @param  Protocol              The published unique identifier of the protocol.
    1369   @param  EntryBuffer           A pointer to a buffer of open protocol information in the form of
     1371  @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
    13701374                                EFI_OPEN_PROTOCOL_INFORMATION_ENTRY structures.
    1371   @param  EntryCount            A pointer to the number of entries in EntryBuffer.
     1375  @param[out]  EntryCount       A pointer to the number of entries in EntryBuffer.
    13721376
    13731377  @retval EFI_SUCCESS           The open protocol information was returned in EntryBuffer, and the
     
    13901394  from pool.
    13911395
    1392   @param  Handle                The handle from which to retrieve the list of protocol interface
    1393                                 GUIDs.
    1394   @param  ProtocolBuffer        A pointer to the list of protocol interface GUID pointers that are
    1395                                 installed on Handle.
    1396   @param  ProtocolBufferCount  A pointer to the number of GUID pointers present in
    1397                                 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.
    13981402
    13991403  @retval EFI_SUCCESS           The list of protocol interface GUIDs installed on Handle was returned in
     
    14181422  Creates an event that is to be signaled whenever an interface is installed for a specified protocol.
    14191423
    1420   @param  Protocol              The numeric ID of the protocol for which the event is to be registered.
    1421   @param  Event                 Event that is to be signaled whenever a protocol interface is registered
     1424  @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
    14221426                                for Protocol.
    1423   @param  Registration          A 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.
    14241428
    14251429  @retval EFI_SUCCESS           The notification event has been registered.
     
    14601464  Returns an array of handles that support a specified protocol.
    14611465
    1462   @param  SearchType            Specifies which handle(s) are to be returned.
    1463   @param  Protocol              Specifies the protocol to search by.
    1464   @param  SearchKey             Specifies the search key.
    1465   @param  BufferSize            On input, the size in bytes of Buffer. On output, the size in bytes of
     1466  @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
    14661470                                the array returned in Buffer (if the buffer was large enough) or the
    14671471                                size, in bytes, of the buffer needed to obtain the array (if the buffer was
    14681472                                not large enough).
    1469   @param  Buffer                The buffer in which the array is returned.
     1473  @param[out]      Buffer       The buffer in which the array is returned.
    14701474
    14711475  @retval EFI_SUCCESS           The array of handles was returned.
     
    14921496  Locates the handle to a device on the device path that supports the specified protocol.
    14931497
    1494   @param  Protocol              Specifies the protocol to search for.
    1495   @param  DevicePath            On input, a pointer to a pointer to the device path. On output, the device
     1498  @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
    14961500                                path pointer is modified to point to the remaining part of the device
    14971501                                path.
    1498   @param  Device                A pointer to the returned device handle.
     1502  @param[out]      Device       A pointer to the returned device handle.
    14991503
    15001504  @retval EFI_SUCCESS           The resulting handle was returned.
     
    15161520  Adds, updates, or removes a configuration table entry from the EFI System Table.
    15171521
    1518   @param  Guid                  A pointer to the GUID for the entry to add, update, or remove.
    1519   @param  Table                 A pointer to the configuration table for the entry to add, update, or
     1522  @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
    15201524                                remove. May be NULL.
    15211525
     
    15361540  Returns an array of handles that support the requested protocol in a buffer allocated from pool.
    15371541
    1538   @param  SearchType            Specifies which handle(s) are to be returned.
    1539   @param  Protocol              Provides 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.
    15401544                                This parameter is only valid for a SearchType of ByProtocol.
    1541   @param  SearchKey             Supplies the search key depending on the SearchType.
    1542   @param  NoHandles             The number of handles returned in Buffer.
    1543   @param  Buffer                A pointer to the buffer to return the requested array of handles that
     1545  @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
    15441548                                support Protocol.
    15451549
     
    15651569  Returns the first protocol instance that matches the given protocol.
    15661570
    1567   @param  Protocol              Provides the protocol to search for.
    1568   @param  Registration          Optional registration key returned from
     1571  @param[in]  Protocol          Provides the protocol to search for.
     1572  @param[in]  Registration      Optional registration key returned from
    15691573                                RegisterProtocolNotify().
    1570   @param  Interface             On return, a pointer to the first interface that matches Protocol and
     1574  @param[out]  Interface        On return, a pointer to the first interface that matches Protocol and
    15711575                                Registration.
    15721576
     
    15761580                                Registration.
    15771581  @retval EFI_INVALID_PARAMETER Interface is NULL.
     1582                                Protocol is NULL.
    15781583
    15791584**/
     
    16631668  part of the reset process.
    16641669
    1665   @param  CapsuleHeaderArray    Virtual pointer to an array of virtual pointers to the capsules
    1666                                 being passed into update capsule.
    1667   @param  CapsuleCount          Number of pointers to EFI_CAPSULE_HEADER in
    1668                                 CaspuleHeaderArray.
    1669   @param  ScatterGatherList     Physical pointer to a set of
    1670                                 EFI_CAPSULE_BLOCK_DESCRIPTOR that describes the
    1671                                 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.
    16721677
    16731678  @retval EFI_SUCCESS           Valid capsule was passed. If
     
    16971702  Returns if the capsule can be supported via UpdateCapsule().
    16981703
    1699   @param  CapsuleHeaderArray    Virtual pointer to an array of virtual pointers to the capsules
    1700                                 being passed into update capsule.
    1701   @param  CapsuleCount          Number of pointers to EFI_CAPSULE_HEADER in
    1702                                 CaspuleHeaderArray.
    1703   @param  MaxiumCapsuleSize     On output the maximum size that UpdateCapsule() can
    1704                                 support as an argument to UpdateCapsule() via
    1705                                 CapsuleHeaderArray and ScatterGatherList.
    1706   @param  ResetType             Returns 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.
    17071712
    17081713  @retval EFI_SUCCESS           Valid answer returned.
     
    17291734  Returns information about the EFI variables.
    17301735
    1731   @param  Attributes                   Attributes bitmask to specify the type of variables on
    1732                                        which to return information.
    1733   @param  MaximumVariableStorageSize   On output the maximum size of the storage space
    1734                                        available for the EFI variables associated with the
    1735                                        attributes specified.
    1736   @param  RemainingVariableStorageSize Returns the remaining size of the storage space
    1737                                        available for the EFI variables associated with the
    1738                                        attributes specified.
    1739   @param  MaximumVariableSize          Returns the maximum size of the individual EFI
    1740                                        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.
    17411746
    17421747  @retval EFI_SUCCESS                  Valid answer returned.
     
    17651770#define EFI_OS_INDICATIONS_FMP_CAPSULE_SUPPORTED            0x0000000000000008
    17661771#define EFI_OS_INDICATIONS_CAPSULE_RESULT_VAR_SUPPORTED     0x0000000000000010
     1772#define EFI_OS_INDICATIONS_START_PLATFORM_RECOVERY          0x0000000000000040
    17671773
    17681774//
     
    17701776//
    17711777#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))
    17721781#define EFI_2_40_SYSTEM_TABLE_REVISION  ((2 << 16) | (40))
    17731782#define EFI_2_31_SYSTEM_TABLE_REVISION  ((2 << 16) | (31))
     
    17781787#define EFI_1_10_SYSTEM_TABLE_REVISION  ((1 << 16) | (10))
    17791788#define EFI_1_02_SYSTEM_TABLE_REVISION  ((1 << 16) | (02))
    1780 #define EFI_SYSTEM_TABLE_REVISION       EFI_2_40_SYSTEM_TABLE_REVISION
     1789#define EFI_SYSTEM_TABLE_REVISION       EFI_2_70_SYSTEM_TABLE_REVISION
    17811790#define EFI_SPECIFICATION_VERSION       EFI_SYSTEM_TABLE_REVISION
    17821791
     
    20342043  both device drivers and bus drivers.
    20352044
    2036   @param  ImageHandle           The firmware allocated handle for the UEFI image.
    2037   @param  SystemTable           A 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.
    20382047
    20392048  @retval EFI_SUCCESS           The operation completed successfully.
     
    20482057
    20492058//
     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)
     2067typedef 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//
    20502108// EFI Load Options Attributes
    20512109//
    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
    20632122
    20642123///
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette