blob: f8ecef4a481444d3dfe33b2513ae87655beb6972 [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 Bendeburyd3028492015-05-31 18:15:44 -070031void NvGetIndexData(
32 TPMI_RH_NV_INDEX handle, // IN: handle
33 NV_INDEX *nvIndex, // IN: RAM image of index header
34 UINT32 offset, // IN: offset of NV data
35 UINT16 size, // IN: size of NV data
36 void *data // OUT: data buffer
37 );
Vadim Bendebury889ec832015-05-26 17:11:06 -070038void NvGetIndexInfo(
39 TPMI_RH_NV_INDEX handle, // IN: handle
40 NV_INDEX *nvIndex // OUT: NV index structure
41 );
Vadim Bendebury6c73a9e2015-05-31 16:06:18 -070042void NvGetIntIndexData(
43 TPMI_RH_NV_INDEX handle, // IN: handle
44 NV_INDEX *nvIndex, // IN: RAM image of NV Index header
45 UINT64 *data // IN: UINT64 pointer for counter or bit
46 );
Vadim Bendebury889ec832015-05-26 17:11:06 -070047UINT16 NvGetName(
48 TPMI_RH_NV_INDEX handle, // IN: handle of the index
49 NAME *name // OUT: name of the index
50 );
Vadim Bendeburybbd79002015-05-31 14:44:07 -070051TPMI_YES_NO NvCapGetIndex(
52 TPMI_DH_OBJECT handle, // IN: start handle
53 UINT32 count, // IN: maximum number of returned handle
54 TPML_HANDLE *handleList // OUT: list of handle
55);
56TPMI_YES_NO NvCapGetPersistent(
57 TPMI_DH_OBJECT handle, // IN: start handle
58 UINT32 count, // IN: maximum number of returned handle
59 TPML_HANDLE *handleList // OUT: list of handle
60);
Vadim Bendebury889ec832015-05-26 17:11:06 -070061TPM_RC NvIndexIsAccessible(
62 TPMI_RH_NV_INDEX handle, // IN: handle
63 TPM_CC commandCode // IN: the command
64 );
Vadim Bendebury62f9d012015-05-31 15:54:32 -070065void NvInit(
66 void
67 );
Vadim Bendebury483dcb82015-05-31 18:56:26 -070068UINT64 NvInitialCounter(
69 void
70 );
Vadim Bendeburyb86371b2015-05-27 18:16:19 -070071TPM_RC NvIsAvailable(
72 void
73);
Vadim Bendebury0d658a02015-05-29 22:55:38 -070074BOOL NvIsOwnerPersistentHandle(
75 TPM_HANDLE handle // IN: handle
76 );
77BOOL NvIsPlatformPersistentHandle(
78 TPM_HANDLE handle // IN: handle
79 );
Vadim Bendebury76970b12015-05-31 18:40:37 -070080BOOL NvIsUndefinedIndex(
81 TPMI_RH_NV_INDEX handle // IN: handle
82 );
Vadim Bendeburyc2e73a62015-05-31 18:50:44 -070083void NvSetGlobalLock(
84 void
85 );
Vadim Bendebury6c73a9e2015-05-31 16:06:18 -070086TPM_RC NvWriteIndexData(
87 TPMI_RH_NV_INDEX handle, // IN: handle
88 NV_INDEX *nvIndex, // IN: RAM copy of NV Index
89 UINT32 offset, // IN: offset of NV data
90 UINT32 size, // IN: size of NV data
91 void *data // OUT: data buffer
92 );
Vadim Bendebury779600f2015-05-31 18:24:59 -070093TPM_RC NvWriteIndexInfo(
94 TPMI_RH_NV_INDEX handle, // IN: handle
95 NV_INDEX *nvIndex // IN: NV Index info to be written
96 );
Vadim Bendebury59727bd2015-05-28 14:58:08 -070097void NvWriteReserved(
Vadim Bendeburyda725062015-05-31 14:41:18 -070098 NV_RESERVE type, // IN: type of reserved data
Vadim Bendebury59727bd2015-05-28 14:58:08 -070099 void *buffer // IN: data buffer
100 );
Vadim Bendeburyda725062015-05-31 14:41:18 -0700101
Vadim Bendeburyb86371b2015-05-27 18:16:19 -0700102#endif // __TPM2_NV_FP_H