CloverBootloader/Include/Library/VideoBiosPatchLib.h
jief666 7babc6fe9b Do not use OC quirks struct anymore in settings.
Fix Disabled property in Smbios/Block config.
Move flagstate in GlobalConfig.
Remove gSettings.Smbios.REV, ECPI, RBr and RPlt.
Create getRBr() and getRPlt().
Operator == and isEqual in XArray, XObjArray, SETTINGS_DATA.
Rename equal to isEqual in XString and XStringArray.
Operator == in INPUT_ITEM, undefinable, ABSTRACT_PATCH (and derived) and
RAM_SLOT_INFO class.
Clean b64cdecode.h.
2021-04-11 08:18:52 +03:00

86 lines
1.7 KiB
C

/** @file
Functions for video bios patches.
**/
#ifndef __VIDEO_BIOS_PATCH_LIB_H__
#define __VIDEO_BIOS_PATCH_LIB_H__
/**
Set of Search & replace bytes for VideoBiosPatchBytes().
**/
typedef struct _VBIOS_PATCH_BYTES {
JCONST VOID *Find;
JCONST VOID *Replace;
UINTN NumberOfBytes;
} VBIOS_PATCH_BYTES;
/**
Unlocks video bios area for writing.
@retval EFI_SUCCESS If area is unlocked.
@retval other In case of error.
**/
EFI_STATUS
EFIAPI
VideoBiosUnlock (
VOID
);
/**
Locks video bios area for writing.
@retval EFI_SUCCESS If area is locked.
@retval other In case of error.
**/
EFI_STATUS
EFIAPI
VideoBiosLock (
VOID
);
/**
Performs mutltiple Find&Replace operations on the video bios memory.
@param FindAndReplace Pointer to array of VBIOS_PATCH_BYTES.
@param FindAndReplaceCount Number of VBIOS_PATCH_BYTES elements in a FindAndReplace array.
@retval EFI_SUCCESS If no error occured.
@retval other In case of error.
**/
EFI_STATUS
EFIAPI
VideoBiosPatchBytes (
IN JCONST VBIOS_PATCH_BYTES *FindAndReplace,
IN UINTN FindAndReplaceCount
);
/**
Determines "native" resolution from Edid detail timing descriptor
and patches first video mode with that timing/resolution info.
@param Edid Edid to use. If NULL, then Edid will be read from EFI_EDID_ACTIVE_PROTOCOL
@retval EFI_SUCCESS If no error occured.
@retval other In case of error.
**/
EFI_STATUS
EFIAPI
VideoBiosPatchNativeFromEdid (
IN UINT8 *Edid OPTIONAL
);
#endif // __VIDEO_BIOS_PATCH_LIB_H__