audk/SecurityPkg/Tcg/Opal/OpalPassword/OpalHiiFormValues.h

124 lines
4.6 KiB
C

/** @file
Defines Opal HII form ids, structures and values.
Copyright (c) 2016 - 2018, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
**/
#ifndef _OPAL_HII_FORM_VALUES_H_
#define _OPAL_HII_FORM_VALUES_H_
// ID's for various forms that will be used by HII
#define FORMID_VALUE_MAIN_MENU 0x01
#define FORMID_VALUE_DISK_INFO_FORM_MAIN 0x02
#define OPAL_REQUEST_VARIABLE_NAME L"OpalRequest"
#pragma pack(1)
typedef struct {
UINT16 Lock:1;
UINT16 Unlock:1;
UINT16 SetAdminPwd:1;
UINT16 SetUserPwd:1;
UINT16 SecureErase:1;
UINT16 Revert:1;
UINT16 PsidRevert:1;
UINT16 DisableUser:1;
UINT16 DisableFeature:1;
UINT16 EnableFeature:1;
UINT16 Reserved:5;
UINT16 KeepUserData:1;
} OPAL_REQUEST;
typedef struct {
UINT8 NumDisks;
UINT8 SelectedDiskIndex;
UINT16 SelectedDiskAvailableActions;
UINT16 SupportedDisks;
BOOLEAN KeepUserDataForced;
OPAL_REQUEST OpalRequest;
UINT8 EnableBlockSid;
} OPAL_HII_CONFIGURATION;
typedef struct {
UINT32 Length;
OPAL_REQUEST OpalRequest;
//EFI_DEVICE_PATH_PROTOCOL OpalDevicePath;
} OPAL_REQUEST_VARIABLE;
#pragma pack()
/* Action Flags */
#define HII_ACTION_NONE 0x0000
#define HII_ACTION_LOCK 0x0001
#define HII_ACTION_UNLOCK 0x0002
#define HII_ACTION_SET_ADMIN_PWD 0x0004
#define HII_ACTION_SET_USER_PWD 0x0008
#define HII_ACTION_SECURE_ERASE 0x0010
#define HII_ACTION_REVERT 0x0020
#define HII_ACTION_PSID_REVERT 0x0040
#define HII_ACTION_DISABLE_USER 0x0080
#define HII_ACTION_DISABLE_FEATURE 0x0100
#define HII_ACTION_ENABLE_FEATURE 0x0200
/* Number of bits allocated for each part of a unique key for an HII_ITEM
* all bits together must be <= 16 (EFI_QUESTION_ID is UINT16)
* 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
* | |-----------------------| |---------------------------|
* FLG INDEX ID
*/
#define HII_KEY_ID_BITS 8
#define HII_KEY_INDEX_BITS 7
#define HII_KEY_FLAG_BITS 1
#define HII_KEY_FLAG 0x8000 // bit 15 (zero based)
/***********/
/* Key IDs */
/***********/
#define HII_KEY_ID_GOTO_DISK_INFO 1
#define HII_KEY_ID_VAR_SUPPORTED_DISKS 2
#define HII_KEY_ID_VAR_SELECTED_DISK_AVAILABLE_ACTIONS 3
#define HII_KEY_ID_BLOCKSID 4
#define HII_KEY_ID_SET_ADMIN_PWD 5
#define HII_KEY_ID_SET_USER_PWD 6
#define HII_KEY_ID_SECURE_ERASE 7
#define HII_KEY_ID_REVERT 8
#define HII_KEY_ID_KEEP_USER_DATA 9
#define HII_KEY_ID_PSID_REVERT 0xA
#define HII_KEY_ID_DISABLE_USER 0xB
#define HII_KEY_ID_ENABLE_FEATURE 0xC
#define HII_KEY_ID_MAX 0xC // !!Update each time a new ID is added!!
#define HII_KEY_WITH_INDEX(id, index) \
( \
HII_KEY_FLAG | \
(id) | \
((index) << HII_KEY_ID_BITS) \
)
#define HII_KEY(id) HII_KEY_WITH_INDEX(id, 0)
#define PACKAGE_LIST_GUID { 0xf0308176, 0x9058, 0x4153, { 0x93, 0x3d, 0xda, 0x2f, 0xdc, 0xc8, 0x3e, 0x44 } }
/* {410483CF-F4F9-4ece-848A-1958FD31CEB7} */
#define SETUP_FORMSET_GUID { 0x410483cf, 0xf4f9, 0x4ece, { 0x84, 0x8a, 0x19, 0x58, 0xfd, 0x31, 0xce, 0xb7 } }
// {BBF1ACD2-28D8-44ea-A291-58A237FEDF1A}
#define SETUP_VARIABLE_GUID { 0xbbf1acd2, 0x28d8, 0x44ea, { 0xa2, 0x91, 0x58, 0xa2, 0x37, 0xfe, 0xdf, 0x1a } }
#endif //_HII_FORM_VALUES_H_