/src/tpm2/Marshal_NV_Increment.c
Line  | Count  | Source  | 
1  |  | // Copyright 2015 The Chromium OS Authors. All rights reserved.  | 
2  |  | // Use of this source code is governed by a BSD-style license that can be  | 
3  |  | // found in the LICENSE file.  | 
4  |  |  | 
5  |  | // THIS CODE IS GENERATED - DO NOT MODIFY!  | 
6  |  |  | 
7  |  | #include "MemoryLib_fp.h"  | 
8  |  | #include "NV_Increment_fp.h"  | 
9  |  |  | 
10  |  | static TPM_RC NV_Increment_In_Unmarshal(NV_Increment_In* target,  | 
11  |  |                                         TPM_HANDLE request_handles[],  | 
12  |  |                                         BYTE** buffer,  | 
13  | 0  |                                         INT32* size) { | 
14  | 0  |   TPM_RC result = TPM_RC_SUCCESS;  | 
15  |  |   // Get request handles from request_handles array.  | 
16  | 0  |   target->authHandle = request_handles[0];  | 
17  | 0  |   target->nvIndex = request_handles[1];  | 
18  | 0  |   if ((result == TPM_RC_SUCCESS) && *size) { | 
19  | 0  |     result = TPM_RC_SIZE;  | 
20  | 0  |   }  | 
21  | 0  |   return result;  | 
22  | 0  | }  | 
23  |  |  | 
24  |  | TPM_RC Exec_NV_Increment(TPMI_ST_COMMAND_TAG tag,  | 
25  |  |                          BYTE** request_parameter_buffer,  | 
26  |  |                          INT32* request_parameter_buffer_size,  | 
27  |  |                          TPM_HANDLE request_handles[],  | 
28  |  |                          UINT32* response_handle_buffer_size,  | 
29  | 0  |                          UINT32* response_parameter_buffer_size) { | 
30  | 0  |   TPM_RC result = TPM_RC_SUCCESS;  | 
31  | 0  |   NV_Increment_In in;  | 
32  | 0  | #if IS_CC_ENABLED(NV_Increment)  | 
33  | 0  |   BYTE* response_buffer;  | 
34  | 0  |   INT32 response_buffer_size;  | 
35  | 0  | #endif  | 
36  | 0  |   *response_handle_buffer_size = 0;  | 
37  | 0  |   *response_parameter_buffer_size = 0;  | 
38  |  |   // Unmarshal request parameters to input structure.  | 
39  | 0  |   result =  | 
40  | 0  |       NV_Increment_In_Unmarshal(&in, request_handles, request_parameter_buffer,  | 
41  | 0  |                                 request_parameter_buffer_size);  | 
42  | 0  |   if (result != TPM_RC_SUCCESS) { | 
43  | 0  |     return result;  | 
44  | 0  |   }  | 
45  |  |   // Execute command.  | 
46  | 0  |   result = TPM2_NV_Increment(&in);  | 
47  | 0  |   if (result != TPM_RC_SUCCESS) { | 
48  | 0  |     return result;  | 
49  | 0  |   }  | 
50  | 0  | #if IS_CC_ENABLED(NV_Increment)  | 
51  | 0  |   response_buffer = MemoryGetResponseBuffer(TPM_CC_NV_Increment) + 10;  | 
52  | 0  |   response_buffer_size = MAX_RESPONSE_SIZE - 10;  | 
53  |  |   // Add parameter_size field, always equal to 0 here.  | 
54  | 0  |   if (tag == TPM_ST_SESSIONS) { | 
55  | 0  |     UINT32_Marshal(response_parameter_buffer_size, &response_buffer,  | 
56  | 0  |                    &response_buffer_size);  | 
57  | 0  |   }  | 
58  | 0  |   return TPM_RC_SUCCESS;  | 
59  | 0  | #endif  | 
60  | 0  |   return TPM_RC_COMMAND_CODE;  | 
61  | 0  | }  |