Marshal_ClearControl.c revision a4ed3aa64664a1241ea982d685db744caaae3ffa
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 "ClearControl_fp.h"
9
10TPM_RC ClearControl_In_Unmarshal(ClearControl_In* target,
11                                 TPM_HANDLE request_handles[],
12                                 BYTE** buffer,
13                                 INT32* size) {
14  TPM_RC result = TPM_RC_SUCCESS;
15  // Get request handles from request_handles array.
16  target->auth = request_handles[0];
17  // Unmarshal request parameters.
18  result = TPMI_YES_NO_Unmarshal(&target->disable, buffer, size);
19  if (result != TPM_RC_SUCCESS) {
20    return result;
21  }
22  return result;
23}
24
25TPM_RC Exec_ClearControl(TPMI_ST_COMMAND_TAG tag,
26                         BYTE** request_parameter_buffer,
27                         INT32* request_parameter_buffer_size,
28                         TPM_HANDLE request_handles[],
29                         UINT32* response_handle_buffer_size,
30                         UINT32* response_parameter_buffer_size) {
31  TPM_RC result = TPM_RC_SUCCESS;
32  ClearControl_In in;
33#ifdef TPM_CC_ClearControl
34  BYTE* response_buffer;
35  INT32 response_buffer_size;
36#endif
37  *response_handle_buffer_size = 0;
38  *response_parameter_buffer_size = 0;
39  // Unmarshal request parameters to input structure.
40  result =
41      ClearControl_In_Unmarshal(&in, request_handles, request_parameter_buffer,
42                                request_parameter_buffer_size);
43  if (result != TPM_RC_SUCCESS) {
44    return result;
45  }
46  // Execute command.
47  result = TPM2_ClearControl(&in);
48  if (result != TPM_RC_SUCCESS) {
49    return result;
50  }
51#ifdef TPM_CC_ClearControl
52  response_buffer = MemoryGetResponseBuffer(TPM_CC_ClearControl) + 10;
53  response_buffer_size = MAX_RESPONSE_SIZE - 10;
54  // Add parameter_size field, always equal to 0 here.
55  if (tag == TPM_ST_SESSIONS) {
56    UINT32_Marshal(response_parameter_buffer_size, &response_buffer,
57                   &response_buffer_size);
58  }
59  return TPM_RC_SUCCESS;
60#endif
61  return TPM_RC_COMMAND_CODE;
62}
63