blob: 63844dbb0ccaeba40ed24ac1dc2ed206c89b3fc5 [file] [log] [blame]
Vadim Bendeburyb86371b2015-05-27 18:16:19 -07001/*
2 * Copyright 2015 The Chromium OS Authors. All rights reserved.
3 * Use of this source code is governed by a BSD-style license that can be
4 * found in the LICENSE file.
5 */
6
7#ifndef __TPM2_NV_FP_H
8#define __TPM2_NV_FP_H
9
Vadim Bendebury0d658a02015-05-29 22:55:38 -070010TPM_RC NvAddEvictObject(
11 TPMI_DH_OBJECT evictHandle, // IN: new evict handle
12 OBJECT *object // IN: object to be added
13 );
Vadim Bendebury6c73a9e2015-05-31 16:06:18 -070014UINT32 NvCapGetPersistentNumber(
15 void
16 );
Vadim Bendeburyda725062015-05-31 14:41:18 -070017void NvCheckState(void);
18BOOL NvCommit(
19 void
20 );
Vadim Bendebury76970b12015-05-31 18:40:37 -070021TPM_RC NvDefineIndex(
22 TPMS_NV_PUBLIC *publicArea, // IN: A template for an area to create.
23 TPM2B_AUTH *authValue // IN: The initial authorization value
24 );
Vadim Bendebury0d658a02015-05-29 22:55:38 -070025void NvDeleteEntity(
26 TPM_HANDLE handle // IN: handle of entity to be deleted
27 );
Vadim Bendebury59727bd2015-05-28 14:58:08 -070028void NvFlushHierarchy(
29 TPMI_RH_HIERARCHY hierarchy // IN: hierarchy to be flushed.
30);
Vadim Bendebury5f320632015-06-01 10:20:42 -070031TPM_RC NvGetEvictObject(
32 TPM_HANDLE handle, // IN: handle
33 OBJECT *object // OUT: object data
34 );
Vadim Bendeburyd3028492015-05-31 18:15:44 -070035void NvGetIndexData(
36 TPMI_RH_NV_INDEX handle, // IN: handle
37 NV_INDEX *nvIndex, // IN: RAM image of index header
38 UINT32 offset, // IN: offset of NV data
39 UINT16 size, // IN: size of NV data
40 void *data // OUT: data buffer
41 );
Vadim Bendebury889ec832015-05-26 17:11:06 -070042void NvGetIndexInfo(
43 TPMI_RH_NV_INDEX handle, // IN: handle
44 NV_INDEX *nvIndex // OUT: NV index structure
45 );
Vadim Bendebury6c73a9e2015-05-31 16:06:18 -070046void NvGetIntIndexData(
47 TPMI_RH_NV_INDEX handle, // IN: handle
48 NV_INDEX *nvIndex, // IN: RAM image of NV Index header
49 UINT64 *data // IN: UINT64 pointer for counter or bit
50 );
Vadim Bendebury889ec832015-05-26 17:11:06 -070051UINT16 NvGetName(
52 TPMI_RH_NV_INDEX handle, // IN: handle of the index
53 NAME *name // OUT: name of the index
54 );
Vadim Bendeburybbd79002015-05-31 14:44:07 -070055TPMI_YES_NO NvCapGetIndex(
56 TPMI_DH_OBJECT handle, // IN: start handle
57 UINT32 count, // IN: maximum number of returned handle
58 TPML_HANDLE *handleList // OUT: list of handle
59);
60TPMI_YES_NO NvCapGetPersistent(
61 TPMI_DH_OBJECT handle, // IN: start handle
62 UINT32 count, // IN: maximum number of returned handle
63 TPML_HANDLE *handleList // OUT: list of handle
64);
Vadim Bendebury889ec832015-05-26 17:11:06 -070065TPM_RC NvIndexIsAccessible(
66 TPMI_RH_NV_INDEX handle, // IN: handle
67 TPM_CC commandCode // IN: the command
68 );
Vadim Bendebury62f9d012015-05-31 15:54:32 -070069void NvInit(
70 void
71 );
Vadim Bendebury483dcb82015-05-31 18:56:26 -070072UINT64 NvInitialCounter(
73 void
74 );
Vadim Bendeburyb86371b2015-05-27 18:16:19 -070075TPM_RC NvIsAvailable(
76 void
77);
Vadim Bendebury0d658a02015-05-29 22:55:38 -070078BOOL NvIsOwnerPersistentHandle(
79 TPM_HANDLE handle // IN: handle
80 );
81BOOL NvIsPlatformPersistentHandle(
82 TPM_HANDLE handle // IN: handle
83 );
Vadim Bendebury76970b12015-05-31 18:40:37 -070084BOOL NvIsUndefinedIndex(
85 TPMI_RH_NV_INDEX handle // IN: handle
86 );
Vadim Bendeburyc2e73a62015-05-31 18:50:44 -070087void NvSetGlobalLock(
88 void
89 );
Vadim Bendebury6c73a9e2015-05-31 16:06:18 -070090TPM_RC NvWriteIndexData(
91 TPMI_RH_NV_INDEX handle, // IN: handle
92 NV_INDEX *nvIndex, // IN: RAM copy of NV Index
93 UINT32 offset, // IN: offset of NV data
94 UINT32 size, // IN: size of NV data
95 void *data // OUT: data buffer
96 );
Vadim Bendebury779600f2015-05-31 18:24:59 -070097TPM_RC NvWriteIndexInfo(
98 TPMI_RH_NV_INDEX handle, // IN: handle
99 NV_INDEX *nvIndex // IN: NV Index info to be written
100 );
Vadim Bendebury59727bd2015-05-28 14:58:08 -0700101void NvWriteReserved(
Vadim Bendeburyda725062015-05-31 14:41:18 -0700102 NV_RESERVE type, // IN: type of reserved data
Vadim Bendebury59727bd2015-05-28 14:58:08 -0700103 void *buffer // IN: data buffer
104 );
Vadim Bendeburyda725062015-05-31 14:41:18 -0700105
Vadim Bendeburyb86371b2015-05-27 18:16:19 -0700106#endif // __TPM2_NV_FP_H