| /* |
| * 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(TPM2B_DIGEST) |
| MARSHAL_WRAPPER(TPMI_ST_COMMAND_TAG) |
| MARSHAL_WRAPPER(TPMS_ATTEST) |
| MARSHAL_WRAPPER(TPMS_ECC_POINT) |
| MARSHAL_WRAPPER(TPM_CC) |
| MARSHAL_WRAPPER(TPM_HANDLE) |
| MARSHAL_WRAPPER(TPM_RC) |
| MARSHAL_WRAPPER(TPM_ST) |
| MARSHAL_WRAPPER(UINT32) |
| |
| #endif // __TPM2_MARSHAL_FP_H |