TianoCore EDK2 master
Loading...
Searching...
No Matches
BmpSupportLib.c File Reference

Go to the source code of this file.

Functions

RETURN_STATUS EFIAPI TranslateBmpToGopBlt (IN VOID *BmpImage, IN UINTN BmpImageSize, IN OUT EFI_GRAPHICS_OUTPUT_BLT_PIXEL **GopBlt, IN OUT UINTN *GopBltSize, OUT UINTN *PixelHeight, OUT UINTN *PixelWidth)
 
RETURN_STATUS EFIAPI TranslateGopBltToBmp (IN EFI_GRAPHICS_OUTPUT_BLT_PIXEL *GopBlt, IN UINT32 PixelHeight, IN UINT32 PixelWidth, IN OUT VOID **BmpImage, IN OUT UINT32 *BmpImageSize)
 

Variables

const BMP_IMAGE_HEADER mBmpImageHeaderTemplate
 

Detailed Description

Provides services to convert a BMP graphics image to a GOP BLT buffer and from a GOP BLT buffer to a BMP graphics image.

Caution: This module requires additional review when modified. This module processes external input - BMP image. This external input must be validated carefully to avoid security issue such as buffer overflow, integer overflow.

TranslateBmpToGopBlt() receives untrusted input and performs basic validation.

Copyright (c) 2016-2017, Microsoft Corporation Copyright (c) 2018, Intel Corporation. All rights reserved.

All rights reserved. SPDX-License-Identifier: BSD-2-Clause-Patent

Definition in file BmpSupportLib.c.

Function Documentation

◆ TranslateBmpToGopBlt()

RETURN_STATUS EFIAPI TranslateBmpToGopBlt ( IN VOID *  BmpImage,
IN UINTN  BmpImageSize,
IN OUT EFI_GRAPHICS_OUTPUT_BLT_PIXEL **  GopBlt,
IN OUT UINTN GopBltSize,
OUT UINTN PixelHeight,
OUT UINTN PixelWidth 
)

Translate a *.BMP graphics image to a GOP blt buffer. If a NULL Blt buffer is passed in a GopBlt buffer will be allocated by this routine using EFI_BOOT_SERVICES.AllocatePool(). If a GopBlt buffer is passed in it will be used if it is big enough.

Parameters
[in]BmpImagePointer to BMP file.
[in]BmpImageSizeNumber of bytes in BmpImage.
[in,out]GopBltBuffer containing GOP version of BmpImage.
[in,out]GopBltSizeSize of GopBlt in bytes.
[out]PixelHeightHeight of GopBlt/BmpImage in pixels.
[out]PixelWidthWidth of GopBlt/BmpImage in pixels.
Return values
RETURN_SUCCESSGopBlt and GopBltSize are returned.
RETURN_INVALID_PARAMETERBmpImage is NULL.
RETURN_INVALID_PARAMETERGopBlt is NULL.
RETURN_INVALID_PARAMETERGopBltSize is NULL.
RETURN_INVALID_PARAMETERPixelHeight is NULL.
RETURN_INVALID_PARAMETERPixelWidth is NULL.
RETURN_UNSUPPORTEDBmpImage is not a valid *.BMP image.
RETURN_BUFFER_TOO_SMALLThe passed in GopBlt buffer is not big enough. The required size is returned in GopBltSize.
RETURN_OUT_OF_RESOURCESThe GopBlt buffer could not be allocated.

Definition at line 80 of file BmpSupportLib.c.

◆ TranslateGopBltToBmp()

RETURN_STATUS EFIAPI TranslateGopBltToBmp ( IN EFI_GRAPHICS_OUTPUT_BLT_PIXEL GopBlt,
IN UINT32  PixelHeight,
IN UINT32  PixelWidth,
IN OUT VOID **  BmpImage,
IN OUT UINT32 *  BmpImageSize 
)

Translate a GOP blt buffer to an uncompressed 24-bit per pixel BMP graphics image. If a NULL BmpImage is passed in a BmpImage buffer will be allocated by this routine using EFI_BOOT_SERVICES.AllocatePool(). If a BmpImage buffer is passed in it will be used if it is big enough.

Parameters
[in]GopBltPointer to GOP blt buffer.
[in]PixelHeightHeight of GopBlt/BmpImage in pixels.
[in]PixelWidthWidth of GopBlt/BmpImage in pixels.
[in,out]BmpImageBuffer containing BMP version of GopBlt.
[in,out]BmpImageSizeSize of BmpImage in bytes.
Return values
RETURN_SUCCESSBmpImage and BmpImageSize are returned.
RETURN_INVALID_PARAMETERGopBlt is NULL.
RETURN_INVALID_PARAMETERBmpImage is NULL.
RETURN_INVALID_PARAMETERBmpImageSize is NULL.
RETURN_UNSUPPORTEDGopBlt cannot be converted to a *.BMP image.
RETURN_BUFFER_TOO_SMALLThe passed in BmpImage buffer is not big enough. The required size is returned in BmpImageSize.
RETURN_OUT_OF_RESOURCESThe BmpImage buffer could not be allocated.

Definition at line 461 of file BmpSupportLib.c.

Variable Documentation

◆ mBmpImageHeaderTemplate

const BMP_IMAGE_HEADER mBmpImageHeaderTemplate
Initial value:
= {
'B',
'M',
0,
{ 0, 0 },
sizeof (BMP_IMAGE_HEADER),
sizeof (BMP_IMAGE_HEADER) - OFFSET_OF (BMP_IMAGE_HEADER, HeaderSize),
0,
0,
1,
24,
0,
0,
0,
0,
0,
0
}
#define OFFSET_OF(TYPE, Field)
Definition: Base.h:758

Definition at line 33 of file BmpSupportLib.c.