blob: 34ff4b458426b2b482b6397132266adbbc9e5052 [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_MARSHAL_FP_H
8#define __TPM2_MARSHAL_FP_H
9
10UINT16 Common_Marshal(void *source, BYTE **buffer, INT32 *size,
11 UINT16 type_size);
Vadim Bendeburyf788ffb2015-06-05 12:57:27 -070012TPM_RC Common_Unmarshal(void *source, BYTE **buffer, INT32 *size,
13 UINT16 type_size);
Vadim Bendeburyb86371b2015-05-27 18:16:19 -070014
Vadim Bendeburyf788ffb2015-06-05 12:57:27 -070015#define MARSHAL_WRAPPER(name) \
16 static inline UINT16 name##_Marshal(void *x, BYTE **y, INT32 *z) { \
17 return Common_Marshal(x, y, z, sizeof(name)); \
18 } \
19 static inline TPM_RC name##_Unmarshal(void *x, BYTE **y, INT32 *z) { \
20 return Common_Unmarshal(x, y, z, sizeof(name)); \
21 }
Vadim Bendeburyb86371b2015-05-27 18:16:19 -070022
Vadim Bendebury3d5312a2015-06-01 18:19:06 -070023MARSHAL_WRAPPER(SESSION)
24MARSHAL_WRAPPER(TPM2B_AUTH)
Vadim Bendebury3743ac12015-05-29 22:44:14 -070025MARSHAL_WRAPPER(TPM2B_DIGEST)
Vadim Bendeburyfe7bde42015-06-01 10:55:46 -070026MARSHAL_WRAPPER(TPM2B_IV)
Vadim Bendebury3d5312a2015-06-01 18:19:06 -070027MARSHAL_WRAPPER(TPM2B_NONCE)
Vadim Bendebury55567c82015-06-01 14:42:10 -070028MARSHAL_WRAPPER(TPMA_LOCALITY)
Vadim Bendebury3d5312a2015-06-01 18:19:06 -070029MARSHAL_WRAPPER(TPMA_SESSION)
30MARSHAL_WRAPPER(TPMI_SH_AUTH_SESSION)
Vadim Bendeburyda725062015-05-31 14:41:18 -070031MARSHAL_WRAPPER(TPMI_ST_COMMAND_TAG)
Vadim Bendebury1c869872015-06-01 15:41:32 -070032MARSHAL_WRAPPER(TPML_PCR_SELECTION)
Vadim Bendeburyb86371b2015-05-27 18:16:19 -070033MARSHAL_WRAPPER(TPMS_ATTEST)
Vadim Bendeburyfe7bde42015-06-01 10:55:46 -070034MARSHAL_WRAPPER(TPMS_CREATION_DATA)
Vadim Bendebury6bb41ff2015-05-29 22:43:25 -070035MARSHAL_WRAPPER(TPMS_ECC_POINT)
Vadim Bendebury6c73a9e2015-05-31 16:06:18 -070036MARSHAL_WRAPPER(TPMS_NV_PUBLIC)
Vadim Bendebury709abf02015-06-01 19:02:24 -070037MARSHAL_WRAPPER(TPMS_TIME_INFO)
Vadim Bendebury5f320632015-06-01 10:20:42 -070038MARSHAL_WRAPPER(TPMT_PUBLIC)
Vadim Bendeburyfe7bde42015-06-01 10:55:46 -070039MARSHAL_WRAPPER(TPMT_SENSITIVE)
Vadim Bendeburyda725062015-05-31 14:41:18 -070040MARSHAL_WRAPPER(TPM_CC)
Vadim Bendebury9c2755f2015-06-01 19:01:25 -070041MARSHAL_WRAPPER(TPM_GENERATED)
Vadim Bendeburyb86371b2015-05-27 18:16:19 -070042MARSHAL_WRAPPER(TPM_HANDLE)
Vadim Bendeburyda725062015-05-31 14:41:18 -070043MARSHAL_WRAPPER(TPM_RC)
44MARSHAL_WRAPPER(TPM_ST)
Vadim Bendeburyfe7bde42015-06-01 10:55:46 -070045MARSHAL_WRAPPER(UINT16)
Vadim Bendeburyda725062015-05-31 14:41:18 -070046MARSHAL_WRAPPER(UINT32)
Vadim Bendeburyb86371b2015-05-27 18:16:19 -070047
Vadim Bendeburyf788ffb2015-06-05 12:57:27 -070048UINT16 TPMU_PUBLIC_PARMS_Marshal(TPMU_PUBLIC_PARMS *x, BYTE **y, INT32 *z,
49 TPMI_ALG_PUBLIC type);
Vadim Bendeburyfe7bde42015-06-01 10:55:46 -070050
Vadim Bendeburyf788ffb2015-06-05 12:57:27 -070051#endif // __TPM2_MARSHAL_FP_H