blob: ea7d96a31732d42213c71dcad70e7b478565f460 [file] [log] [blame]
/* 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_ */