summaryrefslogtreecommitdiff
path: root/Core/EM/HddSecurity/Hddpassword/HddPassword.h
blob: ccfdffbdc24cb7de4b5264251030f51c1b2fe35a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
//****************************************************************************
//****************************************************************************
//**                                                                        **
//**             (C)Copyright 1985-2014, American Megatrends, Inc.          **
//**                                                                        **
//**                          All Rights Reserved.                          **
//**                                                                        **
//**                 5555 Oakbrook Pkwy, Norcross, GA 30093                 **
//**                                                                        **
//**                          Phone (770)-246-8600                          **
//**                                                                        **
//****************************************************************************
//****************************************************************************
// $Header: /Alaska/SOURCE/Modules/HddSecurity/HddPassword/HddPassword.h 11    9/10/14 2:59a Divyac $
//
// $Revision: 11 $
//
// $Date: 9/10/14 2:59a $
//
//*****************************************************************************
// Revision History
// ----------------
// $Log: /Alaska/SOURCE/Modules/HddSecurity/HddPassword/HddPassword.h $
// 
// 11    9/10/14 2:59a Divyac
// [TAG]  		EIP181548 
// [Category]  	Improvement
// [Description]  	Implement event signaling during HDD Passwords Prompt.
// [Files]  		HddPassword.c
// HddPassword.h
// 
// 10    4/29/13 2:30a Kapilporwal
// fixing build errors, when tse soruce is not present, from last check-in
// 
// 9     4/25/13 9:28a Kapilporwal
// [TAG]  		EIP108583
// [Category]  	New Feature
// [Description]  	support set HDD password in same page
// [Files]  		IdeSecurity.cif, IdeSecurity.mak, IdeSecurity.sdl,
// IdeSecurity.uni, IdeSecurityCommon.sd, IdeSecuritySetup.c,
// HddPassword.c, HddPassword.h, HddPassword.mak, HddPassword.sdl
// 
// 8     6/28/11 6:24a Anandv
// [TAG]  		EIP62381
// [Category]  	Improvement
// [Description]  	In IdeSecurity Module, display HDD number in Setup
// based 
//                                on results from WhichIde() function of
// DiskInfo Protocol.
// 
// [Files]  		HddPassword.c, HddPassword.h, SBDxe.c, PIDEController.h
// 
// 7     5/21/10 2:58p Aaronp
// Fix for EIP 38473 - Device names are not displayed when built in UEFI
// 2.1 mode
// 
// 6     3/11/10 3:50a Rameshr
// Issue: Same Structure definied in Hddpassword and Amitse.
// Solution: Amitse created tsecommon.h with all the common definition.
// EIP: 27339
// 
// 5     1/15/10 10:11a Yul
// Coding Standard
//
// 4     9/28/09 4:59p Rameshr
//
// 3     9/21/09 3:48p Rameshr
// The data structure AMI_IFR_MSGBOX in HddPassword.h and MessageBox.h are
// not the same
// EIP 27157
//
// 2     7/27/09 5:37p Pats
// EIP 22925: Request to set HDD password length by token.
// Solution: Token added to IdeSecurity.sdl, and definition removed from
// HddPassword.h
//
// 1     5/01/09 11:09a Rameshr
// Initial Check-in
//*****************************************************************************//

//<AMI_FHDR_START>
//---------------------------------------------------------------------------
//
// Name: HddPassword.h
//
// Description:	Header file for the HddPassword
//
//---------------------------------------------------------------------------
//<AMI_FHDR_END>

#ifndef _IDEPASSWORD_H_
#define _IDEPASSWORD_H_

#include "AmiStatusCodes.h"

#define IDE_SECURITY_INTERFACE_GUID \
    { 0xF4F63529, 0x281E, 0x4040, 0xA3, 0x13, 0xC1, 0xD6, 0x76, 0x63, 0x84,\
      0xBE }

#define HDD_SECURITY_END_PROTOCOL_GUID \
    { 0xad77ae29, 0x4c20, 0x4fdd, 0x85, 0x04, 0x81, 0x76, 0x61, 0x9b, 0x67,\
      0x6a }

#define HDD_UNLOCKED_GUID \
    { 0x1fd29be6, 0x70d0, 0x42a4, 0xa6, 0xe7, 0xe5, 0xd1, 0xe, 0x6a, 0xc3, 0x76};

#define HDD_PASSWORD_PROMPT_ENTER_GUID \
    { 0x8e8d584a, 0x6e32, 0x44bf, { 0xb9, 0x6e, 0x1d, 0x27, 0x7, 0xc4, 0xeb, 0x5c } }

#define HDD_PASSWORD_PROMPT_EXIT_GUID \
    { 0xe22af903, 0xfd6f, 0x4d22, { 0x94, 0xce, 0xf8, 0x49, 0xc6, 0x14, 0xc3, 0x45 } }

#define     SECURITY_SET_PASSWORD           0xF1
#define     SECURITY_UNLOCK                 0xF2
#define     SECURITY_ERASE_PREPARE          0xF3
#define     SECURITY_ERASE_UNIT             0xF4
#define     SECURITY_FREEZE_LOCK            0xF5
#define     SECURITY_DISABLE_PASSWORD       0xF6
#define     SECURITY_BUFFER_LENGTH          512     // Bytes

#define     SecuritySupportedMask       0x0001
#define     SecurityEnabledMask         0x0002
#define     SecurityLockedMask          0x0004
#define     SecurityFrozenMask          0x0008


#ifndef AMI_DXE_BS_EC_INVALID_IDE_PASSWORD
  #define AMI_DXE_BS_EC_INVALID_IDE_PASSWORD (AMI_STATUS_CODE_CLASS\
                                              | 0x00000005)
#endif

#ifndef DXE_INVALID_IDE_PASSWORD
  #define DXE_INVALID_IDE_PASSWORD (EFI_SOFTWARE_DXE_BS_DRIVER\
                                    | AMI_DXE_BS_EC_INVALID_IDE_PASSWORD)
#endif

#define NG_SIZE                     19
#define VARIABLE_ID_AMITSESETUP     5
#if !defined(SECUITY_SETUP_ON_SAME_PAGE) || SECUITY_SETUP_ON_SAME_PAGE == 0
#define INVALID_HANDLE  ((VOID*)-1)
#endif
#include "tsecommon.h"

#define EFI_DP_TYPE_MASK                    0x7F
#define EFI_DP_TYPE_UNPACKED                0x80
#if !defined(SECUITY_SETUP_ON_SAME_PAGE) || SECUITY_SETUP_ON_SAME_PAGE == 0
#define END_DEVICE_PATH_TYPE                0x7f
#define END_ENTIRE_DEVICE_PATH_SUBTYPE      0xff

#define DevicePathType( a )           (((a)->Type) & EFI_DP_TYPE_MASK)
#define DevicePathSubType( a )        ((a)->SubType)
#define DevicePathNodeLength( a )     (((a)->Length[0]) | ((a)->Length[1] << 8))
#define NextDevicePathNode( a )       ((EFI_DEVICE_PATH_PROTOCOL*) (((UINT8*) (\
                                                                         a))\
                                                                    +\
                                                                    DevicePathNodeLength( a )))
#define IsDevicePathEndType( a )      (\
                                                                    DevicePathType( \
            a ) == END_DEVICE_PATH_TYPE)
#define IsDevicePathEndSubType( a )   ((a)->SubType ==\
                                       END_ENTIRE_DEVICE_PATH_SUBTYPE)
#define IsDevicePathEnd( a )          (IsDevicePathEndType( a )\
                                       && IsDevicePathEndSubType( a ))
VOID
HddSecuritySignalProtocolEvent (
    IN  EFI_GUID    *ProtocolGuid
);

#endif

#endif /* _PASSWORD_H_ */

//****************************************************************************
//****************************************************************************
//**                                                                        **
//**             (C)Copyright 1985-2014, American Megatrends, Inc.          **
//**                                                                        **
//**                          All Rights Reserved.                          **
//**                                                                        **
//**                 5555 Oakbrook Pkwy, Norcross, GA 30093                 **
//**                                                                        **
//**                          Phone (770)-246-8600                          **
//**                                                                        **
//****************************************************************************
//****************************************************************************