qemu

FORK: QEMU emulator
git clone https://git.neptards.moe/neptards/qemu.git
Log | Files | Refs | Submodules | LICENSE

tpm-util.h (2028B)


      1 /*
      2  * QTest TPM utilities
      3  *
      4  * Copyright (c) 2018 IBM Corporation
      5  *
      6  * Authors:
      7  *   Stefan Berger <stefanb@linux.vnet.ibm.com>
      8  *
      9  * This work is licensed under the terms of the GNU GPL, version 2 or later.
     10  * See the COPYING file in the top-level directory.
     11  */
     12 
     13 #ifndef TESTS_TPM_UTIL_H
     14 #define TESTS_TPM_UTIL_H
     15 
     16 #include "io/channel-socket.h"
     17 
     18 extern uint64_t tpm_tis_base_addr;
     19 
     20 #define TIS_REG(LOCTY, REG) \
     21     (tpm_tis_base_addr + ((LOCTY) << 12) + REG)
     22 
     23 typedef void (tx_func)(QTestState *s,
     24                        const unsigned char *req, size_t req_size,
     25                        unsigned char *rsp, size_t rsp_size);
     26 
     27 void tpm_util_crb_transfer(QTestState *s,
     28                            const unsigned char *req, size_t req_size,
     29                            unsigned char *rsp, size_t rsp_size);
     30 void tpm_util_tis_transfer(QTestState *s,
     31                            const unsigned char *req, size_t req_size,
     32                            unsigned char *rsp, size_t rsp_size);
     33 
     34 void tpm_util_startup(QTestState *s, tx_func *tx);
     35 void tpm_util_pcrextend(QTestState *s, tx_func *tx);
     36 void tpm_util_pcrread(QTestState *s, tx_func *tx,
     37                       const unsigned char *exp_resp, size_t exp_resp_size);
     38 
     39 bool tpm_util_swtpm_has_tpm2(void);
     40 
     41 gboolean tpm_util_swtpm_start(const char *path, GPid *pid,
     42                               SocketAddress **addr, GError **error);
     43 void tpm_util_swtpm_kill(GPid pid);
     44 
     45 void tpm_util_migrate(QTestState *who, const char *uri);
     46 
     47 void tpm_util_migration_start_qemu(QTestState **src_qemu,
     48                                    QTestState **dst_qemu,
     49                                    SocketAddress *src_tpm_addr,
     50                                    SocketAddress *dst_tpm_addr,
     51                                    const char *miguri,
     52                                    const char *ifmodel,
     53                                    const char *machine_options);
     54 
     55 void tpm_util_wait_for_migration_complete(QTestState *who);
     56 void tpm_util_rmdir(const char *path);
     57 
     58 #endif /* TESTS_TPM_UTIL_H */