| /* Copyright (c) 2010-2011 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. |
| */ |
| |
| /* TPM Lightweight Command Library. |
| * |
| * A low-level library for interfacing to TPM hardware or an emulator. |
| */ |
| |
| #ifndef VBOOT_REFERENCE_TLCL_STUB_H_ |
| #define VBOOT_REFERENCE_TLCL_STUB_H_ |
| |
| #include "sysincludes.h" |
| #include "tss_constants.h" |
| |
| /*****************************************************************************/ |
| /* Functions to be implemented by the stub library */ |
| |
| /* Initialize the stub library. Returns 0 if success, nonzero if error. */ |
| uint32_t TlclStubInit(void); |
| |
| /* Close and open the device. This is needed for running more complex commands |
| * at user level, such as TPM_TakeOwnership, since the TPM device can be opened |
| * only by one process at a time. Returns 0 if success, nonzero if error. |
| */ |
| uint32_t TlclCloseDevice(void); |
| uint32_t TlclOpenDevice(void); |
| |
| /* Send data to the TPM and receive a response. Returns 0 if success, |
| * nonzero if error. */ |
| uint32_t TlclStubSendReceive(const uint8_t* request, int request_length, |
| uint8_t* response, int max_length); |
| |
| #endif /* VBOOT_REFERENCE_TLCL_STUB_H_ */ |