alder_lake_bios/Lcfc/LfcPkg/BiosWmiSmm/BiosWmiSmm.h

109 lines
3.0 KiB
C

//*****************************************************************************
//
//
// Copyright (c) 2012 - 2015, Hefei LCFC Information Technology Co.Ltd.
// And/or its affiliates. All rights reserved.
// Hefei LCFC Information Technology Co.Ltd. PROPRIETARY/CONFIDENTIAL.
// Use is subject to license terms.
//
//******************************************************************************
/*++
Abstract:
This driver is used BIOS WMI feature, it will public BIOS WMI SSDT table, register
software SMI handler for dealing with the request by APP.
History:
Date Name Version Change Notes
2015.12.7 Steven Wang v1.00 Initial release
Module Name:
BiosWmiSmm.h
--*/
#ifndef __BIOS_WMI_SMM_H__
#define __BIOS_WMI_SMM_H__
#include <PiDxe.h>
#include <IndustryStandard/Acpi.h>
#include <Protocol/SmmSwDispatch2.h>
#include <Protocol/AcpiTable.h>
#include <Protocol/SmmVariable.h>
#include <Library/BaseLib.h>
#include <Library/BaseMemoryLib.h>
#include <Library/DebugLib.h>
#include <Library/SmmServicesTableLib.h>
#include <Library/UefiDriverEntryPoint.h>
#include <Library/UefiBootServicesTableLib.h>
#include <Library/DxeServicesLib.h>
#include <Library/VariableLib.h>
#include <SetupConfig.h>
#include <Protocol/SysPasswordService.h>
#include <Protocol/LenovoVariable.h>
#include <Library/MemoryAllocationLib.h>
#include <Guid/GlobalVariable.h>
#include <Library/PrintLib.h>
#include <Library/UefiRuntimeServicesTableLib.h>
#include <Library/UefiLib.h>
#include <Uefi/UefiSpec.h>
#include "BiosWmiDefine.h"
#define SYS_SUPERVISOR_PASSWORD_LOCK BIT0
#define SYS_USER_PASSWORD_LOCK BIT1
#define HDD_MASTER_PASSWORD_LOCK BIT2
#define HDD_USER_PASSWORD_LOCK BIT3
#pragma pack(1)
typedef struct {
UINT8 Password[34];
UINT8 CurrentPassword[34];
UINT8 NewPassword[34];
UINT8 PasswordType;
UINT8 PasswordIndicator;
UINT8 EncodeTypeForSave;
UINT8 EncodeTypeForCheck;
UINT8 AsciiLang;
UINT8 ScuItem[25];
UINT8 ScuValue;
UINT8 TempValue;
UINT8 SettingFlag;
UINT8 LoadDefaultFlag;
UINT8 ScuPreviousValue;
UINT32 WmiBootorder;
UINT32 TempWmiBootorder;
UINT32 PreviousWmiBootorder;
UINT8 WmiBootCount;
UINT8 BiosWmiSwSmi;
UINT8 SmiSubNum;
UINT32 ReturnCode;
UINT16 TempValue0;
UINT16 TempValue1;
UINT16 TempValue2;
UINT16 TempValue3;
UINT16 TempValue4;
UINT16 TempValue5;
UINT16 TempValue6;
UINT16 TempValue7;
UINT32 TempValue8;
UINT8 TmpString0[16];
UINT8 TmpString1[16];
} BIOS_WMI_NVS;
typedef struct {
UINT8 OpRegionOp;
UINT32 NameString;
UINT8 RegionSpace;
UINT8 DWordPrefix;
UINT32 RegionOffset;
UINT8 BytePrefix;
UINT8 RegionLen;
} AML_OP_REGION_32_8;
typedef struct {
UINT16 BootOrder;
UINT32 BootType;
} BOOT_OPTION_MAP;
#pragma pack()
#endif // __BIOS_WMI_SMM_H__