xref: /aosp_15_r20/external/ms-tpm-20-ref/TPMCmd/tpm/include/TableMarshalDefines.h (revision 5c591343844d1f9da7da26467c4bf7efc8a7a413)
1*5c591343SA. Cody Schuffelen /* Microsoft Reference Implementation for TPM 2.0
2*5c591343SA. Cody Schuffelen  *
3*5c591343SA. Cody Schuffelen  *  The copyright in this software is being made available under the BSD License,
4*5c591343SA. Cody Schuffelen  *  included below. This software may be subject to other third party and
5*5c591343SA. Cody Schuffelen  *  contributor rights, including patent rights, and no such rights are granted
6*5c591343SA. Cody Schuffelen  *  under this license.
7*5c591343SA. Cody Schuffelen  *
8*5c591343SA. Cody Schuffelen  *  Copyright (c) Microsoft Corporation
9*5c591343SA. Cody Schuffelen  *
10*5c591343SA. Cody Schuffelen  *  All rights reserved.
11*5c591343SA. Cody Schuffelen  *
12*5c591343SA. Cody Schuffelen  *  BSD License
13*5c591343SA. Cody Schuffelen  *
14*5c591343SA. Cody Schuffelen  *  Redistribution and use in source and binary forms, with or without modification,
15*5c591343SA. Cody Schuffelen  *  are permitted provided that the following conditions are met:
16*5c591343SA. Cody Schuffelen  *
17*5c591343SA. Cody Schuffelen  *  Redistributions of source code must retain the above copyright notice, this list
18*5c591343SA. Cody Schuffelen  *  of conditions and the following disclaimer.
19*5c591343SA. Cody Schuffelen  *
20*5c591343SA. Cody Schuffelen  *  Redistributions in binary form must reproduce the above copyright notice, this
21*5c591343SA. Cody Schuffelen  *  list of conditions and the following disclaimer in the documentation and/or
22*5c591343SA. Cody Schuffelen  *  other materials provided with the distribution.
23*5c591343SA. Cody Schuffelen  *
24*5c591343SA. Cody Schuffelen  *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ""AS IS""
25*5c591343SA. Cody Schuffelen  *  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
26*5c591343SA. Cody Schuffelen  *  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
27*5c591343SA. Cody Schuffelen  *  DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
28*5c591343SA. Cody Schuffelen  *  ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
29*5c591343SA. Cody Schuffelen  *  (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
30*5c591343SA. Cody Schuffelen  *  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
31*5c591343SA. Cody Schuffelen  *  ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
32*5c591343SA. Cody Schuffelen  *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
33*5c591343SA. Cody Schuffelen  *  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34*5c591343SA. Cody Schuffelen  */
35*5c591343SA. Cody Schuffelen /*(Auto-generated)
36*5c591343SA. Cody Schuffelen  *  Created by NewMarshal; Version 1.4 Apr 7, 2019
37*5c591343SA. Cody Schuffelen  *  Date: Mar  6, 2020  Time: 01:50:10PM
38*5c591343SA. Cody Schuffelen  */
39*5c591343SA. Cody Schuffelen 
40*5c591343SA. Cody Schuffelen #ifndef _TABLE_MARSHAL_DEFINES_H_
41*5c591343SA. Cody Schuffelen #define _TABLE_MARSHAL_DEFINES_H_
42*5c591343SA. Cody Schuffelen 
43*5c591343SA. Cody Schuffelen 
44*5c591343SA. Cody Schuffelen #define NULL_SHIFT  15
45*5c591343SA. Cody Schuffelen #define NULL_FLAG   (1 << NULL_SHIFT)
46*5c591343SA. Cody Schuffelen 
47*5c591343SA. Cody Schuffelen // The range macro processes a min, max value and produces a values that is used in
48*5c591343SA. Cody Schuffelen // the computation to see if something is within a range. The max value is (max-min).
49*5c591343SA. Cody Schuffelen // This lets the check for something ('val') within a range become:
50*5c591343SA. Cody Schuffelen //   if((val - min) <= max) // passes if in range
51*5c591343SA. Cody Schuffelen //   if((val - min) > max) // passes if not in range
52*5c591343SA. Cody Schuffelen // This works because all values are converted to UINT32 values before the compare.
53*5c591343SA. Cody Schuffelen // For (val - min), all values greater than or equal to val will become positive
54*5c591343SA. Cody Schuffelen // values with a value equal to 'min' being zero. This means that in an unsigned
55*5c591343SA. Cody Schuffelen // compare against 'max,' any value that is outside the range will appear to be a
56*5c591343SA. Cody Schuffelen // number greater than max. The benefit of this operation is that this will work even
57*5c591343SA. Cody Schuffelen // if the input value is a signed number as long as the input is sign extended.
58*5c591343SA. Cody Schuffelen 
59*5c591343SA. Cody Schuffelen #define RANGE(_min_, _max_, _base_)                                                  \
60*5c591343SA. Cody Schuffelen     (UINT32)_min_, (UINT32)((_base_)(_max_ - _min_))
61*5c591343SA. Cody Schuffelen 
62*5c591343SA. Cody Schuffelen // This macro is like the offsetof macro but, instead of computing the offset of
63*5c591343SA. Cody Schuffelen // a structure element, it computes the stride between elements that are in a
64*5c591343SA. Cody Schuffelen // structure array. This is used instead of sizeof() because the sizeof() operator on
65*5c591343SA. Cody Schuffelen // a structure can return an implementation dependent value.
66*5c591343SA. Cody Schuffelen #define STRIDE(s)   ((UINT16)(size_t)&(((s *)0)[1]))
67*5c591343SA. Cody Schuffelen 
68*5c591343SA. Cody Schuffelen #define MARSHAL_REF(TYPE)   ((UINT16)(offsetof(MARSHAL_DATA, TYPE)))
69*5c591343SA. Cody Schuffelen 
70*5c591343SA. Cody Schuffelen 
71*5c591343SA. Cody Schuffelen // This macro creates the entry in the array lookup table
72*5c591343SA. Cody Schuffelen #define ARRAY_MARSHAL_ENTRY(TYPE)                                                   \
73*5c591343SA. Cody Schuffelen         {(marshalIndex_t)TYPE##_MARSHAL_REF, (UINT16)STRIDE(TYPE)}
74*5c591343SA. Cody Schuffelen 
75*5c591343SA. Cody Schuffelen // Defines for array lookup
76*5c591343SA. Cody Schuffelen #define UINT8_ARRAY_MARSHAL_INDEX                   0   // 0x00
77*5c591343SA. Cody Schuffelen #define TPM_CC_ARRAY_MARSHAL_INDEX                  1   // 0x01
78*5c591343SA. Cody Schuffelen #define TPMA_CC_ARRAY_MARSHAL_INDEX                 2   // 0x02
79*5c591343SA. Cody Schuffelen #define TPM_ALG_ID_ARRAY_MARSHAL_INDEX              3   // 0x03
80*5c591343SA. Cody Schuffelen #define TPM_HANDLE_ARRAY_MARSHAL_INDEX              4   // 0x04
81*5c591343SA. Cody Schuffelen #define TPM2B_DIGEST_ARRAY_MARSHAL_INDEX            5   // 0x05
82*5c591343SA. Cody Schuffelen #define TPMT_HA_ARRAY_MARSHAL_INDEX                 6   // 0x06
83*5c591343SA. Cody Schuffelen #define TPMS_PCR_SELECTION_ARRAY_MARSHAL_INDEX      7   // 0x07
84*5c591343SA. Cody Schuffelen #define TPMS_ALG_PROPERTY_ARRAY_MARSHAL_INDEX       8   // 0x08
85*5c591343SA. Cody Schuffelen #define TPMS_TAGGED_PROPERTY_ARRAY_MARSHAL_INDEX    9   // 0x09
86*5c591343SA. Cody Schuffelen #define TPMS_TAGGED_PCR_SELECT_ARRAY_MARSHAL_INDEX  10  // 0x0A
87*5c591343SA. Cody Schuffelen #define TPM_ECC_CURVE_ARRAY_MARSHAL_INDEX           11  // 0x0B
88*5c591343SA. Cody Schuffelen #define TPMS_TAGGED_POLICY_ARRAY_MARSHAL_INDEX      12  // 0x0C
89*5c591343SA. Cody Schuffelen #define TPMS_ACT_DATA_ARRAY_MARSHAL_INDEX           13  // 0x0D
90*5c591343SA. Cody Schuffelen #define TPMS_AC_OUTPUT_ARRAY_MARSHAL_INDEX          14  // 0x0E
91*5c591343SA. Cody Schuffelen 
92*5c591343SA. Cody Schuffelen 
93*5c591343SA. Cody Schuffelen // Defines for referencing a type by offset
94*5c591343SA. Cody Schuffelen #define UINT8_MARSHAL_REF                           \
95*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, UINT8_DATA)))
96*5c591343SA. Cody Schuffelen #define BYTE_MARSHAL_REF                            UINT8_MARSHAL_REF
97*5c591343SA. Cody Schuffelen #define TPM_HT_MARSHAL_REF                          UINT8_MARSHAL_REF
98*5c591343SA. Cody Schuffelen #define TPMA_LOCALITY_MARSHAL_REF                   UINT8_MARSHAL_REF
99*5c591343SA. Cody Schuffelen #define UINT16_MARSHAL_REF                          \
100*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, UINT16_DATA)))
101*5c591343SA. Cody Schuffelen #define TPM_KEY_SIZE_MARSHAL_REF                    UINT16_MARSHAL_REF
102*5c591343SA. Cody Schuffelen #define TPM_KEY_BITS_MARSHAL_REF                    UINT16_MARSHAL_REF
103*5c591343SA. Cody Schuffelen #define TPM_ALG_ID_MARSHAL_REF                      UINT16_MARSHAL_REF
104*5c591343SA. Cody Schuffelen #define TPM_ST_MARSHAL_REF                          UINT16_MARSHAL_REF
105*5c591343SA. Cody Schuffelen #define UINT32_MARSHAL_REF                          \
106*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, UINT32_DATA)))
107*5c591343SA. Cody Schuffelen #define TPM_ALGORITHM_ID_MARSHAL_REF                UINT32_MARSHAL_REF
108*5c591343SA. Cody Schuffelen #define TPM_MODIFIER_INDICATOR_MARSHAL_REF          UINT32_MARSHAL_REF
109*5c591343SA. Cody Schuffelen #define TPM_AUTHORIZATION_SIZE_MARSHAL_REF          UINT32_MARSHAL_REF
110*5c591343SA. Cody Schuffelen #define TPM_PARAMETER_SIZE_MARSHAL_REF              UINT32_MARSHAL_REF
111*5c591343SA. Cody Schuffelen #define TPM_SPEC_MARSHAL_REF                        UINT32_MARSHAL_REF
112*5c591343SA. Cody Schuffelen #define TPM_CONSTANTS32_MARSHAL_REF                 UINT32_MARSHAL_REF
113*5c591343SA. Cody Schuffelen #define TPM_CC_MARSHAL_REF                          UINT32_MARSHAL_REF
114*5c591343SA. Cody Schuffelen #define TPM_RC_MARSHAL_REF                          UINT32_MARSHAL_REF
115*5c591343SA. Cody Schuffelen #define TPM_PT_MARSHAL_REF                          UINT32_MARSHAL_REF
116*5c591343SA. Cody Schuffelen #define TPM_PT_PCR_MARSHAL_REF                      UINT32_MARSHAL_REF
117*5c591343SA. Cody Schuffelen #define TPM_PS_MARSHAL_REF                          UINT32_MARSHAL_REF
118*5c591343SA. Cody Schuffelen #define TPM_HANDLE_MARSHAL_REF                      UINT32_MARSHAL_REF
119*5c591343SA. Cody Schuffelen #define TPM_RH_MARSHAL_REF                          UINT32_MARSHAL_REF
120*5c591343SA. Cody Schuffelen #define TPM_HC_MARSHAL_REF                          UINT32_MARSHAL_REF
121*5c591343SA. Cody Schuffelen #define TPMA_PERMANENT_MARSHAL_REF                  UINT32_MARSHAL_REF
122*5c591343SA. Cody Schuffelen #define TPMA_STARTUP_CLEAR_MARSHAL_REF              UINT32_MARSHAL_REF
123*5c591343SA. Cody Schuffelen #define TPMA_MEMORY_MARSHAL_REF                     UINT32_MARSHAL_REF
124*5c591343SA. Cody Schuffelen #define TPMA_CC_MARSHAL_REF                         UINT32_MARSHAL_REF
125*5c591343SA. Cody Schuffelen #define TPMA_MODES_MARSHAL_REF                      UINT32_MARSHAL_REF
126*5c591343SA. Cody Schuffelen #define TPMA_X509_KEY_USAGE_MARSHAL_REF             UINT32_MARSHAL_REF
127*5c591343SA. Cody Schuffelen #define TPM_NV_INDEX_MARSHAL_REF                    UINT32_MARSHAL_REF
128*5c591343SA. Cody Schuffelen #define TPM_AE_MARSHAL_REF                          UINT32_MARSHAL_REF
129*5c591343SA. Cody Schuffelen #define UINT64_MARSHAL_REF                          \
130*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, UINT64_DATA)))
131*5c591343SA. Cody Schuffelen #define INT8_MARSHAL_REF                            \
132*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, INT8_DATA)))
133*5c591343SA. Cody Schuffelen #define INT16_MARSHAL_REF                           \
134*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, INT16_DATA)))
135*5c591343SA. Cody Schuffelen #define INT32_MARSHAL_REF                           \
136*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, INT32_DATA)))
137*5c591343SA. Cody Schuffelen #define INT64_MARSHAL_REF                           \
138*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, INT64_DATA)))
139*5c591343SA. Cody Schuffelen #define UINT0_MARSHAL_REF                           \
140*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, UINT0_DATA)))
141*5c591343SA. Cody Schuffelen #define TPM_ECC_CURVE_MARSHAL_REF                   \
142*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPM_ECC_CURVE_DATA)))
143*5c591343SA. Cody Schuffelen #define TPM_CLOCK_ADJUST_MARSHAL_REF                \
144*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPM_CLOCK_ADJUST_DATA)))
145*5c591343SA. Cody Schuffelen #define TPM_EO_MARSHAL_REF                          \
146*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPM_EO_DATA)))
147*5c591343SA. Cody Schuffelen #define TPM_SU_MARSHAL_REF                          \
148*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPM_SU_DATA)))
149*5c591343SA. Cody Schuffelen #define TPM_SE_MARSHAL_REF                          \
150*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPM_SE_DATA)))
151*5c591343SA. Cody Schuffelen #define TPM_CAP_MARSHAL_REF                         \
152*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPM_CAP_DATA)))
153*5c591343SA. Cody Schuffelen #define TPMA_ALGORITHM_MARSHAL_REF                  \
154*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMA_ALGORITHM_DATA)))
155*5c591343SA. Cody Schuffelen #define TPMA_OBJECT_MARSHAL_REF                     \
156*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMA_OBJECT_DATA)))
157*5c591343SA. Cody Schuffelen #define TPMA_SESSION_MARSHAL_REF                    \
158*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMA_SESSION_DATA)))
159*5c591343SA. Cody Schuffelen #define TPMA_ACT_MARSHAL_REF                        \
160*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMA_ACT_DATA)))
161*5c591343SA. Cody Schuffelen #define TPMI_YES_NO_MARSHAL_REF                     \
162*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMI_YES_NO_DATA)))
163*5c591343SA. Cody Schuffelen #define TPMI_DH_OBJECT_MARSHAL_REF                  \
164*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMI_DH_OBJECT_DATA)))
165*5c591343SA. Cody Schuffelen #define TPMI_DH_PARENT_MARSHAL_REF                  \
166*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMI_DH_PARENT_DATA)))
167*5c591343SA. Cody Schuffelen #define TPMI_DH_PERSISTENT_MARSHAL_REF              \
168*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMI_DH_PERSISTENT_DATA)))
169*5c591343SA. Cody Schuffelen #define TPMI_DH_ENTITY_MARSHAL_REF                  \
170*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMI_DH_ENTITY_DATA)))
171*5c591343SA. Cody Schuffelen #define TPMI_DH_PCR_MARSHAL_REF                     \
172*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMI_DH_PCR_DATA)))
173*5c591343SA. Cody Schuffelen #define TPMI_SH_AUTH_SESSION_MARSHAL_REF            \
174*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMI_SH_AUTH_SESSION_DATA)))
175*5c591343SA. Cody Schuffelen #define TPMI_SH_HMAC_MARSHAL_REF                    \
176*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMI_SH_HMAC_DATA)))
177*5c591343SA. Cody Schuffelen #define TPMI_SH_POLICY_MARSHAL_REF                  \
178*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMI_SH_POLICY_DATA)))
179*5c591343SA. Cody Schuffelen #define TPMI_DH_CONTEXT_MARSHAL_REF                 \
180*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMI_DH_CONTEXT_DATA)))
181*5c591343SA. Cody Schuffelen #define TPMI_DH_SAVED_MARSHAL_REF                   \
182*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMI_DH_SAVED_DATA)))
183*5c591343SA. Cody Schuffelen #define TPMI_RH_HIERARCHY_MARSHAL_REF               \
184*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMI_RH_HIERARCHY_DATA)))
185*5c591343SA. Cody Schuffelen #define TPMI_RH_ENABLES_MARSHAL_REF                 \
186*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMI_RH_ENABLES_DATA)))
187*5c591343SA. Cody Schuffelen #define TPMI_RH_HIERARCHY_AUTH_MARSHAL_REF          \
188*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMI_RH_HIERARCHY_AUTH_DATA)))
189*5c591343SA. Cody Schuffelen #define TPMI_RH_HIERARCHY_POLICY_MARSHAL_REF        \
190*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMI_RH_HIERARCHY_POLICY_DATA)))
191*5c591343SA. Cody Schuffelen #define TPMI_RH_PLATFORM_MARSHAL_REF                \
192*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMI_RH_PLATFORM_DATA)))
193*5c591343SA. Cody Schuffelen #define TPMI_RH_OWNER_MARSHAL_REF                   \
194*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMI_RH_OWNER_DATA)))
195*5c591343SA. Cody Schuffelen #define TPMI_RH_ENDORSEMENT_MARSHAL_REF             \
196*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMI_RH_ENDORSEMENT_DATA)))
197*5c591343SA. Cody Schuffelen #define TPMI_RH_PROVISION_MARSHAL_REF               \
198*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMI_RH_PROVISION_DATA)))
199*5c591343SA. Cody Schuffelen #define TPMI_RH_CLEAR_MARSHAL_REF                   \
200*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMI_RH_CLEAR_DATA)))
201*5c591343SA. Cody Schuffelen #define TPMI_RH_NV_AUTH_MARSHAL_REF                 \
202*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMI_RH_NV_AUTH_DATA)))
203*5c591343SA. Cody Schuffelen #define TPMI_RH_LOCKOUT_MARSHAL_REF                 \
204*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMI_RH_LOCKOUT_DATA)))
205*5c591343SA. Cody Schuffelen #define TPMI_RH_NV_INDEX_MARSHAL_REF                \
206*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMI_RH_NV_INDEX_DATA)))
207*5c591343SA. Cody Schuffelen #define TPMI_RH_AC_MARSHAL_REF                      \
208*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMI_RH_AC_DATA)))
209*5c591343SA. Cody Schuffelen #define TPMI_RH_ACT_MARSHAL_REF                     \
210*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMI_RH_ACT_DATA)))
211*5c591343SA. Cody Schuffelen #define TPMI_ALG_HASH_MARSHAL_REF                   \
212*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMI_ALG_HASH_DATA)))
213*5c591343SA. Cody Schuffelen #define TPMI_ALG_ASYM_MARSHAL_REF                   \
214*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMI_ALG_ASYM_DATA)))
215*5c591343SA. Cody Schuffelen #define TPMI_ALG_SYM_MARSHAL_REF                    \
216*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMI_ALG_SYM_DATA)))
217*5c591343SA. Cody Schuffelen #define TPMI_ALG_SYM_OBJECT_MARSHAL_REF             \
218*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMI_ALG_SYM_OBJECT_DATA)))
219*5c591343SA. Cody Schuffelen #define TPMI_ALG_SYM_MODE_MARSHAL_REF               \
220*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMI_ALG_SYM_MODE_DATA)))
221*5c591343SA. Cody Schuffelen #define TPMI_ALG_KDF_MARSHAL_REF                    \
222*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMI_ALG_KDF_DATA)))
223*5c591343SA. Cody Schuffelen #define TPMI_ALG_SIG_SCHEME_MARSHAL_REF             \
224*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMI_ALG_SIG_SCHEME_DATA)))
225*5c591343SA. Cody Schuffelen #define TPMI_ECC_KEY_EXCHANGE_MARSHAL_REF           \
226*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMI_ECC_KEY_EXCHANGE_DATA)))
227*5c591343SA. Cody Schuffelen #define TPMI_ST_COMMAND_TAG_MARSHAL_REF             \
228*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMI_ST_COMMAND_TAG_DATA)))
229*5c591343SA. Cody Schuffelen #define TPMI_ALG_MAC_SCHEME_MARSHAL_REF             \
230*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMI_ALG_MAC_SCHEME_DATA)))
231*5c591343SA. Cody Schuffelen #define TPMI_ALG_CIPHER_MODE_MARSHAL_REF            \
232*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMI_ALG_CIPHER_MODE_DATA)))
233*5c591343SA. Cody Schuffelen #define TPMS_EMPTY_MARSHAL_REF                      \
234*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMS_EMPTY_DATA)))
235*5c591343SA. Cody Schuffelen #define TPMS_ENC_SCHEME_RSAES_MARSHAL_REF           TPMS_EMPTY_MARSHAL_REF
236*5c591343SA. Cody Schuffelen #define TPMS_ALGORITHM_DESCRIPTION_MARSHAL_REF      \
237*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMS_ALGORITHM_DESCRIPTION_DATA)))
238*5c591343SA. Cody Schuffelen #define TPMU_HA_MARSHAL_REF                         \
239*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMU_HA_DATA)))
240*5c591343SA. Cody Schuffelen #define TPMT_HA_MARSHAL_REF                         \
241*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMT_HA_DATA)))
242*5c591343SA. Cody Schuffelen #define TPM2B_DIGEST_MARSHAL_REF                    \
243*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPM2B_DIGEST_DATA)))
244*5c591343SA. Cody Schuffelen #define TPM2B_NONCE_MARSHAL_REF                     TPM2B_DIGEST_MARSHAL_REF
245*5c591343SA. Cody Schuffelen #define TPM2B_AUTH_MARSHAL_REF                      TPM2B_DIGEST_MARSHAL_REF
246*5c591343SA. Cody Schuffelen #define TPM2B_OPERAND_MARSHAL_REF                   TPM2B_DIGEST_MARSHAL_REF
247*5c591343SA. Cody Schuffelen #define TPM2B_DATA_MARSHAL_REF                      \
248*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPM2B_DATA_DATA)))
249*5c591343SA. Cody Schuffelen #define TPM2B_EVENT_MARSHAL_REF                     \
250*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPM2B_EVENT_DATA)))
251*5c591343SA. Cody Schuffelen #define TPM2B_MAX_BUFFER_MARSHAL_REF                \
252*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPM2B_MAX_BUFFER_DATA)))
253*5c591343SA. Cody Schuffelen #define TPM2B_MAX_NV_BUFFER_MARSHAL_REF             \
254*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPM2B_MAX_NV_BUFFER_DATA)))
255*5c591343SA. Cody Schuffelen #define TPM2B_TIMEOUT_MARSHAL_REF                   \
256*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPM2B_TIMEOUT_DATA)))
257*5c591343SA. Cody Schuffelen #define TPM2B_IV_MARSHAL_REF                        \
258*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPM2B_IV_DATA)))
259*5c591343SA. Cody Schuffelen #define NULL_UNION_MARSHAL_REF                      \
260*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, NULL_UNION_DATA)))
261*5c591343SA. Cody Schuffelen #define TPMU_NAME_MARSHAL_REF                       NULL_UNION_MARSHAL_REF
262*5c591343SA. Cody Schuffelen #define TPMU_SENSITIVE_CREATE_MARSHAL_REF           NULL_UNION_MARSHAL_REF
263*5c591343SA. Cody Schuffelen #define TPM2B_NAME_MARSHAL_REF                      \
264*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPM2B_NAME_DATA)))
265*5c591343SA. Cody Schuffelen #define TPMS_PCR_SELECT_MARSHAL_REF                 \
266*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMS_PCR_SELECT_DATA)))
267*5c591343SA. Cody Schuffelen #define TPMS_PCR_SELECTION_MARSHAL_REF              \
268*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMS_PCR_SELECTION_DATA)))
269*5c591343SA. Cody Schuffelen #define TPMT_TK_CREATION_MARSHAL_REF                \
270*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMT_TK_CREATION_DATA)))
271*5c591343SA. Cody Schuffelen #define TPMT_TK_VERIFIED_MARSHAL_REF                \
272*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMT_TK_VERIFIED_DATA)))
273*5c591343SA. Cody Schuffelen #define TPMT_TK_AUTH_MARSHAL_REF                    \
274*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMT_TK_AUTH_DATA)))
275*5c591343SA. Cody Schuffelen #define TPMT_TK_HASHCHECK_MARSHAL_REF               \
276*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMT_TK_HASHCHECK_DATA)))
277*5c591343SA. Cody Schuffelen #define TPMS_ALG_PROPERTY_MARSHAL_REF               \
278*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMS_ALG_PROPERTY_DATA)))
279*5c591343SA. Cody Schuffelen #define TPMS_TAGGED_PROPERTY_MARSHAL_REF            \
280*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMS_TAGGED_PROPERTY_DATA)))
281*5c591343SA. Cody Schuffelen #define TPMS_TAGGED_PCR_SELECT_MARSHAL_REF          \
282*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMS_TAGGED_PCR_SELECT_DATA)))
283*5c591343SA. Cody Schuffelen #define TPMS_TAGGED_POLICY_MARSHAL_REF              \
284*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMS_TAGGED_POLICY_DATA)))
285*5c591343SA. Cody Schuffelen #define TPMS_ACT_DATA_MARSHAL_REF                   \
286*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMS_ACT_DATA_DATA)))
287*5c591343SA. Cody Schuffelen #define TPML_CC_MARSHAL_REF                         \
288*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPML_CC_DATA)))
289*5c591343SA. Cody Schuffelen #define TPML_CCA_MARSHAL_REF                        \
290*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPML_CCA_DATA)))
291*5c591343SA. Cody Schuffelen #define TPML_ALG_MARSHAL_REF                        \
292*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPML_ALG_DATA)))
293*5c591343SA. Cody Schuffelen #define TPML_HANDLE_MARSHAL_REF                     \
294*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPML_HANDLE_DATA)))
295*5c591343SA. Cody Schuffelen #define TPML_DIGEST_MARSHAL_REF                     \
296*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPML_DIGEST_DATA)))
297*5c591343SA. Cody Schuffelen #define TPML_DIGEST_VALUES_MARSHAL_REF              \
298*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPML_DIGEST_VALUES_DATA)))
299*5c591343SA. Cody Schuffelen #define TPML_PCR_SELECTION_MARSHAL_REF              \
300*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPML_PCR_SELECTION_DATA)))
301*5c591343SA. Cody Schuffelen #define TPML_ALG_PROPERTY_MARSHAL_REF               \
302*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPML_ALG_PROPERTY_DATA)))
303*5c591343SA. Cody Schuffelen #define TPML_TAGGED_TPM_PROPERTY_MARSHAL_REF        \
304*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPML_TAGGED_TPM_PROPERTY_DATA)))
305*5c591343SA. Cody Schuffelen #define TPML_TAGGED_PCR_PROPERTY_MARSHAL_REF        \
306*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPML_TAGGED_PCR_PROPERTY_DATA)))
307*5c591343SA. Cody Schuffelen #define TPML_ECC_CURVE_MARSHAL_REF                  \
308*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPML_ECC_CURVE_DATA)))
309*5c591343SA. Cody Schuffelen #define TPML_TAGGED_POLICY_MARSHAL_REF              \
310*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPML_TAGGED_POLICY_DATA)))
311*5c591343SA. Cody Schuffelen #define TPML_ACT_DATA_MARSHAL_REF                   \
312*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPML_ACT_DATA_DATA)))
313*5c591343SA. Cody Schuffelen #define TPMU_CAPABILITIES_MARSHAL_REF               \
314*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMU_CAPABILITIES_DATA)))
315*5c591343SA. Cody Schuffelen #define TPMS_CAPABILITY_DATA_MARSHAL_REF            \
316*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMS_CAPABILITY_DATA_DATA)))
317*5c591343SA. Cody Schuffelen #define TPMS_CLOCK_INFO_MARSHAL_REF                 \
318*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMS_CLOCK_INFO_DATA)))
319*5c591343SA. Cody Schuffelen #define TPMS_TIME_INFO_MARSHAL_REF                  \
320*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMS_TIME_INFO_DATA)))
321*5c591343SA. Cody Schuffelen #define TPMS_TIME_ATTEST_INFO_MARSHAL_REF           \
322*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMS_TIME_ATTEST_INFO_DATA)))
323*5c591343SA. Cody Schuffelen #define TPMS_CERTIFY_INFO_MARSHAL_REF               \
324*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMS_CERTIFY_INFO_DATA)))
325*5c591343SA. Cody Schuffelen #define TPMS_QUOTE_INFO_MARSHAL_REF                 \
326*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMS_QUOTE_INFO_DATA)))
327*5c591343SA. Cody Schuffelen #define TPMS_COMMAND_AUDIT_INFO_MARSHAL_REF         \
328*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMS_COMMAND_AUDIT_INFO_DATA)))
329*5c591343SA. Cody Schuffelen #define TPMS_SESSION_AUDIT_INFO_MARSHAL_REF         \
330*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMS_SESSION_AUDIT_INFO_DATA)))
331*5c591343SA. Cody Schuffelen #define TPMS_CREATION_INFO_MARSHAL_REF              \
332*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMS_CREATION_INFO_DATA)))
333*5c591343SA. Cody Schuffelen #define TPMS_NV_CERTIFY_INFO_MARSHAL_REF            \
334*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMS_NV_CERTIFY_INFO_DATA)))
335*5c591343SA. Cody Schuffelen #define TPMS_NV_DIGEST_CERTIFY_INFO_MARSHAL_REF     \
336*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMS_NV_DIGEST_CERTIFY_INFO_DATA)))
337*5c591343SA. Cody Schuffelen #define TPMI_ST_ATTEST_MARSHAL_REF                  \
338*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMI_ST_ATTEST_DATA)))
339*5c591343SA. Cody Schuffelen #define TPMU_ATTEST_MARSHAL_REF                     \
340*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMU_ATTEST_DATA)))
341*5c591343SA. Cody Schuffelen #define TPMS_ATTEST_MARSHAL_REF                     \
342*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMS_ATTEST_DATA)))
343*5c591343SA. Cody Schuffelen #define TPM2B_ATTEST_MARSHAL_REF                    \
344*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPM2B_ATTEST_DATA)))
345*5c591343SA. Cody Schuffelen #define TPMS_AUTH_COMMAND_MARSHAL_REF               \
346*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMS_AUTH_COMMAND_DATA)))
347*5c591343SA. Cody Schuffelen #define TPMS_AUTH_RESPONSE_MARSHAL_REF              \
348*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMS_AUTH_RESPONSE_DATA)))
349*5c591343SA. Cody Schuffelen #define TPMI_TDES_KEY_BITS_MARSHAL_REF              \
350*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMI_TDES_KEY_BITS_DATA)))
351*5c591343SA. Cody Schuffelen #define TPMI_AES_KEY_BITS_MARSHAL_REF               \
352*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMI_AES_KEY_BITS_DATA)))
353*5c591343SA. Cody Schuffelen #define TPMI_SM4_KEY_BITS_MARSHAL_REF               \
354*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMI_SM4_KEY_BITS_DATA)))
355*5c591343SA. Cody Schuffelen #define TPMI_CAMELLIA_KEY_BITS_MARSHAL_REF          \
356*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMI_CAMELLIA_KEY_BITS_DATA)))
357*5c591343SA. Cody Schuffelen #define TPMU_SYM_KEY_BITS_MARSHAL_REF               \
358*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMU_SYM_KEY_BITS_DATA)))
359*5c591343SA. Cody Schuffelen #define TPMU_SYM_MODE_MARSHAL_REF                   \
360*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMU_SYM_MODE_DATA)))
361*5c591343SA. Cody Schuffelen #define TPMT_SYM_DEF_MARSHAL_REF                    \
362*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMT_SYM_DEF_DATA)))
363*5c591343SA. Cody Schuffelen #define TPMT_SYM_DEF_OBJECT_MARSHAL_REF             \
364*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMT_SYM_DEF_OBJECT_DATA)))
365*5c591343SA. Cody Schuffelen #define TPM2B_SYM_KEY_MARSHAL_REF                   \
366*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPM2B_SYM_KEY_DATA)))
367*5c591343SA. Cody Schuffelen #define TPMS_SYMCIPHER_PARMS_MARSHAL_REF            \
368*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMS_SYMCIPHER_PARMS_DATA)))
369*5c591343SA. Cody Schuffelen #define TPM2B_LABEL_MARSHAL_REF                     \
370*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPM2B_LABEL_DATA)))
371*5c591343SA. Cody Schuffelen #define TPMS_DERIVE_MARSHAL_REF                     \
372*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMS_DERIVE_DATA)))
373*5c591343SA. Cody Schuffelen #define TPM2B_DERIVE_MARSHAL_REF                    \
374*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPM2B_DERIVE_DATA)))
375*5c591343SA. Cody Schuffelen #define TPM2B_SENSITIVE_DATA_MARSHAL_REF            \
376*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPM2B_SENSITIVE_DATA_DATA)))
377*5c591343SA. Cody Schuffelen #define TPMS_SENSITIVE_CREATE_MARSHAL_REF           \
378*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMS_SENSITIVE_CREATE_DATA)))
379*5c591343SA. Cody Schuffelen #define TPM2B_SENSITIVE_CREATE_MARSHAL_REF          \
380*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPM2B_SENSITIVE_CREATE_DATA)))
381*5c591343SA. Cody Schuffelen #define TPMS_SCHEME_HASH_MARSHAL_REF                \
382*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMS_SCHEME_HASH_DATA)))
383*5c591343SA. Cody Schuffelen #define TPMS_SCHEME_HMAC_MARSHAL_REF                TPMS_SCHEME_HASH_MARSHAL_REF
384*5c591343SA. Cody Schuffelen #define TPMS_SIG_SCHEME_RSASSA_MARSHAL_REF          TPMS_SCHEME_HASH_MARSHAL_REF
385*5c591343SA. Cody Schuffelen #define TPMS_SIG_SCHEME_RSAPSS_MARSHAL_REF          TPMS_SCHEME_HASH_MARSHAL_REF
386*5c591343SA. Cody Schuffelen #define TPMS_SIG_SCHEME_ECDSA_MARSHAL_REF           TPMS_SCHEME_HASH_MARSHAL_REF
387*5c591343SA. Cody Schuffelen #define TPMS_SIG_SCHEME_SM2_MARSHAL_REF             TPMS_SCHEME_HASH_MARSHAL_REF
388*5c591343SA. Cody Schuffelen #define TPMS_SIG_SCHEME_ECSCHNORR_MARSHAL_REF       TPMS_SCHEME_HASH_MARSHAL_REF
389*5c591343SA. Cody Schuffelen #define TPMS_ENC_SCHEME_OAEP_MARSHAL_REF            TPMS_SCHEME_HASH_MARSHAL_REF
390*5c591343SA. Cody Schuffelen #define TPMS_KEY_SCHEME_ECDH_MARSHAL_REF            TPMS_SCHEME_HASH_MARSHAL_REF
391*5c591343SA. Cody Schuffelen #define TPMS_KEY_SCHEME_ECMQV_MARSHAL_REF           TPMS_SCHEME_HASH_MARSHAL_REF
392*5c591343SA. Cody Schuffelen #define TPMS_KDF_SCHEME_MGF1_MARSHAL_REF            TPMS_SCHEME_HASH_MARSHAL_REF
393*5c591343SA. Cody Schuffelen #define TPMS_KDF_SCHEME_KDF1_SP800_56A_MARSHAL_REF  TPMS_SCHEME_HASH_MARSHAL_REF
394*5c591343SA. Cody Schuffelen #define TPMS_KDF_SCHEME_KDF2_MARSHAL_REF            TPMS_SCHEME_HASH_MARSHAL_REF
395*5c591343SA. Cody Schuffelen #define TPMS_KDF_SCHEME_KDF1_SP800_108_MARSHAL_REF  TPMS_SCHEME_HASH_MARSHAL_REF
396*5c591343SA. Cody Schuffelen #define TPMS_SCHEME_ECDAA_MARSHAL_REF               \
397*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMS_SCHEME_ECDAA_DATA)))
398*5c591343SA. Cody Schuffelen #define TPMS_SIG_SCHEME_ECDAA_MARSHAL_REF           TPMS_SCHEME_ECDAA_MARSHAL_REF
399*5c591343SA. Cody Schuffelen #define TPMI_ALG_KEYEDHASH_SCHEME_MARSHAL_REF       \
400*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMI_ALG_KEYEDHASH_SCHEME_DATA)))
401*5c591343SA. Cody Schuffelen #define TPMS_SCHEME_XOR_MARSHAL_REF                 \
402*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMS_SCHEME_XOR_DATA)))
403*5c591343SA. Cody Schuffelen #define TPMU_SCHEME_KEYEDHASH_MARSHAL_REF           \
404*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMU_SCHEME_KEYEDHASH_DATA)))
405*5c591343SA. Cody Schuffelen #define TPMT_KEYEDHASH_SCHEME_MARSHAL_REF           \
406*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMT_KEYEDHASH_SCHEME_DATA)))
407*5c591343SA. Cody Schuffelen #define TPMU_SIG_SCHEME_MARSHAL_REF                 \
408*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMU_SIG_SCHEME_DATA)))
409*5c591343SA. Cody Schuffelen #define TPMT_SIG_SCHEME_MARSHAL_REF                 \
410*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMT_SIG_SCHEME_DATA)))
411*5c591343SA. Cody Schuffelen #define TPMU_KDF_SCHEME_MARSHAL_REF                 \
412*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMU_KDF_SCHEME_DATA)))
413*5c591343SA. Cody Schuffelen #define TPMT_KDF_SCHEME_MARSHAL_REF                 \
414*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMT_KDF_SCHEME_DATA)))
415*5c591343SA. Cody Schuffelen #define TPMI_ALG_ASYM_SCHEME_MARSHAL_REF            \
416*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMI_ALG_ASYM_SCHEME_DATA)))
417*5c591343SA. Cody Schuffelen #define TPMU_ASYM_SCHEME_MARSHAL_REF                \
418*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMU_ASYM_SCHEME_DATA)))
419*5c591343SA. Cody Schuffelen #define TPMI_ALG_RSA_SCHEME_MARSHAL_REF             \
420*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMI_ALG_RSA_SCHEME_DATA)))
421*5c591343SA. Cody Schuffelen #define TPMT_RSA_SCHEME_MARSHAL_REF                 \
422*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMT_RSA_SCHEME_DATA)))
423*5c591343SA. Cody Schuffelen #define TPMI_ALG_RSA_DECRYPT_MARSHAL_REF            \
424*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMI_ALG_RSA_DECRYPT_DATA)))
425*5c591343SA. Cody Schuffelen #define TPMT_RSA_DECRYPT_MARSHAL_REF                \
426*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMT_RSA_DECRYPT_DATA)))
427*5c591343SA. Cody Schuffelen #define TPM2B_PUBLIC_KEY_RSA_MARSHAL_REF            \
428*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPM2B_PUBLIC_KEY_RSA_DATA)))
429*5c591343SA. Cody Schuffelen #define TPMI_RSA_KEY_BITS_MARSHAL_REF               \
430*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMI_RSA_KEY_BITS_DATA)))
431*5c591343SA. Cody Schuffelen #define TPM2B_PRIVATE_KEY_RSA_MARSHAL_REF           \
432*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPM2B_PRIVATE_KEY_RSA_DATA)))
433*5c591343SA. Cody Schuffelen #define TPM2B_ECC_PARAMETER_MARSHAL_REF             \
434*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPM2B_ECC_PARAMETER_DATA)))
435*5c591343SA. Cody Schuffelen #define TPMS_ECC_POINT_MARSHAL_REF                  \
436*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMS_ECC_POINT_DATA)))
437*5c591343SA. Cody Schuffelen #define TPM2B_ECC_POINT_MARSHAL_REF                 \
438*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPM2B_ECC_POINT_DATA)))
439*5c591343SA. Cody Schuffelen #define TPMI_ALG_ECC_SCHEME_MARSHAL_REF             \
440*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMI_ALG_ECC_SCHEME_DATA)))
441*5c591343SA. Cody Schuffelen #define TPMI_ECC_CURVE_MARSHAL_REF                  \
442*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMI_ECC_CURVE_DATA)))
443*5c591343SA. Cody Schuffelen #define TPMT_ECC_SCHEME_MARSHAL_REF                 \
444*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMT_ECC_SCHEME_DATA)))
445*5c591343SA. Cody Schuffelen #define TPMS_ALGORITHM_DETAIL_ECC_MARSHAL_REF       \
446*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMS_ALGORITHM_DETAIL_ECC_DATA)))
447*5c591343SA. Cody Schuffelen #define TPMS_SIGNATURE_RSA_MARSHAL_REF              \
448*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMS_SIGNATURE_RSA_DATA)))
449*5c591343SA. Cody Schuffelen #define TPMS_SIGNATURE_RSASSA_MARSHAL_REF           TPMS_SIGNATURE_RSA_MARSHAL_REF
450*5c591343SA. Cody Schuffelen #define TPMS_SIGNATURE_RSAPSS_MARSHAL_REF           TPMS_SIGNATURE_RSA_MARSHAL_REF
451*5c591343SA. Cody Schuffelen #define TPMS_SIGNATURE_ECC_MARSHAL_REF              \
452*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMS_SIGNATURE_ECC_DATA)))
453*5c591343SA. Cody Schuffelen #define TPMS_SIGNATURE_ECDAA_MARSHAL_REF            TPMS_SIGNATURE_ECC_MARSHAL_REF
454*5c591343SA. Cody Schuffelen #define TPMS_SIGNATURE_ECDSA_MARSHAL_REF            TPMS_SIGNATURE_ECC_MARSHAL_REF
455*5c591343SA. Cody Schuffelen #define TPMS_SIGNATURE_SM2_MARSHAL_REF              TPMS_SIGNATURE_ECC_MARSHAL_REF
456*5c591343SA. Cody Schuffelen #define TPMS_SIGNATURE_ECSCHNORR_MARSHAL_REF        TPMS_SIGNATURE_ECC_MARSHAL_REF
457*5c591343SA. Cody Schuffelen #define TPMU_SIGNATURE_MARSHAL_REF                  \
458*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMU_SIGNATURE_DATA)))
459*5c591343SA. Cody Schuffelen #define TPMT_SIGNATURE_MARSHAL_REF                  \
460*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMT_SIGNATURE_DATA)))
461*5c591343SA. Cody Schuffelen #define TPMU_ENCRYPTED_SECRET_MARSHAL_REF           \
462*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMU_ENCRYPTED_SECRET_DATA)))
463*5c591343SA. Cody Schuffelen #define TPM2B_ENCRYPTED_SECRET_MARSHAL_REF          \
464*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPM2B_ENCRYPTED_SECRET_DATA)))
465*5c591343SA. Cody Schuffelen #define TPMI_ALG_PUBLIC_MARSHAL_REF                 \
466*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMI_ALG_PUBLIC_DATA)))
467*5c591343SA. Cody Schuffelen #define TPMU_PUBLIC_ID_MARSHAL_REF                  \
468*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMU_PUBLIC_ID_DATA)))
469*5c591343SA. Cody Schuffelen #define TPMS_KEYEDHASH_PARMS_MARSHAL_REF            \
470*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMS_KEYEDHASH_PARMS_DATA)))
471*5c591343SA. Cody Schuffelen #define TPMS_RSA_PARMS_MARSHAL_REF                  \
472*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMS_RSA_PARMS_DATA)))
473*5c591343SA. Cody Schuffelen #define TPMS_ECC_PARMS_MARSHAL_REF                  \
474*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMS_ECC_PARMS_DATA)))
475*5c591343SA. Cody Schuffelen #define TPMU_PUBLIC_PARMS_MARSHAL_REF               \
476*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMU_PUBLIC_PARMS_DATA)))
477*5c591343SA. Cody Schuffelen #define TPMT_PUBLIC_PARMS_MARSHAL_REF               \
478*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMT_PUBLIC_PARMS_DATA)))
479*5c591343SA. Cody Schuffelen #define TPMT_PUBLIC_MARSHAL_REF                     \
480*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMT_PUBLIC_DATA)))
481*5c591343SA. Cody Schuffelen #define TPM2B_PUBLIC_MARSHAL_REF                    \
482*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPM2B_PUBLIC_DATA)))
483*5c591343SA. Cody Schuffelen #define TPM2B_TEMPLATE_MARSHAL_REF                  \
484*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPM2B_TEMPLATE_DATA)))
485*5c591343SA. Cody Schuffelen #define TPM2B_PRIVATE_VENDOR_SPECIFIC_MARSHAL_REF   \
486*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPM2B_PRIVATE_VENDOR_SPECIFIC_DATA)))
487*5c591343SA. Cody Schuffelen #define TPMU_SENSITIVE_COMPOSITE_MARSHAL_REF        \
488*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMU_SENSITIVE_COMPOSITE_DATA)))
489*5c591343SA. Cody Schuffelen #define TPMT_SENSITIVE_MARSHAL_REF                  \
490*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMT_SENSITIVE_DATA)))
491*5c591343SA. Cody Schuffelen #define TPM2B_SENSITIVE_MARSHAL_REF                 \
492*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPM2B_SENSITIVE_DATA)))
493*5c591343SA. Cody Schuffelen #define TPM2B_PRIVATE_MARSHAL_REF                   \
494*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPM2B_PRIVATE_DATA)))
495*5c591343SA. Cody Schuffelen #define TPM2B_ID_OBJECT_MARSHAL_REF                 \
496*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPM2B_ID_OBJECT_DATA)))
497*5c591343SA. Cody Schuffelen #define TPMS_NV_PIN_COUNTER_PARAMETERS_MARSHAL_REF  \
498*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMS_NV_PIN_COUNTER_PARAMETERS_DATA)))
499*5c591343SA. Cody Schuffelen #define TPMA_NV_MARSHAL_REF                         \
500*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMA_NV_DATA)))
501*5c591343SA. Cody Schuffelen #define TPMS_NV_PUBLIC_MARSHAL_REF                  \
502*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMS_NV_PUBLIC_DATA)))
503*5c591343SA. Cody Schuffelen #define TPM2B_NV_PUBLIC_MARSHAL_REF                 \
504*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPM2B_NV_PUBLIC_DATA)))
505*5c591343SA. Cody Schuffelen #define TPM2B_CONTEXT_SENSITIVE_MARSHAL_REF         \
506*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPM2B_CONTEXT_SENSITIVE_DATA)))
507*5c591343SA. Cody Schuffelen #define TPMS_CONTEXT_DATA_MARSHAL_REF               \
508*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMS_CONTEXT_DATA_DATA)))
509*5c591343SA. Cody Schuffelen #define TPM2B_CONTEXT_DATA_MARSHAL_REF              \
510*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPM2B_CONTEXT_DATA_DATA)))
511*5c591343SA. Cody Schuffelen #define TPMS_CONTEXT_MARSHAL_REF                    \
512*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMS_CONTEXT_DATA)))
513*5c591343SA. Cody Schuffelen #define TPMS_CREATION_DATA_MARSHAL_REF              \
514*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMS_CREATION_DATA_DATA)))
515*5c591343SA. Cody Schuffelen #define TPM2B_CREATION_DATA_MARSHAL_REF             \
516*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPM2B_CREATION_DATA_DATA)))
517*5c591343SA. Cody Schuffelen #define TPM_AT_MARSHAL_REF                          \
518*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPM_AT_DATA)))
519*5c591343SA. Cody Schuffelen #define TPMS_AC_OUTPUT_MARSHAL_REF                  \
520*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPMS_AC_OUTPUT_DATA)))
521*5c591343SA. Cody Schuffelen #define TPML_AC_CAPABILITIES_MARSHAL_REF            \
522*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, TPML_AC_CAPABILITIES_DATA)))
523*5c591343SA. Cody Schuffelen #define Type00_MARSHAL_REF                          \
524*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, Type00_DATA)))
525*5c591343SA. Cody Schuffelen #define Type01_MARSHAL_REF                          \
526*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, Type01_DATA)))
527*5c591343SA. Cody Schuffelen #define Type02_MARSHAL_REF                          \
528*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, Type02_DATA)))
529*5c591343SA. Cody Schuffelen #define Type03_MARSHAL_REF                          \
530*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, Type03_DATA)))
531*5c591343SA. Cody Schuffelen #define Type04_MARSHAL_REF                          \
532*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, Type04_DATA)))
533*5c591343SA. Cody Schuffelen #define Type05_MARSHAL_REF                          \
534*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, Type05_DATA)))
535*5c591343SA. Cody Schuffelen #define Type06_MARSHAL_REF                          \
536*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, Type06_DATA)))
537*5c591343SA. Cody Schuffelen #define Type07_MARSHAL_REF                          \
538*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, Type07_DATA)))
539*5c591343SA. Cody Schuffelen #define Type08_MARSHAL_REF                          \
540*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, Type08_DATA)))
541*5c591343SA. Cody Schuffelen #define Type09_MARSHAL_REF                          Type08_MARSHAL_REF
542*5c591343SA. Cody Schuffelen #define Type14_MARSHAL_REF                          Type08_MARSHAL_REF
543*5c591343SA. Cody Schuffelen #define Type10_MARSHAL_REF                          \
544*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, Type10_DATA)))
545*5c591343SA. Cody Schuffelen #define Type11_MARSHAL_REF                          \
546*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, Type11_DATA)))
547*5c591343SA. Cody Schuffelen #define Type12_MARSHAL_REF                          \
548*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, Type12_DATA)))
549*5c591343SA. Cody Schuffelen #define Type13_MARSHAL_REF                          \
550*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, Type13_DATA)))
551*5c591343SA. Cody Schuffelen #define Type15_MARSHAL_REF                          \
552*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, Type15_DATA)))
553*5c591343SA. Cody Schuffelen #define Type16_MARSHAL_REF                          Type15_MARSHAL_REF
554*5c591343SA. Cody Schuffelen #define Type17_MARSHAL_REF                          \
555*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, Type17_DATA)))
556*5c591343SA. Cody Schuffelen #define Type18_MARSHAL_REF                          \
557*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, Type18_DATA)))
558*5c591343SA. Cody Schuffelen #define Type19_MARSHAL_REF                          \
559*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, Type19_DATA)))
560*5c591343SA. Cody Schuffelen #define Type20_MARSHAL_REF                          \
561*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, Type20_DATA)))
562*5c591343SA. Cody Schuffelen #define Type21_MARSHAL_REF                          Type20_MARSHAL_REF
563*5c591343SA. Cody Schuffelen #define Type22_MARSHAL_REF                          \
564*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, Type22_DATA)))
565*5c591343SA. Cody Schuffelen #define Type23_MARSHAL_REF                          \
566*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, Type23_DATA)))
567*5c591343SA. Cody Schuffelen #define Type24_MARSHAL_REF                          \
568*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, Type24_DATA)))
569*5c591343SA. Cody Schuffelen #define Type25_MARSHAL_REF                          \
570*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, Type25_DATA)))
571*5c591343SA. Cody Schuffelen #define Type26_MARSHAL_REF                          \
572*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, Type26_DATA)))
573*5c591343SA. Cody Schuffelen #define Type27_MARSHAL_REF                          \
574*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, Type27_DATA)))
575*5c591343SA. Cody Schuffelen #define Type28_MARSHAL_REF                          \
576*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, Type28_DATA)))
577*5c591343SA. Cody Schuffelen #define Type29_MARSHAL_REF                          \
578*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, Type29_DATA)))
579*5c591343SA. Cody Schuffelen #define Type30_MARSHAL_REF                          \
580*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, Type30_DATA)))
581*5c591343SA. Cody Schuffelen #define Type31_MARSHAL_REF                          \
582*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, Type31_DATA)))
583*5c591343SA. Cody Schuffelen #define Type32_MARSHAL_REF                          \
584*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, Type32_DATA)))
585*5c591343SA. Cody Schuffelen #define Type33_MARSHAL_REF                          \
586*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, Type33_DATA)))
587*5c591343SA. Cody Schuffelen #define Type34_MARSHAL_REF                          \
588*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, Type34_DATA)))
589*5c591343SA. Cody Schuffelen #define Type35_MARSHAL_REF                          \
590*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, Type35_DATA)))
591*5c591343SA. Cody Schuffelen #define Type36_MARSHAL_REF                          \
592*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, Type36_DATA)))
593*5c591343SA. Cody Schuffelen #define Type37_MARSHAL_REF                          \
594*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, Type37_DATA)))
595*5c591343SA. Cody Schuffelen #define Type38_MARSHAL_REF                          \
596*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, Type38_DATA)))
597*5c591343SA. Cody Schuffelen #define Type39_MARSHAL_REF                          \
598*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, Type39_DATA)))
599*5c591343SA. Cody Schuffelen #define Type40_MARSHAL_REF                          \
600*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, Type40_DATA)))
601*5c591343SA. Cody Schuffelen #define Type41_MARSHAL_REF                          \
602*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, Type41_DATA)))
603*5c591343SA. Cody Schuffelen #define Type42_MARSHAL_REF                          \
604*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, Type42_DATA)))
605*5c591343SA. Cody Schuffelen #define Type43_MARSHAL_REF                          \
606*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, Type43_DATA)))
607*5c591343SA. Cody Schuffelen #define Type44_MARSHAL_REF                          \
608*5c591343SA. Cody Schuffelen             ((UINT16)(offsetof(MarshalData_st, Type44_DATA)))
609*5c591343SA. Cody Schuffelen 
610*5c591343SA. Cody Schuffelen 
611*5c591343SA. Cody Schuffelen //#defines to change calling sequence for code using marshaling
612*5c591343SA. Cody Schuffelen #define UINT8_Unmarshal(target, buffer, size)                                       \
613*5c591343SA. Cody Schuffelen     Unmarshal(UINT8_MARSHAL_REF, (target), (buffer), (size))
614*5c591343SA. Cody Schuffelen #define UINT8_Marshal(source, buffer, size)                                         \
615*5c591343SA. Cody Schuffelen     Marshal(UINT8_MARSHAL_REF, (source), (buffer), (size))
616*5c591343SA. Cody Schuffelen #define BYTE_Unmarshal(target, buffer, size)                                        \
617*5c591343SA. Cody Schuffelen     Unmarshal(UINT8_MARSHAL_REF, (target), (buffer), (size))
618*5c591343SA. Cody Schuffelen #define BYTE_Marshal(source, buffer, size)                                          \
619*5c591343SA. Cody Schuffelen     Marshal(UINT8_MARSHAL_REF, (source), (buffer), (size))
620*5c591343SA. Cody Schuffelen #define INT8_Unmarshal(target, buffer, size)                                        \
621*5c591343SA. Cody Schuffelen     Unmarshal(INT8_MARSHAL_REF, (target), (buffer), (size))
622*5c591343SA. Cody Schuffelen #define INT8_Marshal(source, buffer, size)                                          \
623*5c591343SA. Cody Schuffelen     Marshal(INT8_MARSHAL_REF, (source), (buffer), (size))
624*5c591343SA. Cody Schuffelen #define UINT16_Unmarshal(target, buffer, size)                                      \
625*5c591343SA. Cody Schuffelen     Unmarshal(UINT16_MARSHAL_REF, (target), (buffer), (size))
626*5c591343SA. Cody Schuffelen #define UINT16_Marshal(source, buffer, size)                                        \
627*5c591343SA. Cody Schuffelen     Marshal(UINT16_MARSHAL_REF, (source), (buffer), (size))
628*5c591343SA. Cody Schuffelen #define INT16_Unmarshal(target, buffer, size)                                       \
629*5c591343SA. Cody Schuffelen     Unmarshal(INT16_MARSHAL_REF, (target), (buffer), (size))
630*5c591343SA. Cody Schuffelen #define INT16_Marshal(source, buffer, size)                                         \
631*5c591343SA. Cody Schuffelen     Marshal(INT16_MARSHAL_REF, (source), (buffer), (size))
632*5c591343SA. Cody Schuffelen #define UINT32_Unmarshal(target, buffer, size)                                      \
633*5c591343SA. Cody Schuffelen     Unmarshal(UINT32_MARSHAL_REF, (target), (buffer), (size))
634*5c591343SA. Cody Schuffelen #define UINT32_Marshal(source, buffer, size)                                        \
635*5c591343SA. Cody Schuffelen     Marshal(UINT32_MARSHAL_REF, (source), (buffer), (size))
636*5c591343SA. Cody Schuffelen #define INT32_Unmarshal(target, buffer, size)                                       \
637*5c591343SA. Cody Schuffelen     Unmarshal(INT32_MARSHAL_REF, (target), (buffer), (size))
638*5c591343SA. Cody Schuffelen #define INT32_Marshal(source, buffer, size)                                         \
639*5c591343SA. Cody Schuffelen     Marshal(INT32_MARSHAL_REF, (source), (buffer), (size))
640*5c591343SA. Cody Schuffelen #define UINT64_Unmarshal(target, buffer, size)                                      \
641*5c591343SA. Cody Schuffelen     Unmarshal(UINT64_MARSHAL_REF, (target), (buffer), (size))
642*5c591343SA. Cody Schuffelen #define UINT64_Marshal(source, buffer, size)                                        \
643*5c591343SA. Cody Schuffelen     Marshal(UINT64_MARSHAL_REF, (source), (buffer), (size))
644*5c591343SA. Cody Schuffelen #define INT64_Unmarshal(target, buffer, size)                                       \
645*5c591343SA. Cody Schuffelen     Unmarshal(INT64_MARSHAL_REF, (target), (buffer), (size))
646*5c591343SA. Cody Schuffelen #define INT64_Marshal(source, buffer, size)                                         \
647*5c591343SA. Cody Schuffelen     Marshal(INT64_MARSHAL_REF, (source), (buffer), (size))
648*5c591343SA. Cody Schuffelen #define TPM_ALGORITHM_ID_Unmarshal(target, buffer, size)                            \
649*5c591343SA. Cody Schuffelen     Unmarshal(TPM_ALGORITHM_ID_MARSHAL_REF, (target), (buffer), (size))
650*5c591343SA. Cody Schuffelen #define TPM_ALGORITHM_ID_Marshal(source, buffer, size)                              \
651*5c591343SA. Cody Schuffelen     Marshal(TPM_ALGORITHM_ID_MARSHAL_REF, (source), (buffer), (size))
652*5c591343SA. Cody Schuffelen #define TPM_MODIFIER_INDICATOR_Unmarshal(target, buffer, size)                      \
653*5c591343SA. Cody Schuffelen     Unmarshal(TPM_MODIFIER_INDICATOR_MARSHAL_REF, (target), (buffer), (size))
654*5c591343SA. Cody Schuffelen #define TPM_MODIFIER_INDICATOR_Marshal(source, buffer, size)                        \
655*5c591343SA. Cody Schuffelen     Marshal(TPM_MODIFIER_INDICATOR_MARSHAL_REF, (source), (buffer), (size))
656*5c591343SA. Cody Schuffelen #define TPM_AUTHORIZATION_SIZE_Unmarshal(target, buffer, size)                      \
657*5c591343SA. Cody Schuffelen     Unmarshal(TPM_AUTHORIZATION_SIZE_MARSHAL_REF, (target), (buffer), (size))
658*5c591343SA. Cody Schuffelen #define TPM_AUTHORIZATION_SIZE_Marshal(source, buffer, size)                        \
659*5c591343SA. Cody Schuffelen     Marshal(TPM_AUTHORIZATION_SIZE_MARSHAL_REF, (source), (buffer), (size))
660*5c591343SA. Cody Schuffelen #define TPM_PARAMETER_SIZE_Unmarshal(target, buffer, size)                          \
661*5c591343SA. Cody Schuffelen     Unmarshal(TPM_PARAMETER_SIZE_MARSHAL_REF, (target), (buffer), (size))
662*5c591343SA. Cody Schuffelen #define TPM_PARAMETER_SIZE_Marshal(source, buffer, size)                            \
663*5c591343SA. Cody Schuffelen     Marshal(TPM_PARAMETER_SIZE_MARSHAL_REF, (source), (buffer), (size))
664*5c591343SA. Cody Schuffelen #define TPM_KEY_SIZE_Unmarshal(target, buffer, size)                                \
665*5c591343SA. Cody Schuffelen     Unmarshal(TPM_KEY_SIZE_MARSHAL_REF, (target), (buffer), (size))
666*5c591343SA. Cody Schuffelen #define TPM_KEY_SIZE_Marshal(source, buffer, size)                                  \
667*5c591343SA. Cody Schuffelen     Marshal(TPM_KEY_SIZE_MARSHAL_REF, (source), (buffer), (size))
668*5c591343SA. Cody Schuffelen #define TPM_KEY_BITS_Unmarshal(target, buffer, size)                                \
669*5c591343SA. Cody Schuffelen     Unmarshal(TPM_KEY_BITS_MARSHAL_REF, (target), (buffer), (size))
670*5c591343SA. Cody Schuffelen #define TPM_KEY_BITS_Marshal(source, buffer, size)                                  \
671*5c591343SA. Cody Schuffelen     Marshal(TPM_KEY_BITS_MARSHAL_REF, (source), (buffer), (size))
672*5c591343SA. Cody Schuffelen #define TPM_CONSTANTS32_Marshal(source, buffer, size)                               \
673*5c591343SA. Cody Schuffelen     Marshal(TPM_CONSTANTS32_MARSHAL_REF, (source), (buffer), (size))
674*5c591343SA. Cody Schuffelen #define TPM_ALG_ID_Unmarshal(target, buffer, size)                                  \
675*5c591343SA. Cody Schuffelen     Unmarshal(TPM_ALG_ID_MARSHAL_REF, (target), (buffer), (size))
676*5c591343SA. Cody Schuffelen #define TPM_ALG_ID_Marshal(source, buffer, size)                                    \
677*5c591343SA. Cody Schuffelen     Marshal(TPM_ALG_ID_MARSHAL_REF, (source), (buffer), (size))
678*5c591343SA. Cody Schuffelen #define TPM_ECC_CURVE_Unmarshal(target, buffer, size)                               \
679*5c591343SA. Cody Schuffelen     Unmarshal(TPM_ECC_CURVE_MARSHAL_REF, (target), (buffer), (size))
680*5c591343SA. Cody Schuffelen #define TPM_ECC_CURVE_Marshal(source, buffer, size)                                 \
681*5c591343SA. Cody Schuffelen     Marshal(TPM_ECC_CURVE_MARSHAL_REF, (source), (buffer), (size))
682*5c591343SA. Cody Schuffelen #define TPM_CC_Unmarshal(target, buffer, size)                                      \
683*5c591343SA. Cody Schuffelen     Unmarshal(TPM_CC_MARSHAL_REF, (target), (buffer), (size))
684*5c591343SA. Cody Schuffelen #define TPM_CC_Marshal(source, buffer, size)                                        \
685*5c591343SA. Cody Schuffelen     Marshal(TPM_CC_MARSHAL_REF, (source), (buffer), (size))
686*5c591343SA. Cody Schuffelen #define TPM_RC_Marshal(source, buffer, size)                                        \
687*5c591343SA. Cody Schuffelen     Marshal(TPM_RC_MARSHAL_REF, (source), (buffer), (size))
688*5c591343SA. Cody Schuffelen #define TPM_CLOCK_ADJUST_Unmarshal(target, buffer, size)                            \
689*5c591343SA. Cody Schuffelen     Unmarshal(TPM_CLOCK_ADJUST_MARSHAL_REF, (target), (buffer), (size))
690*5c591343SA. Cody Schuffelen #define TPM_EO_Unmarshal(target, buffer, size)                                      \
691*5c591343SA. Cody Schuffelen     Unmarshal(TPM_EO_MARSHAL_REF, (target), (buffer), (size))
692*5c591343SA. Cody Schuffelen #define TPM_EO_Marshal(source, buffer, size)                                        \
693*5c591343SA. Cody Schuffelen     Marshal(TPM_EO_MARSHAL_REF, (source), (buffer), (size))
694*5c591343SA. Cody Schuffelen #define TPM_ST_Unmarshal(target, buffer, size)                                      \
695*5c591343SA. Cody Schuffelen     Unmarshal(TPM_ST_MARSHAL_REF, (target), (buffer), (size))
696*5c591343SA. Cody Schuffelen #define TPM_ST_Marshal(source, buffer, size)                                        \
697*5c591343SA. Cody Schuffelen     Marshal(TPM_ST_MARSHAL_REF, (source), (buffer), (size))
698*5c591343SA. Cody Schuffelen #define TPM_SU_Unmarshal(target, buffer, size)                                      \
699*5c591343SA. Cody Schuffelen     Unmarshal(TPM_SU_MARSHAL_REF, (target), (buffer), (size))
700*5c591343SA. Cody Schuffelen #define TPM_SE_Unmarshal(target, buffer, size)                                      \
701*5c591343SA. Cody Schuffelen     Unmarshal(TPM_SE_MARSHAL_REF, (target), (buffer), (size))
702*5c591343SA. Cody Schuffelen #define TPM_CAP_Unmarshal(target, buffer, size)                                     \
703*5c591343SA. Cody Schuffelen     Unmarshal(TPM_CAP_MARSHAL_REF, (target), (buffer), (size))
704*5c591343SA. Cody Schuffelen #define TPM_CAP_Marshal(source, buffer, size)                                       \
705*5c591343SA. Cody Schuffelen     Marshal(TPM_CAP_MARSHAL_REF, (source), (buffer), (size))
706*5c591343SA. Cody Schuffelen #define TPM_PT_Unmarshal(target, buffer, size)                                      \
707*5c591343SA. Cody Schuffelen     Unmarshal(TPM_PT_MARSHAL_REF, (target), (buffer), (size))
708*5c591343SA. Cody Schuffelen #define TPM_PT_Marshal(source, buffer, size)                                        \
709*5c591343SA. Cody Schuffelen     Marshal(TPM_PT_MARSHAL_REF, (source), (buffer), (size))
710*5c591343SA. Cody Schuffelen #define TPM_PT_PCR_Unmarshal(target, buffer, size)                                  \
711*5c591343SA. Cody Schuffelen     Unmarshal(TPM_PT_PCR_MARSHAL_REF, (target), (buffer), (size))
712*5c591343SA. Cody Schuffelen #define TPM_PT_PCR_Marshal(source, buffer, size)                                    \
713*5c591343SA. Cody Schuffelen     Marshal(TPM_PT_PCR_MARSHAL_REF, (source), (buffer), (size))
714*5c591343SA. Cody Schuffelen #define TPM_PS_Marshal(source, buffer, size)                                        \
715*5c591343SA. Cody Schuffelen     Marshal(TPM_PS_MARSHAL_REF, (source), (buffer), (size))
716*5c591343SA. Cody Schuffelen #define TPM_HANDLE_Unmarshal(target, buffer, size)                                  \
717*5c591343SA. Cody Schuffelen     Unmarshal(TPM_HANDLE_MARSHAL_REF, (target), (buffer), (size))
718*5c591343SA. Cody Schuffelen #define TPM_HANDLE_Marshal(source, buffer, size)                                    \
719*5c591343SA. Cody Schuffelen     Marshal(TPM_HANDLE_MARSHAL_REF, (source), (buffer), (size))
720*5c591343SA. Cody Schuffelen #define TPM_HT_Unmarshal(target, buffer, size)                                      \
721*5c591343SA. Cody Schuffelen     Unmarshal(TPM_HT_MARSHAL_REF, (target), (buffer), (size))
722*5c591343SA. Cody Schuffelen #define TPM_HT_Marshal(source, buffer, size)                                        \
723*5c591343SA. Cody Schuffelen     Marshal(TPM_HT_MARSHAL_REF, (source), (buffer), (size))
724*5c591343SA. Cody Schuffelen #define TPM_RH_Unmarshal(target, buffer, size)                                      \
725*5c591343SA. Cody Schuffelen     Unmarshal(TPM_RH_MARSHAL_REF, (target), (buffer), (size))
726*5c591343SA. Cody Schuffelen #define TPM_RH_Marshal(source, buffer, size)                                        \
727*5c591343SA. Cody Schuffelen     Marshal(TPM_RH_MARSHAL_REF, (source), (buffer), (size))
728*5c591343SA. Cody Schuffelen #define TPM_HC_Unmarshal(target, buffer, size)                                      \
729*5c591343SA. Cody Schuffelen     Unmarshal(TPM_HC_MARSHAL_REF, (target), (buffer), (size))
730*5c591343SA. Cody Schuffelen #define TPM_HC_Marshal(source, buffer, size)                                        \
731*5c591343SA. Cody Schuffelen     Marshal(TPM_HC_MARSHAL_REF, (source), (buffer), (size))
732*5c591343SA. Cody Schuffelen #define TPMA_ALGORITHM_Unmarshal(target, buffer, size)                              \
733*5c591343SA. Cody Schuffelen     Unmarshal(TPMA_ALGORITHM_MARSHAL_REF, (target), (buffer), (size))
734*5c591343SA. Cody Schuffelen #define TPMA_ALGORITHM_Marshal(source, buffer, size)                                \
735*5c591343SA. Cody Schuffelen     Marshal(TPMA_ALGORITHM_MARSHAL_REF, (source), (buffer), (size))
736*5c591343SA. Cody Schuffelen #define TPMA_OBJECT_Unmarshal(target, buffer, size)                                 \
737*5c591343SA. Cody Schuffelen     Unmarshal(TPMA_OBJECT_MARSHAL_REF, (target), (buffer), (size))
738*5c591343SA. Cody Schuffelen #define TPMA_OBJECT_Marshal(source, buffer, size)                                   \
739*5c591343SA. Cody Schuffelen     Marshal(TPMA_OBJECT_MARSHAL_REF, (source), (buffer), (size))
740*5c591343SA. Cody Schuffelen #define TPMA_SESSION_Unmarshal(target, buffer, size)                                \
741*5c591343SA. Cody Schuffelen     Unmarshal(TPMA_SESSION_MARSHAL_REF, (target), (buffer), (size))
742*5c591343SA. Cody Schuffelen #define TPMA_SESSION_Marshal(source, buffer, size)                                  \
743*5c591343SA. Cody Schuffelen     Marshal(TPMA_SESSION_MARSHAL_REF, (source), (buffer), (size))
744*5c591343SA. Cody Schuffelen #define TPMA_LOCALITY_Unmarshal(target, buffer, size)                               \
745*5c591343SA. Cody Schuffelen     Unmarshal(TPMA_LOCALITY_MARSHAL_REF, (target), (buffer), (size))
746*5c591343SA. Cody Schuffelen #define TPMA_LOCALITY_Marshal(source, buffer, size)                                 \
747*5c591343SA. Cody Schuffelen     Marshal(TPMA_LOCALITY_MARSHAL_REF, (source), (buffer), (size))
748*5c591343SA. Cody Schuffelen #define TPMA_PERMANENT_Marshal(source, buffer, size)                                \
749*5c591343SA. Cody Schuffelen     Marshal(TPMA_PERMANENT_MARSHAL_REF, (source), (buffer), (size))
750*5c591343SA. Cody Schuffelen #define TPMA_STARTUP_CLEAR_Marshal(source, buffer, size)                            \
751*5c591343SA. Cody Schuffelen     Marshal(TPMA_STARTUP_CLEAR_MARSHAL_REF, (source), (buffer), (size))
752*5c591343SA. Cody Schuffelen #define TPMA_MEMORY_Marshal(source, buffer, size)                                   \
753*5c591343SA. Cody Schuffelen     Marshal(TPMA_MEMORY_MARSHAL_REF, (source), (buffer), (size))
754*5c591343SA. Cody Schuffelen #define TPMA_CC_Marshal(source, buffer, size)                                       \
755*5c591343SA. Cody Schuffelen     Marshal(TPMA_CC_MARSHAL_REF, (source), (buffer), (size))
756*5c591343SA. Cody Schuffelen #define TPMA_MODES_Marshal(source, buffer, size)                                    \
757*5c591343SA. Cody Schuffelen     Marshal(TPMA_MODES_MARSHAL_REF, (source), (buffer), (size))
758*5c591343SA. Cody Schuffelen #define TPMA_X509_KEY_USAGE_Marshal(source, buffer, size)                           \
759*5c591343SA. Cody Schuffelen     Marshal(TPMA_X509_KEY_USAGE_MARSHAL_REF, (source), (buffer), (size))
760*5c591343SA. Cody Schuffelen #define TPMA_ACT_Unmarshal(target, buffer, size)                                    \
761*5c591343SA. Cody Schuffelen     Unmarshal(TPMA_ACT_MARSHAL_REF, (target), (buffer), (size))
762*5c591343SA. Cody Schuffelen #define TPMA_ACT_Marshal(source, buffer, size)                                      \
763*5c591343SA. Cody Schuffelen     Marshal(TPMA_ACT_MARSHAL_REF, (source), (buffer), (size))
764*5c591343SA. Cody Schuffelen #define TPMI_YES_NO_Unmarshal(target, buffer, size)                                 \
765*5c591343SA. Cody Schuffelen     Unmarshal(TPMI_YES_NO_MARSHAL_REF, (target), (buffer), (size))
766*5c591343SA. Cody Schuffelen #define TPMI_YES_NO_Marshal(source, buffer, size)                                   \
767*5c591343SA. Cody Schuffelen     Marshal(TPMI_YES_NO_MARSHAL_REF, (source), (buffer), (size))
768*5c591343SA. Cody Schuffelen #define TPMI_DH_OBJECT_Unmarshal(target, buffer, size, flag)                        \
769*5c591343SA. Cody Schuffelen     Unmarshal(TPMI_DH_OBJECT_MARSHAL_REF|(flag ? NULL_FLAG : 0), (target), (buffer),\
770*5c591343SA. Cody Schuffelen       (size))
771*5c591343SA. Cody Schuffelen #define TPMI_DH_OBJECT_Marshal(source, buffer, size)                                \
772*5c591343SA. Cody Schuffelen     Marshal(TPMI_DH_OBJECT_MARSHAL_REF, (source), (buffer), (size))
773*5c591343SA. Cody Schuffelen #define TPMI_DH_PARENT_Unmarshal(target, buffer, size, flag)                        \
774*5c591343SA. Cody Schuffelen     Unmarshal(TPMI_DH_PARENT_MARSHAL_REF|(flag ? NULL_FLAG : 0), (target), (buffer),\
775*5c591343SA. Cody Schuffelen       (size))
776*5c591343SA. Cody Schuffelen #define TPMI_DH_PARENT_Marshal(source, buffer, size)                                \
777*5c591343SA. Cody Schuffelen     Marshal(TPMI_DH_PARENT_MARSHAL_REF, (source), (buffer), (size))
778*5c591343SA. Cody Schuffelen #define TPMI_DH_PERSISTENT_Unmarshal(target, buffer, size)                          \
779*5c591343SA. Cody Schuffelen     Unmarshal(TPMI_DH_PERSISTENT_MARSHAL_REF, (target), (buffer), (size))
780*5c591343SA. Cody Schuffelen #define TPMI_DH_PERSISTENT_Marshal(source, buffer, size)                            \
781*5c591343SA. Cody Schuffelen     Marshal(TPMI_DH_PERSISTENT_MARSHAL_REF, (source), (buffer), (size))
782*5c591343SA. Cody Schuffelen #define TPMI_DH_ENTITY_Unmarshal(target, buffer, size, flag)                        \
783*5c591343SA. Cody Schuffelen     Unmarshal(TPMI_DH_ENTITY_MARSHAL_REF|(flag ? NULL_FLAG : 0), (target), (buffer),\
784*5c591343SA. Cody Schuffelen       (size))
785*5c591343SA. Cody Schuffelen #define TPMI_DH_PCR_Unmarshal(target, buffer, size, flag)                           \
786*5c591343SA. Cody Schuffelen     Unmarshal(TPMI_DH_PCR_MARSHAL_REF|(flag ? NULL_FLAG : 0), (target), (buffer),   \
787*5c591343SA. Cody Schuffelen       (size))
788*5c591343SA. Cody Schuffelen #define TPMI_SH_AUTH_SESSION_Unmarshal(target, buffer, size, flag)                  \
789*5c591343SA. Cody Schuffelen     Unmarshal(TPMI_SH_AUTH_SESSION_MARSHAL_REF|(flag ? NULL_FLAG : 0), (target),    \
790*5c591343SA. Cody Schuffelen       (buffer), (size))
791*5c591343SA. Cody Schuffelen #define TPMI_SH_AUTH_SESSION_Marshal(source, buffer, size)                          \
792*5c591343SA. Cody Schuffelen     Marshal(TPMI_SH_AUTH_SESSION_MARSHAL_REF, (source), (buffer), (size))
793*5c591343SA. Cody Schuffelen #define TPMI_SH_HMAC_Unmarshal(target, buffer, size)                                \
794*5c591343SA. Cody Schuffelen     Unmarshal(TPMI_SH_HMAC_MARSHAL_REF, (target), (buffer), (size))
795*5c591343SA. Cody Schuffelen #define TPMI_SH_HMAC_Marshal(source, buffer, size)                                  \
796*5c591343SA. Cody Schuffelen     Marshal(TPMI_SH_HMAC_MARSHAL_REF, (source), (buffer), (size))
797*5c591343SA. Cody Schuffelen #define TPMI_SH_POLICY_Unmarshal(target, buffer, size)                              \
798*5c591343SA. Cody Schuffelen     Unmarshal(TPMI_SH_POLICY_MARSHAL_REF, (target), (buffer), (size))
799*5c591343SA. Cody Schuffelen #define TPMI_SH_POLICY_Marshal(source, buffer, size)                                \
800*5c591343SA. Cody Schuffelen     Marshal(TPMI_SH_POLICY_MARSHAL_REF, (source), (buffer), (size))
801*5c591343SA. Cody Schuffelen #define TPMI_DH_CONTEXT_Unmarshal(target, buffer, size)                             \
802*5c591343SA. Cody Schuffelen     Unmarshal(TPMI_DH_CONTEXT_MARSHAL_REF, (target), (buffer), (size))
803*5c591343SA. Cody Schuffelen #define TPMI_DH_CONTEXT_Marshal(source, buffer, size)                               \
804*5c591343SA. Cody Schuffelen     Marshal(TPMI_DH_CONTEXT_MARSHAL_REF, (source), (buffer), (size))
805*5c591343SA. Cody Schuffelen #define TPMI_DH_SAVED_Unmarshal(target, buffer, size)                               \
806*5c591343SA. Cody Schuffelen     Unmarshal(TPMI_DH_SAVED_MARSHAL_REF, (target), (buffer), (size))
807*5c591343SA. Cody Schuffelen #define TPMI_DH_SAVED_Marshal(source, buffer, size)                                 \
808*5c591343SA. Cody Schuffelen     Marshal(TPMI_DH_SAVED_MARSHAL_REF, (source), (buffer), (size))
809*5c591343SA. Cody Schuffelen #define TPMI_RH_HIERARCHY_Unmarshal(target, buffer, size, flag)                     \
810*5c591343SA. Cody Schuffelen     Unmarshal(TPMI_RH_HIERARCHY_MARSHAL_REF|(flag ? NULL_FLAG : 0), (target),       \
811*5c591343SA. Cody Schuffelen       (buffer), (size))
812*5c591343SA. Cody Schuffelen #define TPMI_RH_HIERARCHY_Marshal(source, buffer, size)                             \
813*5c591343SA. Cody Schuffelen     Marshal(TPMI_RH_HIERARCHY_MARSHAL_REF, (source), (buffer), (size))
814*5c591343SA. Cody Schuffelen #define TPMI_RH_ENABLES_Unmarshal(target, buffer, size, flag)                       \
815*5c591343SA. Cody Schuffelen     Unmarshal(TPMI_RH_ENABLES_MARSHAL_REF|(flag ? NULL_FLAG : 0), (target),         \
816*5c591343SA. Cody Schuffelen       (buffer), (size))
817*5c591343SA. Cody Schuffelen #define TPMI_RH_ENABLES_Marshal(source, buffer, size)                               \
818*5c591343SA. Cody Schuffelen     Marshal(TPMI_RH_ENABLES_MARSHAL_REF, (source), (buffer), (size))
819*5c591343SA. Cody Schuffelen #define TPMI_RH_HIERARCHY_AUTH_Unmarshal(target, buffer, size)                      \
820*5c591343SA. Cody Schuffelen     Unmarshal(TPMI_RH_HIERARCHY_AUTH_MARSHAL_REF, (target), (buffer), (size))
821*5c591343SA. Cody Schuffelen #define TPMI_RH_HIERARCHY_POLICY_Unmarshal(target, buffer, size)                    \
822*5c591343SA. Cody Schuffelen     Unmarshal(TPMI_RH_HIERARCHY_POLICY_MARSHAL_REF, (target), (buffer), (size))
823*5c591343SA. Cody Schuffelen #define TPMI_RH_PLATFORM_Unmarshal(target, buffer, size)                            \
824*5c591343SA. Cody Schuffelen     Unmarshal(TPMI_RH_PLATFORM_MARSHAL_REF, (target), (buffer), (size))
825*5c591343SA. Cody Schuffelen #define TPMI_RH_OWNER_Unmarshal(target, buffer, size, flag)                         \
826*5c591343SA. Cody Schuffelen     Unmarshal(TPMI_RH_OWNER_MARSHAL_REF|(flag ? NULL_FLAG : 0), (target), (buffer), \
827*5c591343SA. Cody Schuffelen       (size))
828*5c591343SA. Cody Schuffelen #define TPMI_RH_ENDORSEMENT_Unmarshal(target, buffer, size, flag)                   \
829*5c591343SA. Cody Schuffelen     Unmarshal(TPMI_RH_ENDORSEMENT_MARSHAL_REF|(flag ? NULL_FLAG : 0), (target),     \
830*5c591343SA. Cody Schuffelen       (buffer), (size))
831*5c591343SA. Cody Schuffelen #define TPMI_RH_PROVISION_Unmarshal(target, buffer, size)                           \
832*5c591343SA. Cody Schuffelen     Unmarshal(TPMI_RH_PROVISION_MARSHAL_REF, (target), (buffer), (size))
833*5c591343SA. Cody Schuffelen #define TPMI_RH_CLEAR_Unmarshal(target, buffer, size)                               \
834*5c591343SA. Cody Schuffelen     Unmarshal(TPMI_RH_CLEAR_MARSHAL_REF, (target), (buffer), (size))
835*5c591343SA. Cody Schuffelen #define TPMI_RH_NV_AUTH_Unmarshal(target, buffer, size)                             \
836*5c591343SA. Cody Schuffelen     Unmarshal(TPMI_RH_NV_AUTH_MARSHAL_REF, (target), (buffer), (size))
837*5c591343SA. Cody Schuffelen #define TPMI_RH_LOCKOUT_Unmarshal(target, buffer, size)                             \
838*5c591343SA. Cody Schuffelen     Unmarshal(TPMI_RH_LOCKOUT_MARSHAL_REF, (target), (buffer), (size))
839*5c591343SA. Cody Schuffelen #define TPMI_RH_NV_INDEX_Unmarshal(target, buffer, size)                            \
840*5c591343SA. Cody Schuffelen     Unmarshal(TPMI_RH_NV_INDEX_MARSHAL_REF, (target), (buffer), (size))
841*5c591343SA. Cody Schuffelen #define TPMI_RH_NV_INDEX_Marshal(source, buffer, size)                              \
842*5c591343SA. Cody Schuffelen     Marshal(TPMI_RH_NV_INDEX_MARSHAL_REF, (source), (buffer), (size))
843*5c591343SA. Cody Schuffelen #define TPMI_RH_AC_Unmarshal(target, buffer, size)                                  \
844*5c591343SA. Cody Schuffelen     Unmarshal(TPMI_RH_AC_MARSHAL_REF, (target), (buffer), (size))
845*5c591343SA. Cody Schuffelen #define TPMI_RH_ACT_Unmarshal(target, buffer, size)                                 \
846*5c591343SA. Cody Schuffelen     Unmarshal(TPMI_RH_ACT_MARSHAL_REF, (target), (buffer), (size))
847*5c591343SA. Cody Schuffelen #define TPMI_RH_ACT_Marshal(source, buffer, size)                                   \
848*5c591343SA. Cody Schuffelen     Marshal(TPMI_RH_ACT_MARSHAL_REF, (source), (buffer), (size))
849*5c591343SA. Cody Schuffelen #define TPMI_ALG_HASH_Unmarshal(target, buffer, size, flag)                         \
850*5c591343SA. Cody Schuffelen     Unmarshal(TPMI_ALG_HASH_MARSHAL_REF|(flag ? NULL_FLAG : 0), (target), (buffer), \
851*5c591343SA. Cody Schuffelen       (size))
852*5c591343SA. Cody Schuffelen #define TPMI_ALG_HASH_Marshal(source, buffer, size)                                 \
853*5c591343SA. Cody Schuffelen     Marshal(TPMI_ALG_HASH_MARSHAL_REF, (source), (buffer), (size))
854*5c591343SA. Cody Schuffelen #define TPMI_ALG_ASYM_Unmarshal(target, buffer, size, flag)                         \
855*5c591343SA. Cody Schuffelen     Unmarshal(TPMI_ALG_ASYM_MARSHAL_REF|(flag ? NULL_FLAG : 0), (target), (buffer), \
856*5c591343SA. Cody Schuffelen       (size))
857*5c591343SA. Cody Schuffelen #define TPMI_ALG_ASYM_Marshal(source, buffer, size)                                 \
858*5c591343SA. Cody Schuffelen     Marshal(TPMI_ALG_ASYM_MARSHAL_REF, (source), (buffer), (size))
859*5c591343SA. Cody Schuffelen #define TPMI_ALG_SYM_Unmarshal(target, buffer, size, flag)                          \
860*5c591343SA. Cody Schuffelen     Unmarshal(TPMI_ALG_SYM_MARSHAL_REF|(flag ? NULL_FLAG : 0), (target), (buffer),  \
861*5c591343SA. Cody Schuffelen       (size))
862*5c591343SA. Cody Schuffelen #define TPMI_ALG_SYM_Marshal(source, buffer, size)                                  \
863*5c591343SA. Cody Schuffelen     Marshal(TPMI_ALG_SYM_MARSHAL_REF, (source), (buffer), (size))
864*5c591343SA. Cody Schuffelen #define TPMI_ALG_SYM_OBJECT_Unmarshal(target, buffer, size, flag)                   \
865*5c591343SA. Cody Schuffelen     Unmarshal(TPMI_ALG_SYM_OBJECT_MARSHAL_REF|(flag ? NULL_FLAG : 0), (target),     \
866*5c591343SA. Cody Schuffelen       (buffer), (size))
867*5c591343SA. Cody Schuffelen #define TPMI_ALG_SYM_OBJECT_Marshal(source, buffer, size)                           \
868*5c591343SA. Cody Schuffelen     Marshal(TPMI_ALG_SYM_OBJECT_MARSHAL_REF, (source), (buffer), (size))
869*5c591343SA. Cody Schuffelen #define TPMI_ALG_SYM_MODE_Unmarshal(target, buffer, size, flag)                     \
870*5c591343SA. Cody Schuffelen     Unmarshal(TPMI_ALG_SYM_MODE_MARSHAL_REF|(flag ? NULL_FLAG : 0), (target),       \
871*5c591343SA. Cody Schuffelen       (buffer), (size))
872*5c591343SA. Cody Schuffelen #define TPMI_ALG_SYM_MODE_Marshal(source, buffer, size)                             \
873*5c591343SA. Cody Schuffelen     Marshal(TPMI_ALG_SYM_MODE_MARSHAL_REF, (source), (buffer), (size))
874*5c591343SA. Cody Schuffelen #define TPMI_ALG_KDF_Unmarshal(target, buffer, size, flag)                          \
875*5c591343SA. Cody Schuffelen     Unmarshal(TPMI_ALG_KDF_MARSHAL_REF|(flag ? NULL_FLAG : 0), (target), (buffer),  \
876*5c591343SA. Cody Schuffelen       (size))
877*5c591343SA. Cody Schuffelen #define TPMI_ALG_KDF_Marshal(source, buffer, size)                                  \
878*5c591343SA. Cody Schuffelen     Marshal(TPMI_ALG_KDF_MARSHAL_REF, (source), (buffer), (size))
879*5c591343SA. Cody Schuffelen #define TPMI_ALG_SIG_SCHEME_Unmarshal(target, buffer, size, flag)                   \
880*5c591343SA. Cody Schuffelen     Unmarshal(TPMI_ALG_SIG_SCHEME_MARSHAL_REF|(flag ? NULL_FLAG : 0), (target),     \
881*5c591343SA. Cody Schuffelen       (buffer), (size))
882*5c591343SA. Cody Schuffelen #define TPMI_ALG_SIG_SCHEME_Marshal(source, buffer, size)                           \
883*5c591343SA. Cody Schuffelen     Marshal(TPMI_ALG_SIG_SCHEME_MARSHAL_REF, (source), (buffer), (size))
884*5c591343SA. Cody Schuffelen #define TPMI_ECC_KEY_EXCHANGE_Unmarshal(target, buffer, size, flag)                 \
885*5c591343SA. Cody Schuffelen     Unmarshal(TPMI_ECC_KEY_EXCHANGE_MARSHAL_REF|(flag ? NULL_FLAG : 0), (target),   \
886*5c591343SA. Cody Schuffelen       (buffer), (size))
887*5c591343SA. Cody Schuffelen #define TPMI_ECC_KEY_EXCHANGE_Marshal(source, buffer, size)                         \
888*5c591343SA. Cody Schuffelen     Marshal(TPMI_ECC_KEY_EXCHANGE_MARSHAL_REF, (source), (buffer), (size))
889*5c591343SA. Cody Schuffelen #define TPMI_ST_COMMAND_TAG_Unmarshal(target, buffer, size)                         \
890*5c591343SA. Cody Schuffelen     Unmarshal(TPMI_ST_COMMAND_TAG_MARSHAL_REF, (target), (buffer), (size))
891*5c591343SA. Cody Schuffelen #define TPMI_ST_COMMAND_TAG_Marshal(source, buffer, size)                           \
892*5c591343SA. Cody Schuffelen     Marshal(TPMI_ST_COMMAND_TAG_MARSHAL_REF, (source), (buffer), (size))
893*5c591343SA. Cody Schuffelen #define TPMI_ALG_MAC_SCHEME_Unmarshal(target, buffer, size, flag)                   \
894*5c591343SA. Cody Schuffelen     Unmarshal(TPMI_ALG_MAC_SCHEME_MARSHAL_REF|(flag ? NULL_FLAG : 0), (target),     \
895*5c591343SA. Cody Schuffelen       (buffer), (size))
896*5c591343SA. Cody Schuffelen #define TPMI_ALG_MAC_SCHEME_Marshal(source, buffer, size)                           \
897*5c591343SA. Cody Schuffelen     Marshal(TPMI_ALG_MAC_SCHEME_MARSHAL_REF, (source), (buffer), (size))
898*5c591343SA. Cody Schuffelen #define TPMI_ALG_CIPHER_MODE_Unmarshal(target, buffer, size, flag)                  \
899*5c591343SA. Cody Schuffelen     Unmarshal(TPMI_ALG_CIPHER_MODE_MARSHAL_REF|(flag ? NULL_FLAG : 0), (target),    \
900*5c591343SA. Cody Schuffelen       (buffer), (size))
901*5c591343SA. Cody Schuffelen #define TPMI_ALG_CIPHER_MODE_Marshal(source, buffer, size)                          \
902*5c591343SA. Cody Schuffelen     Marshal(TPMI_ALG_CIPHER_MODE_MARSHAL_REF, (source), (buffer), (size))
903*5c591343SA. Cody Schuffelen #define TPMS_EMPTY_Unmarshal(target, buffer, size)                                  \
904*5c591343SA. Cody Schuffelen     Unmarshal(TPMS_EMPTY_MARSHAL_REF, (target), (buffer), (size))
905*5c591343SA. Cody Schuffelen #define TPMS_EMPTY_Marshal(source, buffer, size)                                    \
906*5c591343SA. Cody Schuffelen     Marshal(TPMS_EMPTY_MARSHAL_REF, (source), (buffer), (size))
907*5c591343SA. Cody Schuffelen #define TPMS_ALGORITHM_DESCRIPTION_Marshal(source, buffer, size)                    \
908*5c591343SA. Cody Schuffelen     Marshal(TPMS_ALGORITHM_DESCRIPTION_MARSHAL_REF, (source), (buffer), (size))
909*5c591343SA. Cody Schuffelen #define TPMU_HA_Unmarshal(target, buffer, size, selector)                           \
910*5c591343SA. Cody Schuffelen     UnmarshalUnion(TPMU_HA_MARSHAL_REF, (target), (buffer), (size), (selector))
911*5c591343SA. Cody Schuffelen #define TPMU_HA_Marshal(source, buffer, size, selector)                             \
912*5c591343SA. Cody Schuffelen     MarshalUnion(TPMU_HA_MARSHAL_REF, (source), (buffer), (size), (selector))
913*5c591343SA. Cody Schuffelen #define TPMT_HA_Unmarshal(target, buffer, size, flag)                               \
914*5c591343SA. Cody Schuffelen     Unmarshal(TPMT_HA_MARSHAL_REF|(flag ? NULL_FLAG : 0), (target), (buffer),       \
915*5c591343SA. Cody Schuffelen       (size))
916*5c591343SA. Cody Schuffelen #define TPMT_HA_Marshal(source, buffer, size)                                       \
917*5c591343SA. Cody Schuffelen     Marshal(TPMT_HA_MARSHAL_REF, (source), (buffer), (size))
918*5c591343SA. Cody Schuffelen #define TPM2B_DIGEST_Unmarshal(target, buffer, size)                                \
919*5c591343SA. Cody Schuffelen     Unmarshal(TPM2B_DIGEST_MARSHAL_REF, (target), (buffer), (size))
920*5c591343SA. Cody Schuffelen #define TPM2B_DIGEST_Marshal(source, buffer, size)                                  \
921*5c591343SA. Cody Schuffelen     Marshal(TPM2B_DIGEST_MARSHAL_REF, (source), (buffer), (size))
922*5c591343SA. Cody Schuffelen #define TPM2B_DATA_Unmarshal(target, buffer, size)                                  \
923*5c591343SA. Cody Schuffelen     Unmarshal(TPM2B_DATA_MARSHAL_REF, (target), (buffer), (size))
924*5c591343SA. Cody Schuffelen #define TPM2B_DATA_Marshal(source, buffer, size)                                    \
925*5c591343SA. Cody Schuffelen     Marshal(TPM2B_DATA_MARSHAL_REF, (source), (buffer), (size))
926*5c591343SA. Cody Schuffelen #define TPM2B_NONCE_Unmarshal(target, buffer, size)                                 \
927*5c591343SA. Cody Schuffelen     Unmarshal(TPM2B_NONCE_MARSHAL_REF, (target), (buffer), (size))
928*5c591343SA. Cody Schuffelen #define TPM2B_NONCE_Marshal(source, buffer, size)                                   \
929*5c591343SA. Cody Schuffelen     Marshal(TPM2B_NONCE_MARSHAL_REF, (source), (buffer), (size))
930*5c591343SA. Cody Schuffelen #define TPM2B_AUTH_Unmarshal(target, buffer, size)                                  \
931*5c591343SA. Cody Schuffelen     Unmarshal(TPM2B_AUTH_MARSHAL_REF, (target), (buffer), (size))
932*5c591343SA. Cody Schuffelen #define TPM2B_AUTH_Marshal(source, buffer, size)                                    \
933*5c591343SA. Cody Schuffelen     Marshal(TPM2B_AUTH_MARSHAL_REF, (source), (buffer), (size))
934*5c591343SA. Cody Schuffelen #define TPM2B_OPERAND_Unmarshal(target, buffer, size)                               \
935*5c591343SA. Cody Schuffelen     Unmarshal(TPM2B_OPERAND_MARSHAL_REF, (target), (buffer), (size))
936*5c591343SA. Cody Schuffelen #define TPM2B_OPERAND_Marshal(source, buffer, size)                                 \
937*5c591343SA. Cody Schuffelen     Marshal(TPM2B_OPERAND_MARSHAL_REF, (source), (buffer), (size))
938*5c591343SA. Cody Schuffelen #define TPM2B_EVENT_Unmarshal(target, buffer, size)                                 \
939*5c591343SA. Cody Schuffelen     Unmarshal(TPM2B_EVENT_MARSHAL_REF, (target), (buffer), (size))
940*5c591343SA. Cody Schuffelen #define TPM2B_EVENT_Marshal(source, buffer, size)                                   \
941*5c591343SA. Cody Schuffelen     Marshal(TPM2B_EVENT_MARSHAL_REF, (source), (buffer), (size))
942*5c591343SA. Cody Schuffelen #define TPM2B_MAX_BUFFER_Unmarshal(target, buffer, size)                            \
943*5c591343SA. Cody Schuffelen     Unmarshal(TPM2B_MAX_BUFFER_MARSHAL_REF, (target), (buffer), (size))
944*5c591343SA. Cody Schuffelen #define TPM2B_MAX_BUFFER_Marshal(source, buffer, size)                              \
945*5c591343SA. Cody Schuffelen     Marshal(TPM2B_MAX_BUFFER_MARSHAL_REF, (source), (buffer), (size))
946*5c591343SA. Cody Schuffelen #define TPM2B_MAX_NV_BUFFER_Unmarshal(target, buffer, size)                         \
947*5c591343SA. Cody Schuffelen     Unmarshal(TPM2B_MAX_NV_BUFFER_MARSHAL_REF, (target), (buffer), (size))
948*5c591343SA. Cody Schuffelen #define TPM2B_MAX_NV_BUFFER_Marshal(source, buffer, size)                           \
949*5c591343SA. Cody Schuffelen     Marshal(TPM2B_MAX_NV_BUFFER_MARSHAL_REF, (source), (buffer), (size))
950*5c591343SA. Cody Schuffelen #define TPM2B_TIMEOUT_Unmarshal(target, buffer, size)                               \
951*5c591343SA. Cody Schuffelen     Unmarshal(TPM2B_TIMEOUT_MARSHAL_REF, (target), (buffer), (size))
952*5c591343SA. Cody Schuffelen #define TPM2B_TIMEOUT_Marshal(source, buffer, size)                                 \
953*5c591343SA. Cody Schuffelen     Marshal(TPM2B_TIMEOUT_MARSHAL_REF, (source), (buffer), (size))
954*5c591343SA. Cody Schuffelen #define TPM2B_IV_Unmarshal(target, buffer, size)                                    \
955*5c591343SA. Cody Schuffelen     Unmarshal(TPM2B_IV_MARSHAL_REF, (target), (buffer), (size))
956*5c591343SA. Cody Schuffelen #define TPM2B_IV_Marshal(source, buffer, size)                                      \
957*5c591343SA. Cody Schuffelen     Marshal(TPM2B_IV_MARSHAL_REF, (source), (buffer), (size))
958*5c591343SA. Cody Schuffelen #define TPM2B_NAME_Unmarshal(target, buffer, size)                                  \
959*5c591343SA. Cody Schuffelen     Unmarshal(TPM2B_NAME_MARSHAL_REF, (target), (buffer), (size))
960*5c591343SA. Cody Schuffelen #define TPM2B_NAME_Marshal(source, buffer, size)                                    \
961*5c591343SA. Cody Schuffelen     Marshal(TPM2B_NAME_MARSHAL_REF, (source), (buffer), (size))
962*5c591343SA. Cody Schuffelen #define TPMS_PCR_SELECT_Unmarshal(target, buffer, size)                             \
963*5c591343SA. Cody Schuffelen     Unmarshal(TPMS_PCR_SELECT_MARSHAL_REF, (target), (buffer), (size))
964*5c591343SA. Cody Schuffelen #define TPMS_PCR_SELECT_Marshal(source, buffer, size)                               \
965*5c591343SA. Cody Schuffelen     Marshal(TPMS_PCR_SELECT_MARSHAL_REF, (source), (buffer), (size))
966*5c591343SA. Cody Schuffelen #define TPMS_PCR_SELECTION_Unmarshal(target, buffer, size)                          \
967*5c591343SA. Cody Schuffelen     Unmarshal(TPMS_PCR_SELECTION_MARSHAL_REF, (target), (buffer), (size))
968*5c591343SA. Cody Schuffelen #define TPMS_PCR_SELECTION_Marshal(source, buffer, size)                            \
969*5c591343SA. Cody Schuffelen     Marshal(TPMS_PCR_SELECTION_MARSHAL_REF, (source), (buffer), (size))
970*5c591343SA. Cody Schuffelen #define TPMT_TK_CREATION_Unmarshal(target, buffer, size)                            \
971*5c591343SA. Cody Schuffelen     Unmarshal(TPMT_TK_CREATION_MARSHAL_REF, (target), (buffer), (size))
972*5c591343SA. Cody Schuffelen #define TPMT_TK_CREATION_Marshal(source, buffer, size)                              \
973*5c591343SA. Cody Schuffelen     Marshal(TPMT_TK_CREATION_MARSHAL_REF, (source), (buffer), (size))
974*5c591343SA. Cody Schuffelen #define TPMT_TK_VERIFIED_Unmarshal(target, buffer, size)                            \
975*5c591343SA. Cody Schuffelen     Unmarshal(TPMT_TK_VERIFIED_MARSHAL_REF, (target), (buffer), (size))
976*5c591343SA. Cody Schuffelen #define TPMT_TK_VERIFIED_Marshal(source, buffer, size)                              \
977*5c591343SA. Cody Schuffelen     Marshal(TPMT_TK_VERIFIED_MARSHAL_REF, (source), (buffer), (size))
978*5c591343SA. Cody Schuffelen #define TPMT_TK_AUTH_Unmarshal(target, buffer, size)                                \
979*5c591343SA. Cody Schuffelen     Unmarshal(TPMT_TK_AUTH_MARSHAL_REF, (target), (buffer), (size))
980*5c591343SA. Cody Schuffelen #define TPMT_TK_AUTH_Marshal(source, buffer, size)                                  \
981*5c591343SA. Cody Schuffelen     Marshal(TPMT_TK_AUTH_MARSHAL_REF, (source), (buffer), (size))
982*5c591343SA. Cody Schuffelen #define TPMT_TK_HASHCHECK_Unmarshal(target, buffer, size)                           \
983*5c591343SA. Cody Schuffelen     Unmarshal(TPMT_TK_HASHCHECK_MARSHAL_REF, (target), (buffer), (size))
984*5c591343SA. Cody Schuffelen #define TPMT_TK_HASHCHECK_Marshal(source, buffer, size)                             \
985*5c591343SA. Cody Schuffelen     Marshal(TPMT_TK_HASHCHECK_MARSHAL_REF, (source), (buffer), (size))
986*5c591343SA. Cody Schuffelen #define TPMS_ALG_PROPERTY_Marshal(source, buffer, size)                             \
987*5c591343SA. Cody Schuffelen     Marshal(TPMS_ALG_PROPERTY_MARSHAL_REF, (source), (buffer), (size))
988*5c591343SA. Cody Schuffelen #define TPMS_TAGGED_PROPERTY_Marshal(source, buffer, size)                          \
989*5c591343SA. Cody Schuffelen     Marshal(TPMS_TAGGED_PROPERTY_MARSHAL_REF, (source), (buffer), (size))
990*5c591343SA. Cody Schuffelen #define TPMS_TAGGED_PCR_SELECT_Marshal(source, buffer, size)                        \
991*5c591343SA. Cody Schuffelen     Marshal(TPMS_TAGGED_PCR_SELECT_MARSHAL_REF, (source), (buffer), (size))
992*5c591343SA. Cody Schuffelen #define TPMS_TAGGED_POLICY_Marshal(source, buffer, size)                            \
993*5c591343SA. Cody Schuffelen     Marshal(TPMS_TAGGED_POLICY_MARSHAL_REF, (source), (buffer), (size))
994*5c591343SA. Cody Schuffelen #define TPMS_ACT_DATA_Marshal(source, buffer, size)                                 \
995*5c591343SA. Cody Schuffelen     Marshal(TPMS_ACT_DATA_MARSHAL_REF, (source), (buffer), (size))
996*5c591343SA. Cody Schuffelen #define TPML_CC_Unmarshal(target, buffer, size)                                     \
997*5c591343SA. Cody Schuffelen     Unmarshal(TPML_CC_MARSHAL_REF, (target), (buffer), (size))
998*5c591343SA. Cody Schuffelen #define TPML_CC_Marshal(source, buffer, size)                                       \
999*5c591343SA. Cody Schuffelen     Marshal(TPML_CC_MARSHAL_REF, (source), (buffer), (size))
1000*5c591343SA. Cody Schuffelen #define TPML_CCA_Marshal(source, buffer, size)                                      \
1001*5c591343SA. Cody Schuffelen     Marshal(TPML_CCA_MARSHAL_REF, (source), (buffer), (size))
1002*5c591343SA. Cody Schuffelen #define TPML_ALG_Unmarshal(target, buffer, size)                                    \
1003*5c591343SA. Cody Schuffelen     Unmarshal(TPML_ALG_MARSHAL_REF, (target), (buffer), (size))
1004*5c591343SA. Cody Schuffelen #define TPML_ALG_Marshal(source, buffer, size)                                      \
1005*5c591343SA. Cody Schuffelen     Marshal(TPML_ALG_MARSHAL_REF, (source), (buffer), (size))
1006*5c591343SA. Cody Schuffelen #define TPML_HANDLE_Marshal(source, buffer, size)                                   \
1007*5c591343SA. Cody Schuffelen     Marshal(TPML_HANDLE_MARSHAL_REF, (source), (buffer), (size))
1008*5c591343SA. Cody Schuffelen #define TPML_DIGEST_Unmarshal(target, buffer, size)                                 \
1009*5c591343SA. Cody Schuffelen     Unmarshal(TPML_DIGEST_MARSHAL_REF, (target), (buffer), (size))
1010*5c591343SA. Cody Schuffelen #define TPML_DIGEST_Marshal(source, buffer, size)                                   \
1011*5c591343SA. Cody Schuffelen     Marshal(TPML_DIGEST_MARSHAL_REF, (source), (buffer), (size))
1012*5c591343SA. Cody Schuffelen #define TPML_DIGEST_VALUES_Unmarshal(target, buffer, size)                          \
1013*5c591343SA. Cody Schuffelen     Unmarshal(TPML_DIGEST_VALUES_MARSHAL_REF, (target), (buffer), (size))
1014*5c591343SA. Cody Schuffelen #define TPML_DIGEST_VALUES_Marshal(source, buffer, size)                            \
1015*5c591343SA. Cody Schuffelen     Marshal(TPML_DIGEST_VALUES_MARSHAL_REF, (source), (buffer), (size))
1016*5c591343SA. Cody Schuffelen #define TPML_PCR_SELECTION_Unmarshal(target, buffer, size)                          \
1017*5c591343SA. Cody Schuffelen     Unmarshal(TPML_PCR_SELECTION_MARSHAL_REF, (target), (buffer), (size))
1018*5c591343SA. Cody Schuffelen #define TPML_PCR_SELECTION_Marshal(source, buffer, size)                            \
1019*5c591343SA. Cody Schuffelen     Marshal(TPML_PCR_SELECTION_MARSHAL_REF, (source), (buffer), (size))
1020*5c591343SA. Cody Schuffelen #define TPML_ALG_PROPERTY_Marshal(source, buffer, size)                             \
1021*5c591343SA. Cody Schuffelen     Marshal(TPML_ALG_PROPERTY_MARSHAL_REF, (source), (buffer), (size))
1022*5c591343SA. Cody Schuffelen #define TPML_TAGGED_TPM_PROPERTY_Marshal(source, buffer, size)                      \
1023*5c591343SA. Cody Schuffelen     Marshal(TPML_TAGGED_TPM_PROPERTY_MARSHAL_REF, (source), (buffer), (size))
1024*5c591343SA. Cody Schuffelen #define TPML_TAGGED_PCR_PROPERTY_Marshal(source, buffer, size)                      \
1025*5c591343SA. Cody Schuffelen     Marshal(TPML_TAGGED_PCR_PROPERTY_MARSHAL_REF, (source), (buffer), (size))
1026*5c591343SA. Cody Schuffelen #define TPML_ECC_CURVE_Marshal(source, buffer, size)                                \
1027*5c591343SA. Cody Schuffelen     Marshal(TPML_ECC_CURVE_MARSHAL_REF, (source), (buffer), (size))
1028*5c591343SA. Cody Schuffelen #define TPML_TAGGED_POLICY_Marshal(source, buffer, size)                            \
1029*5c591343SA. Cody Schuffelen     Marshal(TPML_TAGGED_POLICY_MARSHAL_REF, (source), (buffer), (size))
1030*5c591343SA. Cody Schuffelen #define TPML_ACT_DATA_Marshal(source, buffer, size)                                 \
1031*5c591343SA. Cody Schuffelen     Marshal(TPML_ACT_DATA_MARSHAL_REF, (source), (buffer), (size))
1032*5c591343SA. Cody Schuffelen #define TPMU_CAPABILITIES_Marshal(source, buffer, size, selector)                   \
1033*5c591343SA. Cody Schuffelen     MarshalUnion(TPMU_CAPABILITIES_MARSHAL_REF, (source), (buffer), (size),         \
1034*5c591343SA. Cody Schuffelen       (selector))
1035*5c591343SA. Cody Schuffelen #define TPMS_CAPABILITY_DATA_Marshal(source, buffer, size)                          \
1036*5c591343SA. Cody Schuffelen     Marshal(TPMS_CAPABILITY_DATA_MARSHAL_REF, (source), (buffer), (size))
1037*5c591343SA. Cody Schuffelen #define TPMS_CLOCK_INFO_Unmarshal(target, buffer, size)                             \
1038*5c591343SA. Cody Schuffelen     Unmarshal(TPMS_CLOCK_INFO_MARSHAL_REF, (target), (buffer), (size))
1039*5c591343SA. Cody Schuffelen #define TPMS_CLOCK_INFO_Marshal(source, buffer, size)                               \
1040*5c591343SA. Cody Schuffelen     Marshal(TPMS_CLOCK_INFO_MARSHAL_REF, (source), (buffer), (size))
1041*5c591343SA. Cody Schuffelen #define TPMS_TIME_INFO_Unmarshal(target, buffer, size)                              \
1042*5c591343SA. Cody Schuffelen     Unmarshal(TPMS_TIME_INFO_MARSHAL_REF, (target), (buffer), (size))
1043*5c591343SA. Cody Schuffelen #define TPMS_TIME_INFO_Marshal(source, buffer, size)                                \
1044*5c591343SA. Cody Schuffelen     Marshal(TPMS_TIME_INFO_MARSHAL_REF, (source), (buffer), (size))
1045*5c591343SA. Cody Schuffelen #define TPMS_TIME_ATTEST_INFO_Marshal(source, buffer, size)                         \
1046*5c591343SA. Cody Schuffelen     Marshal(TPMS_TIME_ATTEST_INFO_MARSHAL_REF, (source), (buffer), (size))
1047*5c591343SA. Cody Schuffelen #define TPMS_CERTIFY_INFO_Marshal(source, buffer, size)                             \
1048*5c591343SA. Cody Schuffelen     Marshal(TPMS_CERTIFY_INFO_MARSHAL_REF, (source), (buffer), (size))
1049*5c591343SA. Cody Schuffelen #define TPMS_QUOTE_INFO_Marshal(source, buffer, size)                               \
1050*5c591343SA. Cody Schuffelen     Marshal(TPMS_QUOTE_INFO_MARSHAL_REF, (source), (buffer), (size))
1051*5c591343SA. Cody Schuffelen #define TPMS_COMMAND_AUDIT_INFO_Marshal(source, buffer, size)                       \
1052*5c591343SA. Cody Schuffelen     Marshal(TPMS_COMMAND_AUDIT_INFO_MARSHAL_REF, (source), (buffer), (size))
1053*5c591343SA. Cody Schuffelen #define TPMS_SESSION_AUDIT_INFO_Marshal(source, buffer, size)                       \
1054*5c591343SA. Cody Schuffelen     Marshal(TPMS_SESSION_AUDIT_INFO_MARSHAL_REF, (source), (buffer), (size))
1055*5c591343SA. Cody Schuffelen #define TPMS_CREATION_INFO_Marshal(source, buffer, size)                            \
1056*5c591343SA. Cody Schuffelen     Marshal(TPMS_CREATION_INFO_MARSHAL_REF, (source), (buffer), (size))
1057*5c591343SA. Cody Schuffelen #define TPMS_NV_CERTIFY_INFO_Marshal(source, buffer, size)                          \
1058*5c591343SA. Cody Schuffelen     Marshal(TPMS_NV_CERTIFY_INFO_MARSHAL_REF, (source), (buffer), (size))
1059*5c591343SA. Cody Schuffelen #define TPMS_NV_DIGEST_CERTIFY_INFO_Marshal(source, buffer, size)                   \
1060*5c591343SA. Cody Schuffelen     Marshal(TPMS_NV_DIGEST_CERTIFY_INFO_MARSHAL_REF, (source), (buffer), (size))
1061*5c591343SA. Cody Schuffelen #define TPMI_ST_ATTEST_Marshal(source, buffer, size)                                \
1062*5c591343SA. Cody Schuffelen     Marshal(TPMI_ST_ATTEST_MARSHAL_REF, (source), (buffer), (size))
1063*5c591343SA. Cody Schuffelen #define TPMU_ATTEST_Marshal(source, buffer, size, selector)                         \
1064*5c591343SA. Cody Schuffelen     MarshalUnion(TPMU_ATTEST_MARSHAL_REF, (source), (buffer), (size), (selector))
1065*5c591343SA. Cody Schuffelen #define TPMS_ATTEST_Marshal(source, buffer, size)                                   \
1066*5c591343SA. Cody Schuffelen     Marshal(TPMS_ATTEST_MARSHAL_REF, (source), (buffer), (size))
1067*5c591343SA. Cody Schuffelen #define TPM2B_ATTEST_Marshal(source, buffer, size)                                  \
1068*5c591343SA. Cody Schuffelen     Marshal(TPM2B_ATTEST_MARSHAL_REF, (source), (buffer), (size))
1069*5c591343SA. Cody Schuffelen #define TPMS_AUTH_COMMAND_Unmarshal(target, buffer, size)                           \
1070*5c591343SA. Cody Schuffelen     Unmarshal(TPMS_AUTH_COMMAND_MARSHAL_REF, (target), (buffer), (size))
1071*5c591343SA. Cody Schuffelen #define TPMS_AUTH_RESPONSE_Marshal(source, buffer, size)                            \
1072*5c591343SA. Cody Schuffelen     Marshal(TPMS_AUTH_RESPONSE_MARSHAL_REF, (source), (buffer), (size))
1073*5c591343SA. Cody Schuffelen #define TPMI_TDES_KEY_BITS_Unmarshal(target, buffer, size)                          \
1074*5c591343SA. Cody Schuffelen     Unmarshal(TPMI_TDES_KEY_BITS_MARSHAL_REF, (target), (buffer), (size))
1075*5c591343SA. Cody Schuffelen #define TPMI_TDES_KEY_BITS_Marshal(source, buffer, size)                            \
1076*5c591343SA. Cody Schuffelen     Marshal(TPMI_TDES_KEY_BITS_MARSHAL_REF, (source), (buffer), (size))
1077*5c591343SA. Cody Schuffelen #define TPMI_AES_KEY_BITS_Unmarshal(target, buffer, size)                           \
1078*5c591343SA. Cody Schuffelen     Unmarshal(TPMI_AES_KEY_BITS_MARSHAL_REF, (target), (buffer), (size))
1079*5c591343SA. Cody Schuffelen #define TPMI_AES_KEY_BITS_Marshal(source, buffer, size)                             \
1080*5c591343SA. Cody Schuffelen     Marshal(TPMI_AES_KEY_BITS_MARSHAL_REF, (source), (buffer), (size))
1081*5c591343SA. Cody Schuffelen #define TPMI_SM4_KEY_BITS_Unmarshal(target, buffer, size)                           \
1082*5c591343SA. Cody Schuffelen     Unmarshal(TPMI_SM4_KEY_BITS_MARSHAL_REF, (target), (buffer), (size))
1083*5c591343SA. Cody Schuffelen #define TPMI_SM4_KEY_BITS_Marshal(source, buffer, size)                             \
1084*5c591343SA. Cody Schuffelen     Marshal(TPMI_SM4_KEY_BITS_MARSHAL_REF, (source), (buffer), (size))
1085*5c591343SA. Cody Schuffelen #define TPMI_CAMELLIA_KEY_BITS_Unmarshal(target, buffer, size)                      \
1086*5c591343SA. Cody Schuffelen     Unmarshal(TPMI_CAMELLIA_KEY_BITS_MARSHAL_REF, (target), (buffer), (size))
1087*5c591343SA. Cody Schuffelen #define TPMI_CAMELLIA_KEY_BITS_Marshal(source, buffer, size)                        \
1088*5c591343SA. Cody Schuffelen     Marshal(TPMI_CAMELLIA_KEY_BITS_MARSHAL_REF, (source), (buffer), (size))
1089*5c591343SA. Cody Schuffelen #define TPMU_SYM_KEY_BITS_Unmarshal(target, buffer, size, selector)                 \
1090*5c591343SA. Cody Schuffelen     UnmarshalUnion(TPMU_SYM_KEY_BITS_MARSHAL_REF, (target), (buffer), (size),       \
1091*5c591343SA. Cody Schuffelen       (selector))
1092*5c591343SA. Cody Schuffelen #define TPMU_SYM_KEY_BITS_Marshal(source, buffer, size, selector)                   \
1093*5c591343SA. Cody Schuffelen     MarshalUnion(TPMU_SYM_KEY_BITS_MARSHAL_REF, (source), (buffer), (size),         \
1094*5c591343SA. Cody Schuffelen       (selector))
1095*5c591343SA. Cody Schuffelen #define TPMU_SYM_MODE_Unmarshal(target, buffer, size, selector)                     \
1096*5c591343SA. Cody Schuffelen     UnmarshalUnion(TPMU_SYM_MODE_MARSHAL_REF, (target), (buffer), (size),           \
1097*5c591343SA. Cody Schuffelen       (selector))
1098*5c591343SA. Cody Schuffelen #define TPMU_SYM_MODE_Marshal(source, buffer, size, selector)                       \
1099*5c591343SA. Cody Schuffelen     MarshalUnion(TPMU_SYM_MODE_MARSHAL_REF, (source), (buffer), (size), (selector))
1100*5c591343SA. Cody Schuffelen #define TPMT_SYM_DEF_Unmarshal(target, buffer, size, flag)                          \
1101*5c591343SA. Cody Schuffelen     Unmarshal(TPMT_SYM_DEF_MARSHAL_REF|(flag ? NULL_FLAG : 0), (target), (buffer),  \
1102*5c591343SA. Cody Schuffelen       (size))
1103*5c591343SA. Cody Schuffelen #define TPMT_SYM_DEF_Marshal(source, buffer, size)                                  \
1104*5c591343SA. Cody Schuffelen     Marshal(TPMT_SYM_DEF_MARSHAL_REF, (source), (buffer), (size))
1105*5c591343SA. Cody Schuffelen #define TPMT_SYM_DEF_OBJECT_Unmarshal(target, buffer, size, flag)                   \
1106*5c591343SA. Cody Schuffelen     Unmarshal(TPMT_SYM_DEF_OBJECT_MARSHAL_REF|(flag ? NULL_FLAG : 0), (target),     \
1107*5c591343SA. Cody Schuffelen       (buffer), (size))
1108*5c591343SA. Cody Schuffelen #define TPMT_SYM_DEF_OBJECT_Marshal(source, buffer, size)                           \
1109*5c591343SA. Cody Schuffelen     Marshal(TPMT_SYM_DEF_OBJECT_MARSHAL_REF, (source), (buffer), (size))
1110*5c591343SA. Cody Schuffelen #define TPM2B_SYM_KEY_Unmarshal(target, buffer, size)                               \
1111*5c591343SA. Cody Schuffelen     Unmarshal(TPM2B_SYM_KEY_MARSHAL_REF, (target), (buffer), (size))
1112*5c591343SA. Cody Schuffelen #define TPM2B_SYM_KEY_Marshal(source, buffer, size)                                 \
1113*5c591343SA. Cody Schuffelen     Marshal(TPM2B_SYM_KEY_MARSHAL_REF, (source), (buffer), (size))
1114*5c591343SA. Cody Schuffelen #define TPMS_SYMCIPHER_PARMS_Unmarshal(target, buffer, size)                        \
1115*5c591343SA. Cody Schuffelen     Unmarshal(TPMS_SYMCIPHER_PARMS_MARSHAL_REF, (target), (buffer), (size))
1116*5c591343SA. Cody Schuffelen #define TPMS_SYMCIPHER_PARMS_Marshal(source, buffer, size)                          \
1117*5c591343SA. Cody Schuffelen     Marshal(TPMS_SYMCIPHER_PARMS_MARSHAL_REF, (source), (buffer), (size))
1118*5c591343SA. Cody Schuffelen #define TPM2B_LABEL_Unmarshal(target, buffer, size)                                 \
1119*5c591343SA. Cody Schuffelen     Unmarshal(TPM2B_LABEL_MARSHAL_REF, (target), (buffer), (size))
1120*5c591343SA. Cody Schuffelen #define TPM2B_LABEL_Marshal(source, buffer, size)                                   \
1121*5c591343SA. Cody Schuffelen     Marshal(TPM2B_LABEL_MARSHAL_REF, (source), (buffer), (size))
1122*5c591343SA. Cody Schuffelen #define TPMS_DERIVE_Unmarshal(target, buffer, size)                                 \
1123*5c591343SA. Cody Schuffelen     Unmarshal(TPMS_DERIVE_MARSHAL_REF, (target), (buffer), (size))
1124*5c591343SA. Cody Schuffelen #define TPMS_DERIVE_Marshal(source, buffer, size)                                   \
1125*5c591343SA. Cody Schuffelen     Marshal(TPMS_DERIVE_MARSHAL_REF, (source), (buffer), (size))
1126*5c591343SA. Cody Schuffelen #define TPM2B_DERIVE_Unmarshal(target, buffer, size)                                \
1127*5c591343SA. Cody Schuffelen     Unmarshal(TPM2B_DERIVE_MARSHAL_REF, (target), (buffer), (size))
1128*5c591343SA. Cody Schuffelen #define TPM2B_DERIVE_Marshal(source, buffer, size)                                  \
1129*5c591343SA. Cody Schuffelen     Marshal(TPM2B_DERIVE_MARSHAL_REF, (source), (buffer), (size))
1130*5c591343SA. Cody Schuffelen #define TPM2B_SENSITIVE_DATA_Unmarshal(target, buffer, size)                        \
1131*5c591343SA. Cody Schuffelen     Unmarshal(TPM2B_SENSITIVE_DATA_MARSHAL_REF, (target), (buffer), (size))
1132*5c591343SA. Cody Schuffelen #define TPM2B_SENSITIVE_DATA_Marshal(source, buffer, size)                          \
1133*5c591343SA. Cody Schuffelen     Marshal(TPM2B_SENSITIVE_DATA_MARSHAL_REF, (source), (buffer), (size))
1134*5c591343SA. Cody Schuffelen #define TPMS_SENSITIVE_CREATE_Unmarshal(target, buffer, size)                       \
1135*5c591343SA. Cody Schuffelen     Unmarshal(TPMS_SENSITIVE_CREATE_MARSHAL_REF, (target), (buffer), (size))
1136*5c591343SA. Cody Schuffelen #define TPM2B_SENSITIVE_CREATE_Unmarshal(target, buffer, size)                      \
1137*5c591343SA. Cody Schuffelen     Unmarshal(TPM2B_SENSITIVE_CREATE_MARSHAL_REF, (target), (buffer), (size))
1138*5c591343SA. Cody Schuffelen #define TPMS_SCHEME_HASH_Unmarshal(target, buffer, size)                            \
1139*5c591343SA. Cody Schuffelen     Unmarshal(TPMS_SCHEME_HASH_MARSHAL_REF, (target), (buffer), (size))
1140*5c591343SA. Cody Schuffelen #define TPMS_SCHEME_HASH_Marshal(source, buffer, size)                              \
1141*5c591343SA. Cody Schuffelen     Marshal(TPMS_SCHEME_HASH_MARSHAL_REF, (source), (buffer), (size))
1142*5c591343SA. Cody Schuffelen #define TPMS_SCHEME_ECDAA_Unmarshal(target, buffer, size)                           \
1143*5c591343SA. Cody Schuffelen     Unmarshal(TPMS_SCHEME_ECDAA_MARSHAL_REF, (target), (buffer), (size))
1144*5c591343SA. Cody Schuffelen #define TPMS_SCHEME_ECDAA_Marshal(source, buffer, size)                             \
1145*5c591343SA. Cody Schuffelen     Marshal(TPMS_SCHEME_ECDAA_MARSHAL_REF, (source), (buffer), (size))
1146*5c591343SA. Cody Schuffelen #define TPMI_ALG_KEYEDHASH_SCHEME_Unmarshal(target, buffer, size, flag)             \
1147*5c591343SA. Cody Schuffelen     Unmarshal(TPMI_ALG_KEYEDHASH_SCHEME_MARSHAL_REF|(flag ? NULL_FLAG : 0),         \
1148*5c591343SA. Cody Schuffelen       (target), (buffer), (size))
1149*5c591343SA. Cody Schuffelen #define TPMI_ALG_KEYEDHASH_SCHEME_Marshal(source, buffer, size)                     \
1150*5c591343SA. Cody Schuffelen     Marshal(TPMI_ALG_KEYEDHASH_SCHEME_MARSHAL_REF, (source), (buffer), (size))
1151*5c591343SA. Cody Schuffelen #define TPMS_SCHEME_HMAC_Unmarshal(target, buffer, size)                            \
1152*5c591343SA. Cody Schuffelen     Unmarshal(TPMS_SCHEME_HMAC_MARSHAL_REF, (target), (buffer), (size))
1153*5c591343SA. Cody Schuffelen #define TPMS_SCHEME_HMAC_Marshal(source, buffer, size)                              \
1154*5c591343SA. Cody Schuffelen     Marshal(TPMS_SCHEME_HMAC_MARSHAL_REF, (source), (buffer), (size))
1155*5c591343SA. Cody Schuffelen #define TPMS_SCHEME_XOR_Unmarshal(target, buffer, size)                             \
1156*5c591343SA. Cody Schuffelen     Unmarshal(TPMS_SCHEME_XOR_MARSHAL_REF, (target), (buffer), (size))
1157*5c591343SA. Cody Schuffelen #define TPMS_SCHEME_XOR_Marshal(source, buffer, size)                               \
1158*5c591343SA. Cody Schuffelen     Marshal(TPMS_SCHEME_XOR_MARSHAL_REF, (source), (buffer), (size))
1159*5c591343SA. Cody Schuffelen #define TPMU_SCHEME_KEYEDHASH_Unmarshal(target, buffer, size, selector)             \
1160*5c591343SA. Cody Schuffelen     UnmarshalUnion(TPMU_SCHEME_KEYEDHASH_MARSHAL_REF, (target), (buffer), (size),   \
1161*5c591343SA. Cody Schuffelen       (selector))
1162*5c591343SA. Cody Schuffelen #define TPMU_SCHEME_KEYEDHASH_Marshal(source, buffer, size, selector)               \
1163*5c591343SA. Cody Schuffelen     MarshalUnion(TPMU_SCHEME_KEYEDHASH_MARSHAL_REF, (source), (buffer), (size),     \
1164*5c591343SA. Cody Schuffelen       (selector))
1165*5c591343SA. Cody Schuffelen #define TPMT_KEYEDHASH_SCHEME_Unmarshal(target, buffer, size, flag)                 \
1166*5c591343SA. Cody Schuffelen     Unmarshal(TPMT_KEYEDHASH_SCHEME_MARSHAL_REF|(flag ? NULL_FLAG : 0), (target),   \
1167*5c591343SA. Cody Schuffelen       (buffer), (size))
1168*5c591343SA. Cody Schuffelen #define TPMT_KEYEDHASH_SCHEME_Marshal(source, buffer, size)                         \
1169*5c591343SA. Cody Schuffelen     Marshal(TPMT_KEYEDHASH_SCHEME_MARSHAL_REF, (source), (buffer), (size))
1170*5c591343SA. Cody Schuffelen #define TPMS_SIG_SCHEME_RSASSA_Unmarshal(target, buffer, size)                      \
1171*5c591343SA. Cody Schuffelen     Unmarshal(TPMS_SIG_SCHEME_RSASSA_MARSHAL_REF, (target), (buffer), (size))
1172*5c591343SA. Cody Schuffelen #define TPMS_SIG_SCHEME_RSASSA_Marshal(source, buffer, size)                        \
1173*5c591343SA. Cody Schuffelen     Marshal(TPMS_SIG_SCHEME_RSASSA_MARSHAL_REF, (source), (buffer), (size))
1174*5c591343SA. Cody Schuffelen #define TPMS_SIG_SCHEME_RSAPSS_Unmarshal(target, buffer, size)                      \
1175*5c591343SA. Cody Schuffelen     Unmarshal(TPMS_SIG_SCHEME_RSAPSS_MARSHAL_REF, (target), (buffer), (size))
1176*5c591343SA. Cody Schuffelen #define TPMS_SIG_SCHEME_RSAPSS_Marshal(source, buffer, size)                        \
1177*5c591343SA. Cody Schuffelen     Marshal(TPMS_SIG_SCHEME_RSAPSS_MARSHAL_REF, (source), (buffer), (size))
1178*5c591343SA. Cody Schuffelen #define TPMS_SIG_SCHEME_ECDSA_Unmarshal(target, buffer, size)                       \
1179*5c591343SA. Cody Schuffelen     Unmarshal(TPMS_SIG_SCHEME_ECDSA_MARSHAL_REF, (target), (buffer), (size))
1180*5c591343SA. Cody Schuffelen #define TPMS_SIG_SCHEME_ECDSA_Marshal(source, buffer, size)                         \
1181*5c591343SA. Cody Schuffelen     Marshal(TPMS_SIG_SCHEME_ECDSA_MARSHAL_REF, (source), (buffer), (size))
1182*5c591343SA. Cody Schuffelen #define TPMS_SIG_SCHEME_SM2_Unmarshal(target, buffer, size)                         \
1183*5c591343SA. Cody Schuffelen     Unmarshal(TPMS_SIG_SCHEME_SM2_MARSHAL_REF, (target), (buffer), (size))
1184*5c591343SA. Cody Schuffelen #define TPMS_SIG_SCHEME_SM2_Marshal(source, buffer, size)                           \
1185*5c591343SA. Cody Schuffelen     Marshal(TPMS_SIG_SCHEME_SM2_MARSHAL_REF, (source), (buffer), (size))
1186*5c591343SA. Cody Schuffelen #define TPMS_SIG_SCHEME_ECSCHNORR_Unmarshal(target, buffer, size)                   \
1187*5c591343SA. Cody Schuffelen     Unmarshal(TPMS_SIG_SCHEME_ECSCHNORR_MARSHAL_REF, (target), (buffer), (size))
1188*5c591343SA. Cody Schuffelen #define TPMS_SIG_SCHEME_ECSCHNORR_Marshal(source, buffer, size)                     \
1189*5c591343SA. Cody Schuffelen     Marshal(TPMS_SIG_SCHEME_ECSCHNORR_MARSHAL_REF, (source), (buffer), (size))
1190*5c591343SA. Cody Schuffelen #define TPMS_SIG_SCHEME_ECDAA_Unmarshal(target, buffer, size)                       \
1191*5c591343SA. Cody Schuffelen     Unmarshal(TPMS_SIG_SCHEME_ECDAA_MARSHAL_REF, (target), (buffer), (size))
1192*5c591343SA. Cody Schuffelen #define TPMS_SIG_SCHEME_ECDAA_Marshal(source, buffer, size)                         \
1193*5c591343SA. Cody Schuffelen     Marshal(TPMS_SIG_SCHEME_ECDAA_MARSHAL_REF, (source), (buffer), (size))
1194*5c591343SA. Cody Schuffelen #define TPMU_SIG_SCHEME_Unmarshal(target, buffer, size, selector)                   \
1195*5c591343SA. Cody Schuffelen     UnmarshalUnion(TPMU_SIG_SCHEME_MARSHAL_REF, (target), (buffer), (size),         \
1196*5c591343SA. Cody Schuffelen       (selector))
1197*5c591343SA. Cody Schuffelen #define TPMU_SIG_SCHEME_Marshal(source, buffer, size, selector)                     \
1198*5c591343SA. Cody Schuffelen     MarshalUnion(TPMU_SIG_SCHEME_MARSHAL_REF, (source), (buffer), (size),           \
1199*5c591343SA. Cody Schuffelen       (selector))
1200*5c591343SA. Cody Schuffelen #define TPMT_SIG_SCHEME_Unmarshal(target, buffer, size, flag)                       \
1201*5c591343SA. Cody Schuffelen     Unmarshal(TPMT_SIG_SCHEME_MARSHAL_REF|(flag ? NULL_FLAG : 0), (target),         \
1202*5c591343SA. Cody Schuffelen       (buffer), (size))
1203*5c591343SA. Cody Schuffelen #define TPMT_SIG_SCHEME_Marshal(source, buffer, size)                               \
1204*5c591343SA. Cody Schuffelen     Marshal(TPMT_SIG_SCHEME_MARSHAL_REF, (source), (buffer), (size))
1205*5c591343SA. Cody Schuffelen #define TPMS_ENC_SCHEME_OAEP_Unmarshal(target, buffer, size)                        \
1206*5c591343SA. Cody Schuffelen     Unmarshal(TPMS_ENC_SCHEME_OAEP_MARSHAL_REF, (target), (buffer), (size))
1207*5c591343SA. Cody Schuffelen #define TPMS_ENC_SCHEME_OAEP_Marshal(source, buffer, size)                          \
1208*5c591343SA. Cody Schuffelen     Marshal(TPMS_ENC_SCHEME_OAEP_MARSHAL_REF, (source), (buffer), (size))
1209*5c591343SA. Cody Schuffelen #define TPMS_ENC_SCHEME_RSAES_Unmarshal(target, buffer, size)                       \
1210*5c591343SA. Cody Schuffelen     Unmarshal(TPMS_ENC_SCHEME_RSAES_MARSHAL_REF, (target), (buffer), (size))
1211*5c591343SA. Cody Schuffelen #define TPMS_ENC_SCHEME_RSAES_Marshal(source, buffer, size)                         \
1212*5c591343SA. Cody Schuffelen     Marshal(TPMS_ENC_SCHEME_RSAES_MARSHAL_REF, (source), (buffer), (size))
1213*5c591343SA. Cody Schuffelen #define TPMS_KEY_SCHEME_ECDH_Unmarshal(target, buffer, size)                        \
1214*5c591343SA. Cody Schuffelen     Unmarshal(TPMS_KEY_SCHEME_ECDH_MARSHAL_REF, (target), (buffer), (size))
1215*5c591343SA. Cody Schuffelen #define TPMS_KEY_SCHEME_ECDH_Marshal(source, buffer, size)                          \
1216*5c591343SA. Cody Schuffelen     Marshal(TPMS_KEY_SCHEME_ECDH_MARSHAL_REF, (source), (buffer), (size))
1217*5c591343SA. Cody Schuffelen #define TPMS_KEY_SCHEME_ECMQV_Unmarshal(target, buffer, size)                       \
1218*5c591343SA. Cody Schuffelen     Unmarshal(TPMS_KEY_SCHEME_ECMQV_MARSHAL_REF, (target), (buffer), (size))
1219*5c591343SA. Cody Schuffelen #define TPMS_KEY_SCHEME_ECMQV_Marshal(source, buffer, size)                         \
1220*5c591343SA. Cody Schuffelen     Marshal(TPMS_KEY_SCHEME_ECMQV_MARSHAL_REF, (source), (buffer), (size))
1221*5c591343SA. Cody Schuffelen #define TPMS_KDF_SCHEME_MGF1_Unmarshal(target, buffer, size)                        \
1222*5c591343SA. Cody Schuffelen     Unmarshal(TPMS_KDF_SCHEME_MGF1_MARSHAL_REF, (target), (buffer), (size))
1223*5c591343SA. Cody Schuffelen #define TPMS_KDF_SCHEME_MGF1_Marshal(source, buffer, size)                          \
1224*5c591343SA. Cody Schuffelen     Marshal(TPMS_KDF_SCHEME_MGF1_MARSHAL_REF, (source), (buffer), (size))
1225*5c591343SA. Cody Schuffelen #define TPMS_KDF_SCHEME_KDF1_SP800_56A_Unmarshal(target, buffer, size)              \
1226*5c591343SA. Cody Schuffelen     Unmarshal(TPMS_KDF_SCHEME_KDF1_SP800_56A_MARSHAL_REF, (target), (buffer),       \
1227*5c591343SA. Cody Schuffelen       (size))
1228*5c591343SA. Cody Schuffelen #define TPMS_KDF_SCHEME_KDF1_SP800_56A_Marshal(source, buffer, size)                \
1229*5c591343SA. Cody Schuffelen     Marshal(TPMS_KDF_SCHEME_KDF1_SP800_56A_MARSHAL_REF, (source), (buffer), (size))
1230*5c591343SA. Cody Schuffelen #define TPMS_KDF_SCHEME_KDF2_Unmarshal(target, buffer, size)                        \
1231*5c591343SA. Cody Schuffelen     Unmarshal(TPMS_KDF_SCHEME_KDF2_MARSHAL_REF, (target), (buffer), (size))
1232*5c591343SA. Cody Schuffelen #define TPMS_KDF_SCHEME_KDF2_Marshal(source, buffer, size)                          \
1233*5c591343SA. Cody Schuffelen     Marshal(TPMS_KDF_SCHEME_KDF2_MARSHAL_REF, (source), (buffer), (size))
1234*5c591343SA. Cody Schuffelen #define TPMS_KDF_SCHEME_KDF1_SP800_108_Unmarshal(target, buffer, size)              \
1235*5c591343SA. Cody Schuffelen     Unmarshal(TPMS_KDF_SCHEME_KDF1_SP800_108_MARSHAL_REF, (target), (buffer),       \
1236*5c591343SA. Cody Schuffelen       (size))
1237*5c591343SA. Cody Schuffelen #define TPMS_KDF_SCHEME_KDF1_SP800_108_Marshal(source, buffer, size)                \
1238*5c591343SA. Cody Schuffelen     Marshal(TPMS_KDF_SCHEME_KDF1_SP800_108_MARSHAL_REF, (source), (buffer), (size))
1239*5c591343SA. Cody Schuffelen #define TPMU_KDF_SCHEME_Unmarshal(target, buffer, size, selector)                   \
1240*5c591343SA. Cody Schuffelen     UnmarshalUnion(TPMU_KDF_SCHEME_MARSHAL_REF, (target), (buffer), (size),         \
1241*5c591343SA. Cody Schuffelen       (selector))
1242*5c591343SA. Cody Schuffelen #define TPMU_KDF_SCHEME_Marshal(source, buffer, size, selector)                     \
1243*5c591343SA. Cody Schuffelen     MarshalUnion(TPMU_KDF_SCHEME_MARSHAL_REF, (source), (buffer), (size),           \
1244*5c591343SA. Cody Schuffelen       (selector))
1245*5c591343SA. Cody Schuffelen #define TPMT_KDF_SCHEME_Unmarshal(target, buffer, size, flag)                       \
1246*5c591343SA. Cody Schuffelen     Unmarshal(TPMT_KDF_SCHEME_MARSHAL_REF|(flag ? NULL_FLAG : 0), (target),         \
1247*5c591343SA. Cody Schuffelen       (buffer), (size))
1248*5c591343SA. Cody Schuffelen #define TPMT_KDF_SCHEME_Marshal(source, buffer, size)                               \
1249*5c591343SA. Cody Schuffelen     Marshal(TPMT_KDF_SCHEME_MARSHAL_REF, (source), (buffer), (size))
1250*5c591343SA. Cody Schuffelen #define TPMI_ALG_ASYM_SCHEME_Unmarshal(target, buffer, size, flag)                  \
1251*5c591343SA. Cody Schuffelen     Unmarshal(TPMI_ALG_ASYM_SCHEME_MARSHAL_REF|(flag ? NULL_FLAG : 0), (target),    \
1252*5c591343SA. Cody Schuffelen       (buffer), (size))
1253*5c591343SA. Cody Schuffelen #define TPMI_ALG_ASYM_SCHEME_Marshal(source, buffer, size)                          \
1254*5c591343SA. Cody Schuffelen     Marshal(TPMI_ALG_ASYM_SCHEME_MARSHAL_REF, (source), (buffer), (size))
1255*5c591343SA. Cody Schuffelen #define TPMU_ASYM_SCHEME_Unmarshal(target, buffer, size, selector)                  \
1256*5c591343SA. Cody Schuffelen     UnmarshalUnion(TPMU_ASYM_SCHEME_MARSHAL_REF, (target), (buffer), (size),        \
1257*5c591343SA. Cody Schuffelen       (selector))
1258*5c591343SA. Cody Schuffelen #define TPMU_ASYM_SCHEME_Marshal(source, buffer, size, selector)                    \
1259*5c591343SA. Cody Schuffelen     MarshalUnion(TPMU_ASYM_SCHEME_MARSHAL_REF, (source), (buffer), (size),          \
1260*5c591343SA. Cody Schuffelen       (selector))
1261*5c591343SA. Cody Schuffelen #define TPMI_ALG_RSA_SCHEME_Unmarshal(target, buffer, size, flag)                   \
1262*5c591343SA. Cody Schuffelen     Unmarshal(TPMI_ALG_RSA_SCHEME_MARSHAL_REF|(flag ? NULL_FLAG : 0), (target),     \
1263*5c591343SA. Cody Schuffelen       (buffer), (size))
1264*5c591343SA. Cody Schuffelen #define TPMI_ALG_RSA_SCHEME_Marshal(source, buffer, size)                           \
1265*5c591343SA. Cody Schuffelen     Marshal(TPMI_ALG_RSA_SCHEME_MARSHAL_REF, (source), (buffer), (size))
1266*5c591343SA. Cody Schuffelen #define TPMT_RSA_SCHEME_Unmarshal(target, buffer, size, flag)                       \
1267*5c591343SA. Cody Schuffelen     Unmarshal(TPMT_RSA_SCHEME_MARSHAL_REF|(flag ? NULL_FLAG : 0), (target),         \
1268*5c591343SA. Cody Schuffelen       (buffer), (size))
1269*5c591343SA. Cody Schuffelen #define TPMT_RSA_SCHEME_Marshal(source, buffer, size)                               \
1270*5c591343SA. Cody Schuffelen     Marshal(TPMT_RSA_SCHEME_MARSHAL_REF, (source), (buffer), (size))
1271*5c591343SA. Cody Schuffelen #define TPMI_ALG_RSA_DECRYPT_Unmarshal(target, buffer, size, flag)                  \
1272*5c591343SA. Cody Schuffelen     Unmarshal(TPMI_ALG_RSA_DECRYPT_MARSHAL_REF|(flag ? NULL_FLAG : 0), (target),    \
1273*5c591343SA. Cody Schuffelen       (buffer), (size))
1274*5c591343SA. Cody Schuffelen #define TPMI_ALG_RSA_DECRYPT_Marshal(source, buffer, size)                          \
1275*5c591343SA. Cody Schuffelen     Marshal(TPMI_ALG_RSA_DECRYPT_MARSHAL_REF, (source), (buffer), (size))
1276*5c591343SA. Cody Schuffelen #define TPMT_RSA_DECRYPT_Unmarshal(target, buffer, size, flag)                      \
1277*5c591343SA. Cody Schuffelen     Unmarshal(TPMT_RSA_DECRYPT_MARSHAL_REF|(flag ? NULL_FLAG : 0), (target),        \
1278*5c591343SA. Cody Schuffelen       (buffer), (size))
1279*5c591343SA. Cody Schuffelen #define TPMT_RSA_DECRYPT_Marshal(source, buffer, size)                              \
1280*5c591343SA. Cody Schuffelen     Marshal(TPMT_RSA_DECRYPT_MARSHAL_REF, (source), (buffer), (size))
1281*5c591343SA. Cody Schuffelen #define TPM2B_PUBLIC_KEY_RSA_Unmarshal(target, buffer, size)                        \
1282*5c591343SA. Cody Schuffelen     Unmarshal(TPM2B_PUBLIC_KEY_RSA_MARSHAL_REF, (target), (buffer), (size))
1283*5c591343SA. Cody Schuffelen #define TPM2B_PUBLIC_KEY_RSA_Marshal(source, buffer, size)                          \
1284*5c591343SA. Cody Schuffelen     Marshal(TPM2B_PUBLIC_KEY_RSA_MARSHAL_REF, (source), (buffer), (size))
1285*5c591343SA. Cody Schuffelen #define TPMI_RSA_KEY_BITS_Unmarshal(target, buffer, size)                           \
1286*5c591343SA. Cody Schuffelen     Unmarshal(TPMI_RSA_KEY_BITS_MARSHAL_REF, (target), (buffer), (size))
1287*5c591343SA. Cody Schuffelen #define TPMI_RSA_KEY_BITS_Marshal(source, buffer, size)                             \
1288*5c591343SA. Cody Schuffelen     Marshal(TPMI_RSA_KEY_BITS_MARSHAL_REF, (source), (buffer), (size))
1289*5c591343SA. Cody Schuffelen #define TPM2B_PRIVATE_KEY_RSA_Unmarshal(target, buffer, size)                       \
1290*5c591343SA. Cody Schuffelen     Unmarshal(TPM2B_PRIVATE_KEY_RSA_MARSHAL_REF, (target), (buffer), (size))
1291*5c591343SA. Cody Schuffelen #define TPM2B_PRIVATE_KEY_RSA_Marshal(source, buffer, size)                         \
1292*5c591343SA. Cody Schuffelen     Marshal(TPM2B_PRIVATE_KEY_RSA_MARSHAL_REF, (source), (buffer), (size))
1293*5c591343SA. Cody Schuffelen #define TPM2B_ECC_PARAMETER_Unmarshal(target, buffer, size)                         \
1294*5c591343SA. Cody Schuffelen     Unmarshal(TPM2B_ECC_PARAMETER_MARSHAL_REF, (target), (buffer), (size))
1295*5c591343SA. Cody Schuffelen #define TPM2B_ECC_PARAMETER_Marshal(source, buffer, size)                           \
1296*5c591343SA. Cody Schuffelen     Marshal(TPM2B_ECC_PARAMETER_MARSHAL_REF, (source), (buffer), (size))
1297*5c591343SA. Cody Schuffelen #define TPMS_ECC_POINT_Unmarshal(target, buffer, size)                              \
1298*5c591343SA. Cody Schuffelen     Unmarshal(TPMS_ECC_POINT_MARSHAL_REF, (target), (buffer), (size))
1299*5c591343SA. Cody Schuffelen #define TPMS_ECC_POINT_Marshal(source, buffer, size)                                \
1300*5c591343SA. Cody Schuffelen     Marshal(TPMS_ECC_POINT_MARSHAL_REF, (source), (buffer), (size))
1301*5c591343SA. Cody Schuffelen #define TPM2B_ECC_POINT_Unmarshal(target, buffer, size)                             \
1302*5c591343SA. Cody Schuffelen     Unmarshal(TPM2B_ECC_POINT_MARSHAL_REF, (target), (buffer), (size))
1303*5c591343SA. Cody Schuffelen #define TPM2B_ECC_POINT_Marshal(source, buffer, size)                               \
1304*5c591343SA. Cody Schuffelen     Marshal(TPM2B_ECC_POINT_MARSHAL_REF, (source), (buffer), (size))
1305*5c591343SA. Cody Schuffelen #define TPMI_ALG_ECC_SCHEME_Unmarshal(target, buffer, size, flag)                   \
1306*5c591343SA. Cody Schuffelen     Unmarshal(TPMI_ALG_ECC_SCHEME_MARSHAL_REF|(flag ? NULL_FLAG : 0), (target),     \
1307*5c591343SA. Cody Schuffelen       (buffer), (size))
1308*5c591343SA. Cody Schuffelen #define TPMI_ALG_ECC_SCHEME_Marshal(source, buffer, size)                           \
1309*5c591343SA. Cody Schuffelen     Marshal(TPMI_ALG_ECC_SCHEME_MARSHAL_REF, (source), (buffer), (size))
1310*5c591343SA. Cody Schuffelen #define TPMI_ECC_CURVE_Unmarshal(target, buffer, size)                              \
1311*5c591343SA. Cody Schuffelen     Unmarshal(TPMI_ECC_CURVE_MARSHAL_REF, (target), (buffer), (size))
1312*5c591343SA. Cody Schuffelen #define TPMI_ECC_CURVE_Marshal(source, buffer, size)                                \
1313*5c591343SA. Cody Schuffelen     Marshal(TPMI_ECC_CURVE_MARSHAL_REF, (source), (buffer), (size))
1314*5c591343SA. Cody Schuffelen #define TPMT_ECC_SCHEME_Unmarshal(target, buffer, size, flag)                       \
1315*5c591343SA. Cody Schuffelen     Unmarshal(TPMT_ECC_SCHEME_MARSHAL_REF|(flag ? NULL_FLAG : 0), (target),         \
1316*5c591343SA. Cody Schuffelen       (buffer), (size))
1317*5c591343SA. Cody Schuffelen #define TPMT_ECC_SCHEME_Marshal(source, buffer, size)                               \
1318*5c591343SA. Cody Schuffelen     Marshal(TPMT_ECC_SCHEME_MARSHAL_REF, (source), (buffer), (size))
1319*5c591343SA. Cody Schuffelen #define TPMS_ALGORITHM_DETAIL_ECC_Marshal(source, buffer, size)                     \
1320*5c591343SA. Cody Schuffelen     Marshal(TPMS_ALGORITHM_DETAIL_ECC_MARSHAL_REF, (source), (buffer), (size))
1321*5c591343SA. Cody Schuffelen #define TPMS_SIGNATURE_RSA_Unmarshal(target, buffer, size)                          \
1322*5c591343SA. Cody Schuffelen     Unmarshal(TPMS_SIGNATURE_RSA_MARSHAL_REF, (target), (buffer), (size))
1323*5c591343SA. Cody Schuffelen #define TPMS_SIGNATURE_RSA_Marshal(source, buffer, size)                            \
1324*5c591343SA. Cody Schuffelen     Marshal(TPMS_SIGNATURE_RSA_MARSHAL_REF, (source), (buffer), (size))
1325*5c591343SA. Cody Schuffelen #define TPMS_SIGNATURE_RSASSA_Unmarshal(target, buffer, size)                       \
1326*5c591343SA. Cody Schuffelen     Unmarshal(TPMS_SIGNATURE_RSASSA_MARSHAL_REF, (target), (buffer), (size))
1327*5c591343SA. Cody Schuffelen #define TPMS_SIGNATURE_RSASSA_Marshal(source, buffer, size)                         \
1328*5c591343SA. Cody Schuffelen     Marshal(TPMS_SIGNATURE_RSASSA_MARSHAL_REF, (source), (buffer), (size))
1329*5c591343SA. Cody Schuffelen #define TPMS_SIGNATURE_RSAPSS_Unmarshal(target, buffer, size)                       \
1330*5c591343SA. Cody Schuffelen     Unmarshal(TPMS_SIGNATURE_RSAPSS_MARSHAL_REF, (target), (buffer), (size))
1331*5c591343SA. Cody Schuffelen #define TPMS_SIGNATURE_RSAPSS_Marshal(source, buffer, size)                         \
1332*5c591343SA. Cody Schuffelen     Marshal(TPMS_SIGNATURE_RSAPSS_MARSHAL_REF, (source), (buffer), (size))
1333*5c591343SA. Cody Schuffelen #define TPMS_SIGNATURE_ECC_Unmarshal(target, buffer, size)                          \
1334*5c591343SA. Cody Schuffelen     Unmarshal(TPMS_SIGNATURE_ECC_MARSHAL_REF, (target), (buffer), (size))
1335*5c591343SA. Cody Schuffelen #define TPMS_SIGNATURE_ECC_Marshal(source, buffer, size)                            \
1336*5c591343SA. Cody Schuffelen     Marshal(TPMS_SIGNATURE_ECC_MARSHAL_REF, (source), (buffer), (size))
1337*5c591343SA. Cody Schuffelen #define TPMS_SIGNATURE_ECDAA_Unmarshal(target, buffer, size)                        \
1338*5c591343SA. Cody Schuffelen     Unmarshal(TPMS_SIGNATURE_ECDAA_MARSHAL_REF, (target), (buffer), (size))
1339*5c591343SA. Cody Schuffelen #define TPMS_SIGNATURE_ECDAA_Marshal(source, buffer, size)                          \
1340*5c591343SA. Cody Schuffelen     Marshal(TPMS_SIGNATURE_ECDAA_MARSHAL_REF, (source), (buffer), (size))
1341*5c591343SA. Cody Schuffelen #define TPMS_SIGNATURE_ECDSA_Unmarshal(target, buffer, size)                        \
1342*5c591343SA. Cody Schuffelen     Unmarshal(TPMS_SIGNATURE_ECDSA_MARSHAL_REF, (target), (buffer), (size))
1343*5c591343SA. Cody Schuffelen #define TPMS_SIGNATURE_ECDSA_Marshal(source, buffer, size)                          \
1344*5c591343SA. Cody Schuffelen     Marshal(TPMS_SIGNATURE_ECDSA_MARSHAL_REF, (source), (buffer), (size))
1345*5c591343SA. Cody Schuffelen #define TPMS_SIGNATURE_SM2_Unmarshal(target, buffer, size)                          \
1346*5c591343SA. Cody Schuffelen     Unmarshal(TPMS_SIGNATURE_SM2_MARSHAL_REF, (target), (buffer), (size))
1347*5c591343SA. Cody Schuffelen #define TPMS_SIGNATURE_SM2_Marshal(source, buffer, size)                            \
1348*5c591343SA. Cody Schuffelen     Marshal(TPMS_SIGNATURE_SM2_MARSHAL_REF, (source), (buffer), (size))
1349*5c591343SA. Cody Schuffelen #define TPMS_SIGNATURE_ECSCHNORR_Unmarshal(target, buffer, size)                    \
1350*5c591343SA. Cody Schuffelen     Unmarshal(TPMS_SIGNATURE_ECSCHNORR_MARSHAL_REF, (target), (buffer), (size))
1351*5c591343SA. Cody Schuffelen #define TPMS_SIGNATURE_ECSCHNORR_Marshal(source, buffer, size)                      \
1352*5c591343SA. Cody Schuffelen     Marshal(TPMS_SIGNATURE_ECSCHNORR_MARSHAL_REF, (source), (buffer), (size))
1353*5c591343SA. Cody Schuffelen #define TPMU_SIGNATURE_Unmarshal(target, buffer, size, selector)                    \
1354*5c591343SA. Cody Schuffelen     UnmarshalUnion(TPMU_SIGNATURE_MARSHAL_REF, (target), (buffer), (size),          \
1355*5c591343SA. Cody Schuffelen       (selector))
1356*5c591343SA. Cody Schuffelen #define TPMU_SIGNATURE_Marshal(source, buffer, size, selector)                      \
1357*5c591343SA. Cody Schuffelen     MarshalUnion(TPMU_SIGNATURE_MARSHAL_REF, (source), (buffer), (size), (selector))
1358*5c591343SA. Cody Schuffelen #define TPMT_SIGNATURE_Unmarshal(target, buffer, size, flag)                        \
1359*5c591343SA. Cody Schuffelen     Unmarshal(TPMT_SIGNATURE_MARSHAL_REF|(flag ? NULL_FLAG : 0), (target), (buffer),\
1360*5c591343SA. Cody Schuffelen       (size))
1361*5c591343SA. Cody Schuffelen #define TPMT_SIGNATURE_Marshal(source, buffer, size)                                \
1362*5c591343SA. Cody Schuffelen     Marshal(TPMT_SIGNATURE_MARSHAL_REF, (source), (buffer), (size))
1363*5c591343SA. Cody Schuffelen #define TPMU_ENCRYPTED_SECRET_Unmarshal(target, buffer, size, selector)             \
1364*5c591343SA. Cody Schuffelen     UnmarshalUnion(TPMU_ENCRYPTED_SECRET_MARSHAL_REF, (target), (buffer), (size),   \
1365*5c591343SA. Cody Schuffelen       (selector))
1366*5c591343SA. Cody Schuffelen #define TPMU_ENCRYPTED_SECRET_Marshal(source, buffer, size, selector)               \
1367*5c591343SA. Cody Schuffelen     MarshalUnion(TPMU_ENCRYPTED_SECRET_MARSHAL_REF, (source), (buffer), (size),     \
1368*5c591343SA. Cody Schuffelen       (selector))
1369*5c591343SA. Cody Schuffelen #define TPM2B_ENCRYPTED_SECRET_Unmarshal(target, buffer, size)                      \
1370*5c591343SA. Cody Schuffelen     Unmarshal(TPM2B_ENCRYPTED_SECRET_MARSHAL_REF, (target), (buffer), (size))
1371*5c591343SA. Cody Schuffelen #define TPM2B_ENCRYPTED_SECRET_Marshal(source, buffer, size)                        \
1372*5c591343SA. Cody Schuffelen     Marshal(TPM2B_ENCRYPTED_SECRET_MARSHAL_REF, (source), (buffer), (size))
1373*5c591343SA. Cody Schuffelen #define TPMI_ALG_PUBLIC_Unmarshal(target, buffer, size)                             \
1374*5c591343SA. Cody Schuffelen     Unmarshal(TPMI_ALG_PUBLIC_MARSHAL_REF, (target), (buffer), (size))
1375*5c591343SA. Cody Schuffelen #define TPMI_ALG_PUBLIC_Marshal(source, buffer, size)                               \
1376*5c591343SA. Cody Schuffelen     Marshal(TPMI_ALG_PUBLIC_MARSHAL_REF, (source), (buffer), (size))
1377*5c591343SA. Cody Schuffelen #define TPMU_PUBLIC_ID_Unmarshal(target, buffer, size, selector)                    \
1378*5c591343SA. Cody Schuffelen     UnmarshalUnion(TPMU_PUBLIC_ID_MARSHAL_REF, (target), (buffer), (size),          \
1379*5c591343SA. Cody Schuffelen       (selector))
1380*5c591343SA. Cody Schuffelen #define TPMU_PUBLIC_ID_Marshal(source, buffer, size, selector)                      \
1381*5c591343SA. Cody Schuffelen     MarshalUnion(TPMU_PUBLIC_ID_MARSHAL_REF, (source), (buffer), (size), (selector))
1382*5c591343SA. Cody Schuffelen #define TPMS_KEYEDHASH_PARMS_Unmarshal(target, buffer, size)                        \
1383*5c591343SA. Cody Schuffelen     Unmarshal(TPMS_KEYEDHASH_PARMS_MARSHAL_REF, (target), (buffer), (size))
1384*5c591343SA. Cody Schuffelen #define TPMS_KEYEDHASH_PARMS_Marshal(source, buffer, size)                          \
1385*5c591343SA. Cody Schuffelen     Marshal(TPMS_KEYEDHASH_PARMS_MARSHAL_REF, (source), (buffer), (size))
1386*5c591343SA. Cody Schuffelen #define TPMS_RSA_PARMS_Unmarshal(target, buffer, size)                              \
1387*5c591343SA. Cody Schuffelen     Unmarshal(TPMS_RSA_PARMS_MARSHAL_REF, (target), (buffer), (size))
1388*5c591343SA. Cody Schuffelen #define TPMS_RSA_PARMS_Marshal(source, buffer, size)                                \
1389*5c591343SA. Cody Schuffelen     Marshal(TPMS_RSA_PARMS_MARSHAL_REF, (source), (buffer), (size))
1390*5c591343SA. Cody Schuffelen #define TPMS_ECC_PARMS_Unmarshal(target, buffer, size)                              \
1391*5c591343SA. Cody Schuffelen     Unmarshal(TPMS_ECC_PARMS_MARSHAL_REF, (target), (buffer), (size))
1392*5c591343SA. Cody Schuffelen #define TPMS_ECC_PARMS_Marshal(source, buffer, size)                                \
1393*5c591343SA. Cody Schuffelen     Marshal(TPMS_ECC_PARMS_MARSHAL_REF, (source), (buffer), (size))
1394*5c591343SA. Cody Schuffelen #define TPMU_PUBLIC_PARMS_Unmarshal(target, buffer, size, selector)                 \
1395*5c591343SA. Cody Schuffelen     UnmarshalUnion(TPMU_PUBLIC_PARMS_MARSHAL_REF, (target), (buffer), (size),       \
1396*5c591343SA. Cody Schuffelen       (selector))
1397*5c591343SA. Cody Schuffelen #define TPMU_PUBLIC_PARMS_Marshal(source, buffer, size, selector)                   \
1398*5c591343SA. Cody Schuffelen     MarshalUnion(TPMU_PUBLIC_PARMS_MARSHAL_REF, (source), (buffer), (size),         \
1399*5c591343SA. Cody Schuffelen       (selector))
1400*5c591343SA. Cody Schuffelen #define TPMT_PUBLIC_PARMS_Unmarshal(target, buffer, size)                           \
1401*5c591343SA. Cody Schuffelen     Unmarshal(TPMT_PUBLIC_PARMS_MARSHAL_REF, (target), (buffer), (size))
1402*5c591343SA. Cody Schuffelen #define TPMT_PUBLIC_PARMS_Marshal(source, buffer, size)                             \
1403*5c591343SA. Cody Schuffelen     Marshal(TPMT_PUBLIC_PARMS_MARSHAL_REF, (source), (buffer), (size))
1404*5c591343SA. Cody Schuffelen #define TPMT_PUBLIC_Unmarshal(target, buffer, size, flag)                           \
1405*5c591343SA. Cody Schuffelen     Unmarshal(TPMT_PUBLIC_MARSHAL_REF|(flag ? NULL_FLAG : 0), (target), (buffer),   \
1406*5c591343SA. Cody Schuffelen       (size))
1407*5c591343SA. Cody Schuffelen #define TPMT_PUBLIC_Marshal(source, buffer, size)                                   \
1408*5c591343SA. Cody Schuffelen     Marshal(TPMT_PUBLIC_MARSHAL_REF, (source), (buffer), (size))
1409*5c591343SA. Cody Schuffelen #define TPM2B_PUBLIC_Unmarshal(target, buffer, size, flag)                          \
1410*5c591343SA. Cody Schuffelen     Unmarshal(TPM2B_PUBLIC_MARSHAL_REF|(flag ? NULL_FLAG : 0), (target), (buffer),  \
1411*5c591343SA. Cody Schuffelen       (size))
1412*5c591343SA. Cody Schuffelen #define TPM2B_PUBLIC_Marshal(source, buffer, size)                                  \
1413*5c591343SA. Cody Schuffelen     Marshal(TPM2B_PUBLIC_MARSHAL_REF, (source), (buffer), (size))
1414*5c591343SA. Cody Schuffelen #define TPM2B_TEMPLATE_Unmarshal(target, buffer, size)                              \
1415*5c591343SA. Cody Schuffelen     Unmarshal(TPM2B_TEMPLATE_MARSHAL_REF, (target), (buffer), (size))
1416*5c591343SA. Cody Schuffelen #define TPM2B_TEMPLATE_Marshal(source, buffer, size)                                \
1417*5c591343SA. Cody Schuffelen     Marshal(TPM2B_TEMPLATE_MARSHAL_REF, (source), (buffer), (size))
1418*5c591343SA. Cody Schuffelen #define TPM2B_PRIVATE_VENDOR_SPECIFIC_Unmarshal(target, buffer, size)               \
1419*5c591343SA. Cody Schuffelen     Unmarshal(TPM2B_PRIVATE_VENDOR_SPECIFIC_MARSHAL_REF, (target), (buffer), (size))
1420*5c591343SA. Cody Schuffelen #define TPM2B_PRIVATE_VENDOR_SPECIFIC_Marshal(source, buffer, size)                 \
1421*5c591343SA. Cody Schuffelen     Marshal(TPM2B_PRIVATE_VENDOR_SPECIFIC_MARSHAL_REF, (source), (buffer), (size))
1422*5c591343SA. Cody Schuffelen #define TPMU_SENSITIVE_COMPOSITE_Unmarshal(target, buffer, size, selector)          \
1423*5c591343SA. Cody Schuffelen     UnmarshalUnion(TPMU_SENSITIVE_COMPOSITE_MARSHAL_REF, (target), (buffer), (size),\
1424*5c591343SA. Cody Schuffelen       (selector))
1425*5c591343SA. Cody Schuffelen #define TPMU_SENSITIVE_COMPOSITE_Marshal(source, buffer, size, selector)            \
1426*5c591343SA. Cody Schuffelen     MarshalUnion(TPMU_SENSITIVE_COMPOSITE_MARSHAL_REF, (source), (buffer), (size),  \
1427*5c591343SA. Cody Schuffelen       (selector))
1428*5c591343SA. Cody Schuffelen #define TPMT_SENSITIVE_Unmarshal(target, buffer, size)                              \
1429*5c591343SA. Cody Schuffelen     Unmarshal(TPMT_SENSITIVE_MARSHAL_REF, (target), (buffer), (size))
1430*5c591343SA. Cody Schuffelen #define TPMT_SENSITIVE_Marshal(source, buffer, size)                                \
1431*5c591343SA. Cody Schuffelen     Marshal(TPMT_SENSITIVE_MARSHAL_REF, (source), (buffer), (size))
1432*5c591343SA. Cody Schuffelen #define TPM2B_SENSITIVE_Unmarshal(target, buffer, size)                             \
1433*5c591343SA. Cody Schuffelen     Unmarshal(TPM2B_SENSITIVE_MARSHAL_REF, (target), (buffer), (size))
1434*5c591343SA. Cody Schuffelen #define TPM2B_SENSITIVE_Marshal(source, buffer, size)                               \
1435*5c591343SA. Cody Schuffelen     Marshal(TPM2B_SENSITIVE_MARSHAL_REF, (source), (buffer), (size))
1436*5c591343SA. Cody Schuffelen #define TPM2B_PRIVATE_Unmarshal(target, buffer, size)                               \
1437*5c591343SA. Cody Schuffelen     Unmarshal(TPM2B_PRIVATE_MARSHAL_REF, (target), (buffer), (size))
1438*5c591343SA. Cody Schuffelen #define TPM2B_PRIVATE_Marshal(source, buffer, size)                                 \
1439*5c591343SA. Cody Schuffelen     Marshal(TPM2B_PRIVATE_MARSHAL_REF, (source), (buffer), (size))
1440*5c591343SA. Cody Schuffelen #define TPM2B_ID_OBJECT_Unmarshal(target, buffer, size)                             \
1441*5c591343SA. Cody Schuffelen     Unmarshal(TPM2B_ID_OBJECT_MARSHAL_REF, (target), (buffer), (size))
1442*5c591343SA. Cody Schuffelen #define TPM2B_ID_OBJECT_Marshal(source, buffer, size)                               \
1443*5c591343SA. Cody Schuffelen     Marshal(TPM2B_ID_OBJECT_MARSHAL_REF, (source), (buffer), (size))
1444*5c591343SA. Cody Schuffelen #define TPM_NV_INDEX_Marshal(source, buffer, size)                                  \
1445*5c591343SA. Cody Schuffelen     Marshal(TPM_NV_INDEX_MARSHAL_REF, (source), (buffer), (size))
1446*5c591343SA. Cody Schuffelen #define TPMS_NV_PIN_COUNTER_PARAMETERS_Unmarshal(target, buffer, size)              \
1447*5c591343SA. Cody Schuffelen     Unmarshal(TPMS_NV_PIN_COUNTER_PARAMETERS_MARSHAL_REF, (target), (buffer),       \
1448*5c591343SA. Cody Schuffelen       (size))
1449*5c591343SA. Cody Schuffelen #define TPMS_NV_PIN_COUNTER_PARAMETERS_Marshal(source, buffer, size)                \
1450*5c591343SA. Cody Schuffelen     Marshal(TPMS_NV_PIN_COUNTER_PARAMETERS_MARSHAL_REF, (source), (buffer), (size))
1451*5c591343SA. Cody Schuffelen #define TPMA_NV_Unmarshal(target, buffer, size)                                     \
1452*5c591343SA. Cody Schuffelen     Unmarshal(TPMA_NV_MARSHAL_REF, (target), (buffer), (size))
1453*5c591343SA. Cody Schuffelen #define TPMA_NV_Marshal(source, buffer, size)                                       \
1454*5c591343SA. Cody Schuffelen     Marshal(TPMA_NV_MARSHAL_REF, (source), (buffer), (size))
1455*5c591343SA. Cody Schuffelen #define TPMS_NV_PUBLIC_Unmarshal(target, buffer, size)                              \
1456*5c591343SA. Cody Schuffelen     Unmarshal(TPMS_NV_PUBLIC_MARSHAL_REF, (target), (buffer), (size))
1457*5c591343SA. Cody Schuffelen #define TPMS_NV_PUBLIC_Marshal(source, buffer, size)                                \
1458*5c591343SA. Cody Schuffelen     Marshal(TPMS_NV_PUBLIC_MARSHAL_REF, (source), (buffer), (size))
1459*5c591343SA. Cody Schuffelen #define TPM2B_NV_PUBLIC_Unmarshal(target, buffer, size)                             \
1460*5c591343SA. Cody Schuffelen     Unmarshal(TPM2B_NV_PUBLIC_MARSHAL_REF, (target), (buffer), (size))
1461*5c591343SA. Cody Schuffelen #define TPM2B_NV_PUBLIC_Marshal(source, buffer, size)                               \
1462*5c591343SA. Cody Schuffelen     Marshal(TPM2B_NV_PUBLIC_MARSHAL_REF, (source), (buffer), (size))
1463*5c591343SA. Cody Schuffelen #define TPM2B_CONTEXT_SENSITIVE_Unmarshal(target, buffer, size)                     \
1464*5c591343SA. Cody Schuffelen     Unmarshal(TPM2B_CONTEXT_SENSITIVE_MARSHAL_REF, (target), (buffer), (size))
1465*5c591343SA. Cody Schuffelen #define TPM2B_CONTEXT_SENSITIVE_Marshal(source, buffer, size)                       \
1466*5c591343SA. Cody Schuffelen     Marshal(TPM2B_CONTEXT_SENSITIVE_MARSHAL_REF, (source), (buffer), (size))
1467*5c591343SA. Cody Schuffelen #define TPMS_CONTEXT_DATA_Unmarshal(target, buffer, size)                           \
1468*5c591343SA. Cody Schuffelen     Unmarshal(TPMS_CONTEXT_DATA_MARSHAL_REF, (target), (buffer), (size))
1469*5c591343SA. Cody Schuffelen #define TPMS_CONTEXT_DATA_Marshal(source, buffer, size)                             \
1470*5c591343SA. Cody Schuffelen     Marshal(TPMS_CONTEXT_DATA_MARSHAL_REF, (source), (buffer), (size))
1471*5c591343SA. Cody Schuffelen #define TPM2B_CONTEXT_DATA_Unmarshal(target, buffer, size)                          \
1472*5c591343SA. Cody Schuffelen     Unmarshal(TPM2B_CONTEXT_DATA_MARSHAL_REF, (target), (buffer), (size))
1473*5c591343SA. Cody Schuffelen #define TPM2B_CONTEXT_DATA_Marshal(source, buffer, size)                            \
1474*5c591343SA. Cody Schuffelen     Marshal(TPM2B_CONTEXT_DATA_MARSHAL_REF, (source), (buffer), (size))
1475*5c591343SA. Cody Schuffelen #define TPMS_CONTEXT_Unmarshal(target, buffer, size)                                \
1476*5c591343SA. Cody Schuffelen     Unmarshal(TPMS_CONTEXT_MARSHAL_REF, (target), (buffer), (size))
1477*5c591343SA. Cody Schuffelen #define TPMS_CONTEXT_Marshal(source, buffer, size)                                  \
1478*5c591343SA. Cody Schuffelen     Marshal(TPMS_CONTEXT_MARSHAL_REF, (source), (buffer), (size))
1479*5c591343SA. Cody Schuffelen #define TPMS_CREATION_DATA_Marshal(source, buffer, size)                            \
1480*5c591343SA. Cody Schuffelen     Marshal(TPMS_CREATION_DATA_MARSHAL_REF, (source), (buffer), (size))
1481*5c591343SA. Cody Schuffelen #define TPM2B_CREATION_DATA_Marshal(source, buffer, size)                           \
1482*5c591343SA. Cody Schuffelen     Marshal(TPM2B_CREATION_DATA_MARSHAL_REF, (source), (buffer), (size))
1483*5c591343SA. Cody Schuffelen #define TPM_AT_Unmarshal(target, buffer, size)                                      \
1484*5c591343SA. Cody Schuffelen     Unmarshal(TPM_AT_MARSHAL_REF, (target), (buffer), (size))
1485*5c591343SA. Cody Schuffelen #define TPM_AT_Marshal(source, buffer, size)                                        \
1486*5c591343SA. Cody Schuffelen     Marshal(TPM_AT_MARSHAL_REF, (source), (buffer), (size))
1487*5c591343SA. Cody Schuffelen #define TPM_AE_Marshal(source, buffer, size)                                        \
1488*5c591343SA. Cody Schuffelen     Marshal(TPM_AE_MARSHAL_REF, (source), (buffer), (size))
1489*5c591343SA. Cody Schuffelen #define TPMS_AC_OUTPUT_Marshal(source, buffer, size)                                \
1490*5c591343SA. Cody Schuffelen     Marshal(TPMS_AC_OUTPUT_MARSHAL_REF, (source), (buffer), (size))
1491*5c591343SA. Cody Schuffelen #define TPML_AC_CAPABILITIES_Marshal(source, buffer, size)                          \
1492*5c591343SA. Cody Schuffelen     Marshal(TPML_AC_CAPABILITIES_MARSHAL_REF, (source), (buffer), (size))
1493*5c591343SA. Cody Schuffelen 
1494*5c591343SA. Cody Schuffelen #endif // _TABLE_MARSHAL_DEFINES_H_
1495