aboutsummaryrefslogtreecommitdiff
path: root/Create_fp.h
diff options
context:
space:
mode:
authorJocelyn Bohr <bohr@chromium.org>2015-07-30 10:44:16 -0700
committerChromeOS Commit Bot <chromeos-commit-bot@chromium.org>2015-08-10 20:09:27 +0000
commita4ed3aa64664a1241ea982d685db744caaae3ffa (patch)
tree72d1ff6899d2321ca8f53d9d6665e46c8b6f1196 /Create_fp.h
parentd02d5b7076ec51d855c61a67897286b80ef436c2 (diff)
downloadtpm2-a4ed3aa64664a1241ea982d685db744caaae3ffa.tar.gz
Implementation files for command marshaling.
Generated C source and header files which add functions to unmarshal command requests, execute commands, and marshal command responses. This (tenatively) adds all final missing parts of libtpm2. These files are generated from command_generator.py in CL:290556. TEST=$ sudo emerge tpm2 builds libtpm2.a Locally I was able to call ExecCommand to execute TPM2_Startup with success after software TPM initialization. BUG=chromium:501639 CQ-DEPEND=CL:290556 Change-Id: Ieb3f208795a21a172dea25b35027c5aceba7ee08 Reviewed-on: https://chromium-review.googlesource.com/289813 Tested-by: Jocelyn Bohr <bohr@chromium.org> Reviewed-by: Darren Krahn <dkrahn@chromium.org> Reviewed-by: Vadim Bendebury <vbendeb@chromium.org> Commit-Queue: Jocelyn Bohr <bohr@chromium.org>
Diffstat (limited to 'Create_fp.h')
-rw-r--r--Create_fp.h61
1 files changed, 46 insertions, 15 deletions
diff --git a/Create_fp.h b/Create_fp.h
index 5b63f22..f6fdc92 100644
--- a/Create_fp.h
+++ b/Create_fp.h
@@ -1,30 +1,61 @@
-/*
- * Copyright 2015 The Chromium OS Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
+// Copyright 2015 The Chromium OS Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
-#ifndef __TPM2_CREATE_FP_H
-#define __TPM2_CREATE_FP_H
+// THIS CODE IS GENERATED - DO NOT MODIFY!
+
+#ifndef TPM2_CREATE_FP_H
+#define TPM2_CREATE_FP_H
+
+#include "tpm_generated.h"
typedef struct {
- TPM2B_PUBLIC inPublic;
TPMI_DH_OBJECT parentHandle;
- TPML_PCR_SELECTION creationPCR;
- TPM2B_DATA outsideInfo;
TPM2B_SENSITIVE_CREATE inSensitive;
+ TPM2B_PUBLIC inPublic;
+ TPM2B_DATA outsideInfo;
+ TPML_PCR_SELECTION creationPCR;
} Create_In;
typedef struct {
+ TPM2B_PRIVATE outPrivate;
TPM2B_PUBLIC outPublic;
TPM2B_CREATION_DATA creationData;
TPM2B_DIGEST creationHash;
TPMT_TK_CREATION creationTicket;
- TPM2B_PRIVATE outPrivate;
} Create_Out;
-TPM_RC TPM2_Create(Create_In *in, // IN: input parameter list
- Create_Out *out // OUT: output parameter list
- );
+// Executes Create with request handles and parameters from
+// |in| and computes response handles and parameters to |out|.
+TPM_RC TPM2_Create(Create_In* in, Create_Out* out);
+
+// Initializes handle fields in |target| from |req_handles|. Unmarshals
+// parameter fields in |target| from |buffer|.
+TPM_RC Create_In_Unmarshal(Create_In* target,
+ TPM_HANDLE req_handles[],
+ BYTE** buffer,
+ INT32* size);
+
+// Marshals response handles and parameters from |source| to |buffer|. Computes
+// and marshals the size of the parameter area (parameter_size) if |tag| ==
+// TPM_ST_SESSIONS. Returns size of (parameter area + handle area) in bytes.
+// Does not include parameter_size field.
+UINT16 Create_Out_Marshal(Create_Out* source,
+ TPMI_ST_COMMAND_TAG tag,
+ BYTE** buffer,
+ INT32* size);
+
+// Unmarshals any request parameters starting at |req_parameter_buffer|.
+// Executes command. Marshals any response handles and parameters to the
+// global response buffer and computes |*res_handle_buffer_size| and
+// |*res_parameter_buffer_size|. If |tag| == TPM_ST_SESSIONS, marshals
+// parameter_size indicating the size of the parameter area. parameter_size
+// field is located between the handle area and parameter area.
+TPM_RC Exec_Create(TPMI_ST_COMMAND_TAG tag,
+ BYTE** req_parameter_buffer,
+ INT32* req_parameter_buffer_size,
+ TPM_HANDLE req_handles[],
+ UINT32* res_handle_buffer_size,
+ UINT32* res_parameter_buffer_size);
-#endif // __TPM2_CREATE_FP_H
+#endif // TPM2_CREATE_FP_H