mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2026-09-05 08:44:14 +02:00
Extract all the functions and definitions for TPM buffer handling and separate them into their own header. Signed-off-by: Ross Philipson <ross.philipson@gmail.com> Reviewed-by: Jarkko Sakkinen <jarkko@kernel.org> Signed-off-by: Jarkko Sakkinen <jarkko@kernel.org>
61 lines
1.8 KiB
C
61 lines
1.8 KiB
C
/* SPDX-License-Identifier: GPL-2.0-only */
|
|
/*
|
|
* Following copyright information was take from the original file
|
|
* <include/linux/tpm.h> where the definitions were moved from:
|
|
*
|
|
* Copyright (C) 2004,2007,2008 IBM Corporation
|
|
*
|
|
* Authors:
|
|
* Leendert van Doorn <leendert@watson.ibm.com>
|
|
* Dave Safford <safford@watson.ibm.com>
|
|
* Reiner Sailer <sailer@watson.ibm.com>
|
|
* Kylene Hall <kjhall@us.ibm.com>
|
|
* Debora Velarde <dvelarde@us.ibm.com>
|
|
*
|
|
* Maintained by: <tpmdd_devel@lists.sourceforge.net>
|
|
*
|
|
* Device driver for TCG/TCPA TPM (trusted platform module).
|
|
* Specifications at www.trustedcomputinggroup.org
|
|
*/
|
|
|
|
#ifndef __LINUX_TPM_BUF_H__
|
|
#define __LINUX_TPM_BUF_H__
|
|
|
|
#include <linux/types.h>
|
|
#include <linux/bits.h>
|
|
|
|
enum tpm_buf_flags {
|
|
/* TPM2B format: */
|
|
TPM_BUF_TPM2B = BIT(0),
|
|
/* The buffer is in invalid and unusable state: */
|
|
TPM_BUF_INVALID = BIT(1),
|
|
};
|
|
|
|
/*
|
|
* A buffer for constructing and parsing TPM commands, responses and sized
|
|
* (TPM2B) buffers.
|
|
*/
|
|
struct tpm_buf {
|
|
u8 flags;
|
|
u8 handles;
|
|
u16 length;
|
|
u16 capacity;
|
|
u8 data[];
|
|
};
|
|
|
|
void tpm_buf_init(struct tpm_buf *buf, u16 buf_size);
|
|
void tpm_buf_init_sized(struct tpm_buf *buf, u16 buf_size);
|
|
void tpm_buf_reset(struct tpm_buf *buf, u16 tag, u32 ordinal);
|
|
void tpm_buf_reset_sized(struct tpm_buf *buf);
|
|
u16 tpm_buf_length(struct tpm_buf *buf);
|
|
void tpm_buf_append(struct tpm_buf *buf, const u8 *new_data, u16 new_length);
|
|
void tpm_buf_append_u8(struct tpm_buf *buf, const u8 value);
|
|
void tpm_buf_append_u16(struct tpm_buf *buf, const u16 value);
|
|
void tpm_buf_append_u32(struct tpm_buf *buf, const u32 value);
|
|
u8 tpm_buf_read_u8(struct tpm_buf *buf, off_t *offset);
|
|
u16 tpm_buf_read_u16(struct tpm_buf *buf, off_t *offset);
|
|
u32 tpm_buf_read_u32(struct tpm_buf *buf, off_t *offset);
|
|
void tpm_buf_append_handle(struct tpm_buf *buf, u32 handle);
|
|
|
|
#endif
|