[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL v1 29/32] tpm: pull tpm_util_request() out of tpm_uti
From: |
Stefan Berger |
Subject: |
[Qemu-devel] [PULL v1 29/32] tpm: pull tpm_util_request() out of tpm_util_test() |
Date: |
Sat, 16 Dec 2017 12:41:46 -0500 |
Signed-off-by: Stefan Berger <address@hidden>
Reviewed-by: Marc-André Lureau <address@hidden>
---
hw/tpm/tpm_util.c | 40 +++++++++++++++++++++++++++++++---------
1 file changed, 31 insertions(+), 9 deletions(-)
diff --git a/hw/tpm/tpm_util.c b/hw/tpm/tpm_util.c
index daf1faa..b852f53 100644
--- a/hw/tpm/tpm_util.c
+++ b/hw/tpm/tpm_util.c
@@ -50,13 +50,13 @@ bool tpm_util_is_selftest(const uint8_t *in, uint32_t
in_len)
}
/*
- * A basic test of a TPM device. We expect a well formatted response header
- * (error response is fine) within one second.
+ * Send request to a TPM device. We expect a response within one second.
*/
-static int tpm_util_test(int fd,
- unsigned char *request,
- size_t requestlen,
- uint16_t *return_tag)
+static int tpm_util_request(int fd,
+ unsigned char *request,
+ size_t requestlen,
+ unsigned char *response,
+ size_t responselen)
{
struct tpm_resp_hdr *resp;
fd_set readfds;
@@ -65,7 +65,6 @@ static int tpm_util_test(int fd,
.tv_sec = 1,
.tv_usec = 0,
};
- unsigned char buf[1024];
n = write(fd, request, requestlen);
if (n < 0) {
@@ -84,17 +83,40 @@ static int tpm_util_test(int fd,
return -errno;
}
- n = read(fd, &buf, sizeof(buf));
+ n = read(fd, response, responselen);
if (n < sizeof(struct tpm_resp_hdr)) {
return -EFAULT;
}
- resp = (struct tpm_resp_hdr *)buf;
+ resp = (struct tpm_resp_hdr *)response;
/* check the header */
if (be32_to_cpu(resp->len) != n) {
return -EMSGSIZE;
}
+ return 0;
+}
+
+/*
+ * A basic test of a TPM device. We expect a well formatted response header
+ * (error response is fine).
+ */
+static int tpm_util_test(int fd,
+ unsigned char *request,
+ size_t requestlen,
+ uint16_t *return_tag)
+{
+ struct tpm_resp_hdr *resp;
+ unsigned char buf[1024];
+ ssize_t ret;
+
+ ret = tpm_util_request(fd, request, requestlen,
+ buf, sizeof(buf));
+ if (ret < 0) {
+ return ret;
+ }
+
+ resp = (struct tpm_resp_hdr *)buf;
*return_tag = be16_to_cpu(resp->tag);
return 0;
--
2.5.5
- [Qemu-devel] [PULL v1 19/32] tpm: add TPM interface to lookup TPM version, (continued)
- [Qemu-devel] [PULL v1 19/32] tpm: add TPM interface to lookup TPM version, Stefan Berger, 2017/12/16
- [Qemu-devel] [PULL v1 21/32] acpi: change TPM TIS data conditions, Stefan Berger, 2017/12/16
- [Qemu-devel] [PULL v1 22/32] tpm-emulator: add a FIXME comment about blocking cancel, Stefan Berger, 2017/12/16
- [Qemu-devel] [PULL v1 23/32] tpm-tis: remove redundant 'tpm_tis:' in error messages, Stefan Berger, 2017/12/16
- [Qemu-devel] [PULL v1 25/32] qdev: add DEFINE_PROP_TPMBE, Stefan Berger, 2017/12/16
- [Qemu-devel] [PULL v1 24/32] tpm-tis: check that at most one TPM device exists, Stefan Berger, 2017/12/16
- [Qemu-devel] [PULL v1 26/32] tpm-tis: use DEFINE_PROP_TPMBE, Stefan Berger, 2017/12/16
- [Qemu-devel] [PULL v1 27/32] tpm: remove tpm_register_model(), Stefan Berger, 2017/12/16
- [Qemu-devel] [PULL v1 30/32] tpm: tpm_passthrough: Read the buffer size from the host device, Stefan Berger, 2017/12/16
- [Qemu-devel] [PULL v1 28/32] tpm: Move getting TPM buffer size to backends, Stefan Berger, 2017/12/16
- [Qemu-devel] [PULL v1 29/32] tpm: pull tpm_util_request() out of tpm_util_test(),
Stefan Berger <=
- [Qemu-devel] [PULL v1 31/32] tpm: tpm_emulator: get and set buffer size of device, Stefan Berger, 2017/12/16
- [Qemu-devel] [PULL v1 32/32] tpm: tpm_passthrough: Fail startup if FE buffer size < BE buffer size, Stefan Berger, 2017/12/16
- Re: [Qemu-devel] [PULL v1 00/32] Merge tpm 2017/12/15, Peter Maydell, 2017/12/17