| /* |
| * Copyright 2015 The Chromium OS Authors. All rights reserved. |
| * Use of this source code is governed by a BSD-style license that can be |
| * found in the LICENSE file. |
| */ |
| |
| #ifndef __TPM2_MARSHAL_FP_H |
| #define __TPM2_MARSHAL_FP_H |
| |
| UINT16 Common_Marshal(void *source, BYTE **buffer, INT32 *size, |
| UINT16 type_size); |
| TPM_RC Common_Unmarshal(void *source, BYTE **buffer, INT32 *size, |
| UINT16 type_size); |
| |
| #define MARSHAL_WRAPPER(name) \ |
| static inline UINT16 name##_Marshal(void *x, BYTE **y, INT32 *z) { \ |
| return Common_Marshal(x, y, z, sizeof(name)); \ |
| } \ |
| static inline TPM_RC name##_Unmarshal(void *x, BYTE **y, INT32 *z) { \ |
| return Common_Unmarshal(x, y, z, sizeof(name)); \ |
| } |
| |
| MARSHAL_WRAPPER(SESSION) |
| MARSHAL_WRAPPER(TPM2B_AUTH) |
| MARSHAL_WRAPPER(TPM2B_DIGEST) |
| MARSHAL_WRAPPER(TPM2B_IV) |
| MARSHAL_WRAPPER(TPM2B_NONCE) |
| MARSHAL_WRAPPER(TPMA_LOCALITY) |
| MARSHAL_WRAPPER(TPMA_SESSION) |
| MARSHAL_WRAPPER(TPMI_SH_AUTH_SESSION) |
| MARSHAL_WRAPPER(TPMI_ST_COMMAND_TAG) |
| MARSHAL_WRAPPER(TPML_PCR_SELECTION) |
| MARSHAL_WRAPPER(TPMS_ATTEST) |
| MARSHAL_WRAPPER(TPMS_CREATION_DATA) |
| MARSHAL_WRAPPER(TPMS_ECC_POINT) |
| MARSHAL_WRAPPER(TPMS_NV_PUBLIC) |
| MARSHAL_WRAPPER(TPMS_TIME_INFO) |
| MARSHAL_WRAPPER(TPMT_PUBLIC) |
| MARSHAL_WRAPPER(TPMT_SENSITIVE) |
| MARSHAL_WRAPPER(TPM_CC) |
| MARSHAL_WRAPPER(TPM_GENERATED) |
| MARSHAL_WRAPPER(TPM_HANDLE) |
| MARSHAL_WRAPPER(TPM_RC) |
| MARSHAL_WRAPPER(TPM_ST) |
| MARSHAL_WRAPPER(UINT16) |
| MARSHAL_WRAPPER(UINT32) |
| |
| UINT16 TPMU_PUBLIC_PARMS_Marshal(TPMU_PUBLIC_PARMS *x, BYTE **y, INT32 *z, |
| TPMI_ALG_PUBLIC type); |
| |
| #endif // __TPM2_MARSHAL_FP_H |