+/** @file\r
+ Provides services to display completion progress when processing a\r
+ firmware update that updates the firmware image in a firmware device.\r
+ A platform may provide its own instance of this library class to custoimize\r
+ how a user is informed of completion progress.\r
+\r
+ Copyright (c) 2016, Microsoft Corporation\r
+ Copyright (c) 2018, Intel Corporation. All rights reserved.<BR>\r
+\r
+ All rights reserved.\r
+ Redistribution and use in source and binary forms, with or without\r
+ modification, are permitted provided that the following conditions are met:\r
+ 1. Redistributions of source code must retain the above copyright notice,\r
+ this list of conditions and the following disclaimer.\r
+ 2. Redistributions in binary form must reproduce the above copyright notice,\r
+ this list of conditions and the following disclaimer in the documentation\r
+ and/or other materials provided with the distribution.\r
+\r
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND\r
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\r
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\r
+ IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\r
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,\r
+ BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\r
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\r
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE\r
+ OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF\r
+ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
+\r
+**/\r
+\r
+#ifndef __DISPLAY_PROGRESS_LIB__\r
+#define __DISPLAY_PROGRESS_LIB__\r
+\r
+#include <Protocol/GraphicsOutput.h>\r
+\r
+/**\r
+ Indicates the current completion progress of a firmware update.\r
+\r
+ @param[in] Completion A value between 0 and 100 indicating the current\r
+ completion progress of a firmware update. This\r
+ value must the the same or higher than previous\r
+ calls to this service. The first call of 0 or a\r
+ value of 0 after reaching a value of 100 resets\r
+ the progress indicator to 0.\r
+ @param[in] Color Color of the progress indicator. Only used when\r
+ Completion is 0 to set the color of the progress\r
+ indicator. If Color is NULL, then the default color\r
+ is used.\r
+\r
+ @retval EFI_SUCCESS Progress displayed successfully.\r
+ @retval EFI_INVALID_PARAMETER Completion is not in range 0..100.\r
+ @retval EFI_INVALID_PARAMETER Completion is less than Completion value from\r
+ a previous call to this service.\r
+ @retval EFI_NOT_READY The device used to indicate progress is not\r
+ available.\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+DisplayUpdateProgress (\r
+ IN UINTN Completion,\r
+ IN EFI_GRAPHICS_OUTPUT_BLT_PIXEL_UNION *Color OPTIONAL\r
+ );\r
+\r
+#endif\r