IN OUT LIST_ENTRY *ListHead\r
);\r
\r
+/**\r
+ \r
+ Passes capsules to the firmware with both virtual and physical mapping. \r
+ Depending on the intended consumption, the firmware may\r
+ process the capsule immediately. If the payload should persist across a\r
+ system reset, the reset value returned from EFI_QueryCapsuleCapabilities must\r
+ be passed into ResetSystem() and will cause the capsule to be processed by \r
+ the firmware as part of the reset process.\r
+ \r
+ @param CapsuleHeaderArray Virtual pointer to an array of virtual pointers to the capsules\r
+ being passed into update capsule. Each capsules is assumed to\r
+ stored in contiguous virtual memory. The capsules in the\r
+ CapsuleHeaderArray must be the same capsules as the\r
+ ScatterGatherList. The CapsuleHeaderArray must\r
+ have the capsules in the same order as the ScatterGatherList.\r
+ @param CapsuleCount Number of pointers to EFI_CAPSULE_HEADER in\r
+ CaspuleHeaderArray.\r
+ @param ScatterGatherList Physical pointer to a set of\r
+ EFI_CAPSULE_BLOCK_DESCRIPTOR that describes the\r
+ location in physical memory of a set of capsules. See Related\r
+ Definitions for an explanation of how more than one capsule is\r
+ passed via this interface. The capsules in the\r
+ ScatterGatherList must be in the same order as the\r
+ CapsuleHeaderArray. This parameter is only referenced if\r
+ the capsules are defined to persist across system reset.\r
+\r
+ @retval EFI_SUCCESS Valid capsule was passed. I Valid capsule was passed. If\r
+ CAPSULE_FLAGS_PERSIT_ACROSS_RESET is not set, the\r
+ capsule has been successfully processed by the firmware.\r
+ @retval EFI_INVALID_PARAMETER CapsuleSize is NULL or ResetTye is NULL.\r
+ @retval EFI_DEVICE_ERROR The capsule update was started, but failed due to a device error.\r
\r
+**/\r
EFI_STATUS\r
EFIAPI\r
EfiUpdateCapsule (\r
);\r
\r
\r
+/**\r
+ \r
+ The QueryCapsuleCapabilities() function allows a caller to test to see if a capsule or\r
+ capsules can be updated via UpdateCapsule(). The Flags values in the capsule header and\r
+ size of the entire capsule is checked.\r
+ If the caller needs to query for generic capsule capability a fake EFI_CAPSULE_HEADER can be\r
+ constructed where CapsuleImageSize is equal to HeaderSize that is equal to sizeof\r
+ (EFI_CAPSULE_HEADER). To determine reset requirements,\r
+ CAPSULE_FLAGS_PERSIST_ACROSS_RESET should be set in the Flags field of the\r
+ EFI_CAPSULE_HEADER.\r
+ The firmware must support any capsule that has the\r
+ CAPSULE_FLAGS_PERSIST_ACROSS_RESET flag set in EFI_CAPSULE_HEADER. The\r
+ firmware sets the policy for what capsules are supported that do not have the\r
+ CAPSULE_FLAGS_PERSIST_ACROSS_RESET flag set.\r
+ \r
+ @param CapsuleHeaderArray Virtual pointer to an array of virtual pointers to the capsules\r
+ being passed into update capsule. The capsules are assumed to\r
+ stored in contiguous virtual memory.\r
+ @param CapsuleCount Number of pointers to EFI_CAPSULE_HEADER in\r
+ CaspuleHeaderArray.\r
+ @param MaxiumCapsuleSize On output the maximum size that UpdateCapsule() can\r
+ support as an argument to UpdateCapsule() via\r
+ CapsuleHeaderArray and ScatterGatherList.\r
+ Undefined on input.\r
+ @param ResetType Returns the type of reset required for the capsule update.\r
+\r
+ @retval EFI_SUCCESS Valid answer returned..\r
+ @retval EFI_INVALID_PARAMETER MaximumCapsuleSize is NULL.\r
+ @retval EFI_UNSUPPORTED The capsule type is not supported on this platform, and\r
+ MaximumCapsuleSize and ResetType are undefined.\r
+\r
+**/\r
EFI_STATUS\r
EFIAPI\r
EfiQueryCapsuleCapabilities (\r
OUT EFI_RESET_TYPE *ResetType\r
);\r
\r
+\r
+/**\r
+ \r
+ The QueryVariableInfo() function allows a caller to obtain the information about the\r
+ maximum size of the storage space available for the EFI variables, the remaining size of the storage\r
+ space available for the EFI variables and the maximum size of each individual EFI variable,\r
+ associated with the attributes specified.\r
+ The returned MaximumVariableStorageSize, RemainingVariableStorageSize,\r
+ MaximumVariableSize information may change immediately after the call based on other\r
+ runtime activities including asynchronous error events. Also, these values associated with different\r
+ attributes are not additive in nature.\r
+ \r
+ @param Attributes Attributes bitmask to specify the type of variables on\r
+ which to return information. Refer to the\r
+ GetVariable() function description.\r
+ @param MaximumVariableStorageSize \r
+ On output the maximum size of the storage space\r
+ available for the EFI variables associated with the\r
+ attributes specified.\r
+ @param RemainingVariableStorageSize \r
+ Returns the remaining size of the storage space\r
+ available for the EFI variables associated with the\r
+ attributes specified..\r
+ @param MaximumVariableSize Returns the maximum size of the individual EFI\r
+ variables associated with the attributes specified.\r
+\r
+ @retval EFI_SUCCESS Valid answer returned.\r
+ @retval EFI_INVALID_PARAMETER An invalid combination of attribute bits was supplied.\r
+ @retval EFI_UNSUPPORTED EFI_UNSUPPORTED The attribute is not supported on this platform, and the\r
+ MaximumVariableStorageSize,\r
+ RemainingVariableStorageSize, MaximumVariableSize\r
+ are undefined.\r
+**/\r
EFI_STATUS\r
EFIAPI\r
EfiQueryVariableInfo (\r
);\r
\r
#endif\r
+\r