103 lines
2.4 KiB
C
103 lines
2.4 KiB
C
/** @file
|
|
|
|
;******************************************************************************
|
|
;* Copyright (c) 2012, Insyde Software Corp. All Rights Reserved.
|
|
;*
|
|
;* You may not reproduce, distribute, publish, display, perform, modify, adapt,
|
|
;* transmit, broadcast, present, recite, release, license or otherwise exploit
|
|
;* any part of this publication in any form, by any means, without the prior
|
|
;* written permission of Insyde Software Corporation.
|
|
;*
|
|
;******************************************************************************
|
|
*/
|
|
|
|
/*++
|
|
|
|
Module Name:
|
|
|
|
BiosRegionLock.h
|
|
|
|
Abstract:
|
|
|
|
This driver registers event to enable BIOS region protection before boot to OS
|
|
|
|
--*/
|
|
#ifndef _BIOS_REGION_LOCK_H_
|
|
#define _BIOS_REGION_LOCK_H_
|
|
|
|
typedef struct _BIOS_REGION_LOCK_PROTOCOL BIOS_REGION_LOCK_PROTOCOL;
|
|
|
|
// {E687E50B-C98D-4780-A7B0-E4C7C4AF7F69}
|
|
#define BIOS_REGION_LOCK_PROTOCOL_GUID \
|
|
{\
|
|
0xe687e50b, 0xc98d, 0x4780, 0xa7, 0xb0, 0xe4, 0xc7, 0xc4, 0xaf, 0x7f, 0x69\
|
|
}
|
|
|
|
extern EFI_GUID gEfiBiosRegionLockProtocolGuid;
|
|
|
|
typedef enum {
|
|
FVMAIN = 0,
|
|
NV_COMMON_STORE,
|
|
NV_COMMON_STORE_MICROCODE,
|
|
NV_COMMON_STORE_OEM_DMI_STORE,
|
|
NV_COMMON_STORE_RESERVED1,
|
|
NV_COMMON_STORE_NV_BVDT,
|
|
NV_COMMON_STORE_RESERVED2,
|
|
NVSTORAGE,
|
|
NVSTORAGE_NV_VARIABLE_STORE,
|
|
NVSTORAGE_NV_FTW_WORKING,
|
|
NVSTORAGE_NV_FTW_SPARE,
|
|
FV_RECOVERY
|
|
} BIOS_REGION_TYPE;
|
|
|
|
typedef struct {
|
|
UINT32 Base;
|
|
UINT32 Size;
|
|
} BIOS_PROTECT_REGION;
|
|
|
|
typedef
|
|
EFI_STATUS
|
|
(EFIAPI *SET_REGION_BY_TYPE) (
|
|
IN BIOS_REGION_LOCK_PROTOCOL *This,
|
|
IN BIOS_REGION_TYPE Type
|
|
);
|
|
|
|
typedef
|
|
EFI_STATUS
|
|
(EFIAPI *SET_REGION_BY_ADDRESS) (
|
|
IN BIOS_REGION_LOCK_PROTOCOL *This,
|
|
IN UINTN BaseAddress,
|
|
IN UINTN Length
|
|
);
|
|
|
|
typedef
|
|
EFI_STATUS
|
|
(EFIAPI *CLEAR_REGION_BY_TYPE) (
|
|
IN BIOS_REGION_LOCK_PROTOCOL *This,
|
|
IN BIOS_REGION_TYPE Type
|
|
);
|
|
|
|
typedef
|
|
EFI_STATUS
|
|
(EFIAPI *CLEAR_REGION_BY_ADDRESS) (
|
|
IN BIOS_REGION_LOCK_PROTOCOL *This,
|
|
IN UINTN BaseAddress,
|
|
IN UINTN Length
|
|
);
|
|
|
|
typedef
|
|
EFI_STATUS
|
|
(EFIAPI *LOCK) (
|
|
IN BIOS_REGION_LOCK_PROTOCOL *This
|
|
);
|
|
|
|
struct _BIOS_REGION_LOCK_PROTOCOL {
|
|
SET_REGION_BY_TYPE SetRegionByType;
|
|
SET_REGION_BY_ADDRESS SetRegionByAddress;
|
|
CLEAR_REGION_BY_TYPE ClearRegionByType;
|
|
CLEAR_REGION_BY_ADDRESS ClearRegionByAddress;
|
|
LOCK Lock;
|
|
};
|
|
|
|
#endif //_BIOS_REGION_LOCK_H_
|