Changes to allow compilation of Attest_spt.c

Add necessary external declarations and data definitions.

BUG=none
TEST=verify that compilation succeeds:
   $ \rm -f build/Attest_spt.o
   $ make build/Attest_spt.o
   cc -Wall -Werror -c -o build/Attest_spt.o Attest_spt.c
   $ ls build/Attest_spt.o
   build/Attest_spt.o
   $

Change-Id: I1649516f988022fea4478c20a49fcb6020bbd12b
Signed-off-by: Vadim Bendebury <vbendeb@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/274013
Reviewed-by: Utkarsh Sanghi <usanghi@chromium.org>
Reviewed-by: Darren Krahn <dkrahn@chromium.org>
diff --git a/marshal_fp.h b/marshal_fp.h
index e69de29..48841bf 100644
--- a/marshal_fp.h
+++ b/marshal_fp.h
@@ -0,0 +1,26 @@
+/*
+ * 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(TPMS_ATTEST)
+MARSHAL_WRAPPER(TPM_HANDLE)
+
+#endif // __TPM2_MARSHAL_FP_H