Replace UINT64 marshaling with functions from libmarshal.
This required the same tricks in sys_api_marshalUnmarshal.h.
Signed-off-by: Philip Tricca <philip.b.tricca@intel.com>
diff --git a/sysapi/include/sys_api_marshalUnmarshal.h b/sysapi/include/sys_api_marshalUnmarshal.h
index 39e5a58..13ce116 100644
--- a/sysapi/include/sys_api_marshalUnmarshal.h
+++ b/sysapi/include/sys_api_marshalUnmarshal.h
@@ -33,7 +33,18 @@
void Marshal_Simple_TPM2B( UINT8 *inBuffPtr, UINT32 maxCommandSize, UINT8 **nextData, TPM2B *value, TSS2_RC *rval );
void Unmarshal_Simple_TPM2B( UINT8 *outBuffPtr, UINT32 maxResponseSize, UINT8 **nextData, TPM2B *value, TSS2_RC *rval );
void Unmarshal_Simple_TPM2B_NoSizeCheck( UINT8 *outBuffPtr, UINT32 maxResponseSize, UINT8 **nextData, TPM2B *value, TSS2_RC *rval );
-void Marshal_UINT64( UINT8 *inBuffPtr, UINT32 maxCommandSize, UINT8 **nextData, UINT64 value, TSS2_RC *rval );
+#define Marshal_UINT64(inBuffPtr, maxCommandSize, nextData, src, rval) \
+ do { \
+ if (*rval != TSS2_RC_SUCCESS) \
+ break; \
+ size_t index = *nextData - inBuffPtr; \
+ UINT64 floop = src; \
+ *rval = UINT64_Marshal (&floop, \
+ inBuffPtr, \
+ maxCommandSize, \
+ &index); \
+ *nextData = inBuffPtr + index; \
+ } while (0);
#define Marshal_UINT32(inBuffPtr, maxCommandSize, nextData, src, rval) \
do { \
if (*rval != TSS2_RC_SUCCESS) \
@@ -77,7 +88,17 @@
&index); \
*nextData = inBuffPtr + index; \
} while (0);
-void Unmarshal_UINT64( UINT8 *outBuffPtr, UINT32 maxResponseSize, UINT8 **nextData, UINT64 *value, TSS2_RC *rval );
+#define Unmarshal_UINT64(outBuffPtr, maxResponseSize, nextData, dest, rval) \
+ do { \
+ if (*rval != TSS2_RC_SUCCESS) \
+ break; \
+ size_t index = *nextData - outBuffPtr; \
+ *rval = UINT64_Unmarshal (outBuffPtr, \
+ maxResponseSize, \
+ &index, \
+ dest); \
+ *nextData = outBuffPtr + index; \
+ } while (0);
#define Unmarshal_UINT32(outBuffPtr, maxResponseSize, nextData, dest, rval) \
do { \
if (*rval != TSS2_RC_SUCCESS) \
diff --git a/sysapi/sysapi_util/marshal_uint64.c b/sysapi/sysapi_util/marshal_uint64.c
deleted file mode 100644
index 80090fd..0000000
--- a/sysapi/sysapi_util/marshal_uint64.c
+++ /dev/null
@@ -1,46 +0,0 @@
-//**********************************************************************;
-// Copyright (c) 2015, 2016 Intel Corporation
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice,
-// this list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following disclaimer in the documentation
-// and/or other materials provided with the distribution.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-// THE POSSIBILITY OF SUCH DAMAGE.
-//**********************************************************************;
-
-#include <sapi/tpm20.h>
-#include "sysapi_util.h"
-
-void Marshal_UINT64( UINT8 *inBuffPtr, UINT32 maxCommandSize, UINT8 **nextData, UINT64 value, TSS2_RC *rval )
-{
- if( *rval != TSS2_RC_SUCCESS )
- return;
-
- *rval = CheckDataPointers( inBuffPtr, nextData);
- if( *rval != TSS2_RC_SUCCESS )
- return;
-
- *rval = CheckOverflow( inBuffPtr, maxCommandSize, *nextData, sizeof(UINT64) );
- if( *rval != TSS2_RC_SUCCESS )
- return;
-
- *( (UINT64 *)*nextData ) = CHANGE_ENDIAN_QWORD( value );
- *nextData = *nextData + sizeof( UINT64 );
-}
diff --git a/sysapi/sysapi_util/unmarshal_uint64.c b/sysapi/sysapi_util/unmarshal_uint64.c
deleted file mode 100644
index 0f829ba..0000000
--- a/sysapi/sysapi_util/unmarshal_uint64.c
+++ /dev/null
@@ -1,50 +0,0 @@
-//**********************************************************************;
-// Copyright (c) 2015, 2016 Intel Corporation
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice,
-// this list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following disclaimer in the documentation
-// and/or other materials provided with the distribution.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-// THE POSSIBILITY OF SUCH DAMAGE.
-//**********************************************************************;
-
-#include <sapi/tpm20.h>
-#include "sysapi_util.h"
-
-void Unmarshal_UINT64( UINT8 *outBuffPtr, UINT32 maxResponseSize, UINT8 **nextData, UINT64 *value, TSS2_RC *rval )
-{
- if( *rval != TSS2_RC_SUCCESS )
- return;
-
- *rval = CheckDataPointers( outBuffPtr, nextData );
- if( *rval != TSS2_RC_SUCCESS )
- return;
-
- *rval = CheckOverflow( outBuffPtr, maxResponseSize, *nextData, sizeof(UINT64) );
- if( *rval != TSS2_RC_SUCCESS )
- return;
-
- if( value )
- {
- *value = CHANGE_ENDIAN_QWORD( *(UINT64 *)*nextData );
- }
- *nextData = *nextData + sizeof( UINT64 );
-}
-