0001
0002
0003
0004
0005
0006 #ifndef __S390_ASM_UVDEVICE_H
0007 #define __S390_ASM_UVDEVICE_H
0008
0009 #include <linux/types.h>
0010
0011 struct uvio_ioctl_cb {
0012 __u32 flags;
0013 __u16 uv_rc;
0014 __u16 uv_rrc;
0015 __u64 argument_addr;
0016 __u32 argument_len;
0017 __u8 reserved14[0x40 - 0x14];
0018 };
0019
0020 #define UVIO_ATT_USER_DATA_LEN 0x100
0021 #define UVIO_ATT_UID_LEN 0x10
0022 struct uvio_attest {
0023 __u64 arcb_addr;
0024 __u64 meas_addr;
0025 __u64 add_data_addr;
0026 __u8 user_data[UVIO_ATT_USER_DATA_LEN];
0027 __u8 config_uid[UVIO_ATT_UID_LEN];
0028 __u32 arcb_len;
0029 __u32 meas_len;
0030 __u32 add_data_len;
0031 __u16 user_data_len;
0032 __u16 reserved136;
0033 };
0034
0035
0036
0037
0038
0039
0040
0041
0042 #define UVIO_ATT_ARCB_MAX_LEN 0x100000
0043 #define UVIO_ATT_MEASUREMENT_MAX_LEN 0x8000
0044 #define UVIO_ATT_ADDITIONAL_MAX_LEN 0x8000
0045
0046 #define UVIO_DEVICE_NAME "uv"
0047 #define UVIO_TYPE_UVC 'u'
0048
0049 #define UVIO_IOCTL_ATT _IOWR(UVIO_TYPE_UVC, 0x01, struct uvio_ioctl_cb)
0050
0051 #endif