uvdevice.h (ea9d97163523d299022fc78258eccc466d92102a) uvdevice.h (44567ca21aaf6f60cb5dcde180b1f6aab9da33dd)
1/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2/*
3 * Copyright IBM Corp. 2022
4 * Author(s): Steffen Eiden <seiden@linux.ibm.com>
5 */
6#ifndef __S390_ASM_UVDEVICE_H
7#define __S390_ASM_UVDEVICE_H
8

--- 55 unchanged lines hidden (view full) ---

64 * However, they do not represent the maximum the Ultravisor allows which is
65 * often way smaller. By allowing larger buffer sizes we hopefully do not need
66 * to update the code with every machine update. It is therefore possible for
67 * userspace to request more memory than actually used by kernel/UV.
68 */
69#define UVIO_ATT_ARCB_MAX_LEN 0x100000
70#define UVIO_ATT_MEASUREMENT_MAX_LEN 0x8000
71#define UVIO_ATT_ADDITIONAL_MAX_LEN 0x8000
1/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2/*
3 * Copyright IBM Corp. 2022
4 * Author(s): Steffen Eiden <seiden@linux.ibm.com>
5 */
6#ifndef __S390_ASM_UVDEVICE_H
7#define __S390_ASM_UVDEVICE_H
8

--- 55 unchanged lines hidden (view full) ---

64 * However, they do not represent the maximum the Ultravisor allows which is
65 * often way smaller. By allowing larger buffer sizes we hopefully do not need
66 * to update the code with every machine update. It is therefore possible for
67 * userspace to request more memory than actually used by kernel/UV.
68 */
69#define UVIO_ATT_ARCB_MAX_LEN 0x100000
70#define UVIO_ATT_MEASUREMENT_MAX_LEN 0x8000
71#define UVIO_ATT_ADDITIONAL_MAX_LEN 0x8000
72#define UVIO_ADD_SECRET_MAX_LEN 0x100000
72
73#define UVIO_DEVICE_NAME "uv"
74#define UVIO_TYPE_UVC 'u'
75
76enum UVIO_IOCTL_NR {
77 UVIO_IOCTL_UVDEV_INFO_NR = 0x00,
78 UVIO_IOCTL_ATT_NR,
73
74#define UVIO_DEVICE_NAME "uv"
75#define UVIO_TYPE_UVC 'u'
76
77enum UVIO_IOCTL_NR {
78 UVIO_IOCTL_UVDEV_INFO_NR = 0x00,
79 UVIO_IOCTL_ATT_NR,
80 UVIO_IOCTL_ADD_SECRET_NR,
79 /* must be the last entry */
80 UVIO_IOCTL_NUM_IOCTLS
81};
82
83#define UVIO_IOCTL(nr) _IOWR(UVIO_TYPE_UVC, nr, struct uvio_ioctl_cb)
84#define UVIO_IOCTL_UVDEV_INFO UVIO_IOCTL(UVIO_IOCTL_UVDEV_INFO_NR)
85#define UVIO_IOCTL_ATT UVIO_IOCTL(UVIO_IOCTL_ATT_NR)
81 /* must be the last entry */
82 UVIO_IOCTL_NUM_IOCTLS
83};
84
85#define UVIO_IOCTL(nr) _IOWR(UVIO_TYPE_UVC, nr, struct uvio_ioctl_cb)
86#define UVIO_IOCTL_UVDEV_INFO UVIO_IOCTL(UVIO_IOCTL_UVDEV_INFO_NR)
87#define UVIO_IOCTL_ATT UVIO_IOCTL(UVIO_IOCTL_ATT_NR)
88#define UVIO_IOCTL_ADD_SECRET UVIO_IOCTL(UVIO_IOCTL_ADD_SECRET_NR)
86
87#define UVIO_SUPP_CALL(nr) (1ULL << (nr))
88#define UVIO_SUPP_UDEV_INFO UVIO_SUPP_CALL(UVIO_IOCTL_UDEV_INFO_NR)
89#define UVIO_SUPP_ATT UVIO_SUPP_CALL(UVIO_IOCTL_ATT_NR)
89
90#define UVIO_SUPP_CALL(nr) (1ULL << (nr))
91#define UVIO_SUPP_UDEV_INFO UVIO_SUPP_CALL(UVIO_IOCTL_UDEV_INFO_NR)
92#define UVIO_SUPP_ATT UVIO_SUPP_CALL(UVIO_IOCTL_ATT_NR)
93#define UVIO_SUPP_ADD_SECRET UVIO_SUPP_CALL(UVIO_IOCTL_ADD_SECRET_NR)
90
91#endif /* __S390_ASM_UVDEVICE_H */
94
95#endif /* __S390_ASM_UVDEVICE_H */