1*e2be04c7SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 26f99612eSStefan Berger /* 36f99612eSStefan Berger * Definitions for the VTPM proxy driver 46f99612eSStefan Berger * Copyright (c) 2015, 2016, IBM Corporation 57ea7861cSJarkko Sakkinen * Copyright (C) 2016 Intel Corporation 66f99612eSStefan Berger * 76f99612eSStefan Berger * This program is free software; you can redistribute it and/or modify it 86f99612eSStefan Berger * under the terms and conditions of the GNU General Public License, 96f99612eSStefan Berger * version 2, as published by the Free Software Foundation. 106f99612eSStefan Berger * 116f99612eSStefan Berger * This program is distributed in the hope it will be useful, but WITHOUT 126f99612eSStefan Berger * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 136f99612eSStefan Berger * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 146f99612eSStefan Berger * more details. 156f99612eSStefan Berger */ 166f99612eSStefan Berger 176f99612eSStefan Berger #ifndef _UAPI_LINUX_VTPM_PROXY_H 186f99612eSStefan Berger #define _UAPI_LINUX_VTPM_PROXY_H 196f99612eSStefan Berger 206f99612eSStefan Berger #include <linux/types.h> 216f99612eSStefan Berger #include <linux/ioctl.h> 226f99612eSStefan Berger 237ea7861cSJarkko Sakkinen /** 247ea7861cSJarkko Sakkinen * enum vtpm_proxy_flags - flags for the proxy TPM 257ea7861cSJarkko Sakkinen * @VTPM_PROXY_FLAG_TPM2: the proxy TPM uses TPM 2.0 protocol 267ea7861cSJarkko Sakkinen */ 277ea7861cSJarkko Sakkinen enum vtpm_proxy_flags { 287ea7861cSJarkko Sakkinen VTPM_PROXY_FLAG_TPM2 = 1, 297ea7861cSJarkko Sakkinen }; 306f99612eSStefan Berger 317ea7861cSJarkko Sakkinen /** 327ea7861cSJarkko Sakkinen * struct vtpm_proxy_new_dev - parameter structure for the 337ea7861cSJarkko Sakkinen * %VTPM_PROXY_IOC_NEW_DEV ioctl 347ea7861cSJarkko Sakkinen * @flags: flags for the proxy TPM 357ea7861cSJarkko Sakkinen * @tpm_num: index of the TPM device 367ea7861cSJarkko Sakkinen * @fd: the file descriptor used by the proxy TPM 377ea7861cSJarkko Sakkinen * @major: the major number of the TPM device 387ea7861cSJarkko Sakkinen * @minor: the minor number of the TPM device 397ea7861cSJarkko Sakkinen */ 406f99612eSStefan Berger struct vtpm_proxy_new_dev { 416f99612eSStefan Berger __u32 flags; /* input */ 426f99612eSStefan Berger __u32 tpm_num; /* output */ 436f99612eSStefan Berger __u32 fd; /* output */ 446f99612eSStefan Berger __u32 major; /* output */ 456f99612eSStefan Berger __u32 minor; /* output */ 466f99612eSStefan Berger }; 476f99612eSStefan Berger 486f99612eSStefan Berger #define VTPM_PROXY_IOC_NEW_DEV _IOWR(0xa1, 0x00, struct vtpm_proxy_new_dev) 496f99612eSStefan Berger 50be4c9acfSStefan Berger /* vendor specific commands to set locality */ 51be4c9acfSStefan Berger #define TPM2_CC_SET_LOCALITY 0x20001000 52be4c9acfSStefan Berger #define TPM_ORD_SET_LOCALITY 0x20001000 53be4c9acfSStefan Berger 546f99612eSStefan Berger #endif /* _UAPI_LINUX_VTPM_PROXY_H */ 55