1d881367e349b1e8676c9ff84d8b9cfc494fc07b2Vadim Bendebury/* 2d881367e349b1e8676c9ff84d8b9cfc494fc07b2Vadim Bendebury * Copyright 2015 The Chromium OS Authors. All rights reserved. 3d881367e349b1e8676c9ff84d8b9cfc494fc07b2Vadim Bendebury * Use of this source code is governed by a BSD-style license that can be 4d881367e349b1e8676c9ff84d8b9cfc494fc07b2Vadim Bendebury * found in the LICENSE file. 5d881367e349b1e8676c9ff84d8b9cfc494fc07b2Vadim Bendebury */ 6d881367e349b1e8676c9ff84d8b9cfc494fc07b2Vadim Bendebury 7f788ffb5e5b4493cb4c1deaa12a97c80c2694b01Vadim Bendebury#ifndef __TPM2_MEMORYLIB_FP_H 8f788ffb5e5b4493cb4c1deaa12a97c80c2694b01Vadim Bendebury#define __TPM2_MEMORYLIB_FP_H 9d881367e349b1e8676c9ff84d8b9cfc494fc07b2Vadim Bendebury 10a4ed3aa64664a1241ea982d685db744caaae3ffaJocelyn Bohr#include "InternalRoutines.h" 11a4ed3aa64664a1241ea982d685db744caaae3ffaJocelyn Bohr 12f788ffb5e5b4493cb4c1deaa12a97c80c2694b01Vadim BendeburyBYTE *MemoryGetResponseBuffer( 13f788ffb5e5b4493cb4c1deaa12a97c80c2694b01Vadim Bendebury TPM_CC command // Command that requires the buffer 14f788ffb5e5b4493cb4c1deaa12a97c80c2694b01Vadim Bendebury ); 15f788ffb5e5b4493cb4c1deaa12a97c80c2694b01Vadim BendeburyLIB_EXPORT BOOL Memory2BEqual(const TPM2B *aIn, // IN: compare value 16f788ffb5e5b4493cb4c1deaa12a97c80c2694b01Vadim Bendebury const TPM2B *bIn // IN: compare value 17f788ffb5e5b4493cb4c1deaa12a97c80c2694b01Vadim Bendebury ); 18f788ffb5e5b4493cb4c1deaa12a97c80c2694b01Vadim Bendebury#define MemoryCopy(destination, source, size, destSize) \ 19f788ffb5e5b4493cb4c1deaa12a97c80c2694b01Vadim Bendebury MemoryMove((destination), (source), (size), (destSize)) 20f788ffb5e5b4493cb4c1deaa12a97c80c2694b01Vadim BendeburyLIB_EXPORT INT16 MemoryCopy2B(TPM2B *dest, // OUT: receiving TPM2B 21f788ffb5e5b4493cb4c1deaa12a97c80c2694b01Vadim Bendebury const TPM2B *source, // IN: source TPM2B 22f788ffb5e5b4493cb4c1deaa12a97c80c2694b01Vadim Bendebury UINT16 dSize // IN: size of the receiving buffer 23f788ffb5e5b4493cb4c1deaa12a97c80c2694b01Vadim Bendebury ); 24f788ffb5e5b4493cb4c1deaa12a97c80c2694b01Vadim BendeburyLIB_EXPORT void MemoryMove(void *destination, // OUT: move destination 25f788ffb5e5b4493cb4c1deaa12a97c80c2694b01Vadim Bendebury const void *source, // IN: move source 26f788ffb5e5b4493cb4c1deaa12a97c80c2694b01Vadim Bendebury UINT32 size, // IN: number of octets to moved 27f788ffb5e5b4493cb4c1deaa12a97c80c2694b01Vadim Bendebury UINT32 dSize // IN: size of the receive buffer 283743ac1a96b45f78720fb5008771b90d9e2c5adeVadim Bendebury ); 29f788ffb5e5b4493cb4c1deaa12a97c80c2694b01Vadim BendeburyUINT16 MemoryRemoveTrailingZeros(TPM2B_AUTH *auth // IN/OUT: value to adjust 30f788ffb5e5b4493cb4c1deaa12a97c80c2694b01Vadim Bendebury ); 31f788ffb5e5b4493cb4c1deaa12a97c80c2694b01Vadim BendeburyLIB_EXPORT void MemorySet(void *destination, // OUT: memory destination 32f788ffb5e5b4493cb4c1deaa12a97c80c2694b01Vadim Bendebury char value, // IN: fill value 33f788ffb5e5b4493cb4c1deaa12a97c80c2694b01Vadim Bendebury UINT32 size // IN: number of octets to fill 34d881367e349b1e8676c9ff84d8b9cfc494fc07b2Vadim Bendebury ); 35c00055c030100256f3c2015b9892cdb0bd39fcb0Vadim BendeburyLIB_EXPORT void MemoryConcat2B( 36f788ffb5e5b4493cb4c1deaa12a97c80c2694b01Vadim Bendebury TPM2B *aInOut, // IN/OUT: destination 2B 37f788ffb5e5b4493cb4c1deaa12a97c80c2694b01Vadim Bendebury TPM2B *bIn, // IN: second 2B 38f788ffb5e5b4493cb4c1deaa12a97c80c2694b01Vadim Bendebury UINT16 aSize // IN: The size of aInOut.buffer (max values for aInOut.size) 39f788ffb5e5b4493cb4c1deaa12a97c80c2694b01Vadim Bendebury ); 40f788ffb5e5b4493cb4c1deaa12a97c80c2694b01Vadim BendeburyLIB_EXPORT BOOL MemoryEqual(const void *buffer1, // IN: compare buffer1 41f788ffb5e5b4493cb4c1deaa12a97c80c2694b01Vadim Bendebury const void *buffer2, // IN: compare buffer2 42f788ffb5e5b4493cb4c1deaa12a97c80c2694b01Vadim Bendebury UINT32 size // IN: size of bytes being compared 43f788ffb5e5b4493cb4c1deaa12a97c80c2694b01Vadim Bendebury ); 44f788ffb5e5b4493cb4c1deaa12a97c80c2694b01Vadim Bendebury 45f788ffb5e5b4493cb4c1deaa12a97c80c2694b01Vadim Bendebury#endif // __TPM2_MEMORYLIB_FP_H 46