diff options
Diffstat (limited to 'tools/include')
| -rw-r--r-- | tools/include/asm/alternative.h (renamed from tools/include/asm/alternative-asm.h) | 0 | ||||
| -rw-r--r-- | tools/include/linux/bits.h | 2 | ||||
| -rw-r--r-- | tools/include/linux/const.h | 8 | ||||
| -rw-r--r-- | tools/include/uapi/asm-generic/unistd.h | 11 | ||||
| -rw-r--r-- | tools/include/uapi/drm/drm.h | 125 | ||||
| -rw-r--r-- | tools/include/uapi/drm/i915_drm.h | 1 | ||||
| -rw-r--r-- | tools/include/uapi/linux/fs.h | 2 | ||||
| -rw-r--r-- | tools/include/uapi/linux/kvm.h | 45 | ||||
| -rw-r--r-- | tools/include/uapi/linux/perf_event.h | 26 | ||||
| -rw-r--r-- | tools/include/uapi/linux/prctl.h | 4 | 
10 files changed, 212 insertions, 12 deletions
| diff --git a/tools/include/asm/alternative-asm.h b/tools/include/asm/alternative.h index b54bd860dff6..b54bd860dff6 100644 --- a/tools/include/asm/alternative-asm.h +++ b/tools/include/asm/alternative.h diff --git a/tools/include/linux/bits.h b/tools/include/linux/bits.h index 7f475d59a097..87d112650dfb 100644 --- a/tools/include/linux/bits.h +++ b/tools/include/linux/bits.h @@ -22,7 +22,7 @@  #include <linux/build_bug.h>  #define GENMASK_INPUT_CHECK(h, l) \  	(BUILD_BUG_ON_ZERO(__builtin_choose_expr( \ -		__builtin_constant_p((l) > (h)), (l) > (h), 0))) +		__is_constexpr((l) > (h)), (l) > (h), 0)))  #else  /*   * BUILD_BUG_ON_ZERO is not available in h files included from asm files, diff --git a/tools/include/linux/const.h b/tools/include/linux/const.h index 81b8aae5a855..435ddd72d2c4 100644 --- a/tools/include/linux/const.h +++ b/tools/include/linux/const.h @@ -3,4 +3,12 @@  #include <vdso/const.h> +/* + * This returns a constant expression while determining if an argument is + * a constant expression, most importantly without evaluating the argument. + * Glory to Martin Uecker <Martin.Uecker@med.uni-goettingen.de> + */ +#define __is_constexpr(x) \ +	(sizeof(int) == sizeof(*(8 ? ((void *)((long)(x) * 0l)) : (int *)8))) +  #endif /* _LINUX_CONST_H */ diff --git a/tools/include/uapi/asm-generic/unistd.h b/tools/include/uapi/asm-generic/unistd.h index ce58cff99b66..6de5a7fc066b 100644 --- a/tools/include/uapi/asm-generic/unistd.h +++ b/tools/include/uapi/asm-generic/unistd.h @@ -863,9 +863,18 @@ __SYSCALL(__NR_process_madvise, sys_process_madvise)  __SC_COMP(__NR_epoll_pwait2, sys_epoll_pwait2, compat_sys_epoll_pwait2)  #define __NR_mount_setattr 442  __SYSCALL(__NR_mount_setattr, sys_mount_setattr) +#define __NR_quotactl_path 443 +__SYSCALL(__NR_quotactl_path, sys_quotactl_path) + +#define __NR_landlock_create_ruleset 444 +__SYSCALL(__NR_landlock_create_ruleset, sys_landlock_create_ruleset) +#define __NR_landlock_add_rule 445 +__SYSCALL(__NR_landlock_add_rule, sys_landlock_add_rule) +#define __NR_landlock_restrict_self 446 +__SYSCALL(__NR_landlock_restrict_self, sys_landlock_restrict_self)  #undef __NR_syscalls -#define __NR_syscalls 443 +#define __NR_syscalls 447  /*   * 32 bit systems traditionally used different diff --git a/tools/include/uapi/drm/drm.h b/tools/include/uapi/drm/drm.h index 0827037c5484..67b94bc3c885 100644 --- a/tools/include/uapi/drm/drm.h +++ b/tools/include/uapi/drm/drm.h @@ -625,30 +625,147 @@ struct drm_gem_open {  	__u64 size;  }; +/** + * DRM_CAP_DUMB_BUFFER + * + * If set to 1, the driver supports creating dumb buffers via the + * &DRM_IOCTL_MODE_CREATE_DUMB ioctl. + */  #define DRM_CAP_DUMB_BUFFER		0x1 +/** + * DRM_CAP_VBLANK_HIGH_CRTC + * + * If set to 1, the kernel supports specifying a CRTC index in the high bits of + * &drm_wait_vblank_request.type. + * + * Starting kernel version 2.6.39, this capability is always set to 1. + */  #define DRM_CAP_VBLANK_HIGH_CRTC	0x2 +/** + * DRM_CAP_DUMB_PREFERRED_DEPTH + * + * The preferred bit depth for dumb buffers. + * + * The bit depth is the number of bits used to indicate the color of a single + * pixel excluding any padding. This is different from the number of bits per + * pixel. For instance, XRGB8888 has a bit depth of 24 but has 32 bits per + * pixel. + * + * Note that this preference only applies to dumb buffers, it's irrelevant for + * other types of buffers. + */  #define DRM_CAP_DUMB_PREFERRED_DEPTH	0x3 +/** + * DRM_CAP_DUMB_PREFER_SHADOW + * + * If set to 1, the driver prefers userspace to render to a shadow buffer + * instead of directly rendering to a dumb buffer. For best speed, userspace + * should do streaming ordered memory copies into the dumb buffer and never + * read from it. + * + * Note that this preference only applies to dumb buffers, it's irrelevant for + * other types of buffers. + */  #define DRM_CAP_DUMB_PREFER_SHADOW	0x4 +/** + * DRM_CAP_PRIME + * + * Bitfield of supported PRIME sharing capabilities. See &DRM_PRIME_CAP_IMPORT + * and &DRM_PRIME_CAP_EXPORT. + * + * PRIME buffers are exposed as dma-buf file descriptors. See + * Documentation/gpu/drm-mm.rst, section "PRIME Buffer Sharing". + */  #define DRM_CAP_PRIME			0x5 +/** + * DRM_PRIME_CAP_IMPORT + * + * If this bit is set in &DRM_CAP_PRIME, the driver supports importing PRIME + * buffers via the &DRM_IOCTL_PRIME_FD_TO_HANDLE ioctl. + */  #define  DRM_PRIME_CAP_IMPORT		0x1 +/** + * DRM_PRIME_CAP_EXPORT + * + * If this bit is set in &DRM_CAP_PRIME, the driver supports exporting PRIME + * buffers via the &DRM_IOCTL_PRIME_HANDLE_TO_FD ioctl. + */  #define  DRM_PRIME_CAP_EXPORT		0x2 +/** + * DRM_CAP_TIMESTAMP_MONOTONIC + * + * If set to 0, the kernel will report timestamps with ``CLOCK_REALTIME`` in + * struct drm_event_vblank. If set to 1, the kernel will report timestamps with + * ``CLOCK_MONOTONIC``. See ``clock_gettime(2)`` for the definition of these + * clocks. + * + * Starting from kernel version 2.6.39, the default value for this capability + * is 1. Starting kernel version 4.15, this capability is always set to 1. + */  #define DRM_CAP_TIMESTAMP_MONOTONIC	0x6 +/** + * DRM_CAP_ASYNC_PAGE_FLIP + * + * If set to 1, the driver supports &DRM_MODE_PAGE_FLIP_ASYNC. + */  #define DRM_CAP_ASYNC_PAGE_FLIP		0x7 -/* - * The CURSOR_WIDTH and CURSOR_HEIGHT capabilities return a valid widthxheight - * combination for the hardware cursor. The intention is that a hardware - * agnostic userspace can query a cursor plane size to use. +/** + * DRM_CAP_CURSOR_WIDTH + * + * The ``CURSOR_WIDTH`` and ``CURSOR_HEIGHT`` capabilities return a valid + * width x height combination for the hardware cursor. The intention is that a + * hardware agnostic userspace can query a cursor plane size to use.   *   * Note that the cross-driver contract is to merely return a valid size;   * drivers are free to attach another meaning on top, eg. i915 returns the   * maximum plane size.   */  #define DRM_CAP_CURSOR_WIDTH		0x8 +/** + * DRM_CAP_CURSOR_HEIGHT + * + * See &DRM_CAP_CURSOR_WIDTH. + */  #define DRM_CAP_CURSOR_HEIGHT		0x9 +/** + * DRM_CAP_ADDFB2_MODIFIERS + * + * If set to 1, the driver supports supplying modifiers in the + * &DRM_IOCTL_MODE_ADDFB2 ioctl. + */  #define DRM_CAP_ADDFB2_MODIFIERS	0x10 +/** + * DRM_CAP_PAGE_FLIP_TARGET + * + * If set to 1, the driver supports the &DRM_MODE_PAGE_FLIP_TARGET_ABSOLUTE and + * &DRM_MODE_PAGE_FLIP_TARGET_RELATIVE flags in + * &drm_mode_crtc_page_flip_target.flags for the &DRM_IOCTL_MODE_PAGE_FLIP + * ioctl. + */  #define DRM_CAP_PAGE_FLIP_TARGET	0x11 +/** + * DRM_CAP_CRTC_IN_VBLANK_EVENT + * + * If set to 1, the kernel supports reporting the CRTC ID in + * &drm_event_vblank.crtc_id for the &DRM_EVENT_VBLANK and + * &DRM_EVENT_FLIP_COMPLETE events. + * + * Starting kernel version 4.12, this capability is always set to 1. + */  #define DRM_CAP_CRTC_IN_VBLANK_EVENT	0x12 +/** + * DRM_CAP_SYNCOBJ + * + * If set to 1, the driver supports sync objects. See + * Documentation/gpu/drm-mm.rst, section "DRM Sync Objects". + */  #define DRM_CAP_SYNCOBJ		0x13 +/** + * DRM_CAP_SYNCOBJ_TIMELINE + * + * If set to 1, the driver supports timeline operations on sync objects. See + * Documentation/gpu/drm-mm.rst, section "DRM Sync Objects". + */  #define DRM_CAP_SYNCOBJ_TIMELINE	0x14  /* DRM_IOCTL_GET_CAP ioctl argument type */ diff --git a/tools/include/uapi/drm/i915_drm.h b/tools/include/uapi/drm/i915_drm.h index 1987e2ea79a3..ddc47bbf48b6 100644 --- a/tools/include/uapi/drm/i915_drm.h +++ b/tools/include/uapi/drm/i915_drm.h @@ -943,6 +943,7 @@ struct drm_i915_gem_exec_object {  	__u64 offset;  }; +/* DRM_IOCTL_I915_GEM_EXECBUFFER was removed in Linux 5.13 */  struct drm_i915_gem_execbuffer {  	/**  	 * List of buffers to be validated with their relocations to be diff --git a/tools/include/uapi/linux/fs.h b/tools/include/uapi/linux/fs.h index f44eb0a04afd..4c32e97dcdf0 100644 --- a/tools/include/uapi/linux/fs.h +++ b/tools/include/uapi/linux/fs.h @@ -185,7 +185,7 @@ struct fsxattr {  #define BLKROTATIONAL _IO(0x12,126)  #define BLKZEROOUT _IO(0x12,127)  /* - * A jump here: 130-131 are reserved for zoned block devices + * A jump here: 130-136 are reserved for zoned block devices   * (see uapi/linux/blkzoned.h)   */ diff --git a/tools/include/uapi/linux/kvm.h b/tools/include/uapi/linux/kvm.h index f6afee209620..3fd9a7e9d90c 100644 --- a/tools/include/uapi/linux/kvm.h +++ b/tools/include/uapi/linux/kvm.h @@ -1078,6 +1078,10 @@ struct kvm_ppc_resize_hpt {  #define KVM_CAP_DIRTY_LOG_RING 192  #define KVM_CAP_X86_BUS_LOCK_EXIT 193  #define KVM_CAP_PPC_DAWR1 194 +#define KVM_CAP_SET_GUEST_DEBUG2 195 +#define KVM_CAP_SGX_ATTRIBUTE 196 +#define KVM_CAP_VM_COPY_ENC_CONTEXT_FROM 197 +#define KVM_CAP_PTP_KVM 198  #ifdef KVM_CAP_IRQ_ROUTING @@ -1671,6 +1675,8 @@ enum sev_cmd_id {  	KVM_SEV_CERT_EXPORT,  	/* Attestation report */  	KVM_SEV_GET_ATTESTATION_REPORT, +	/* Guest Migration Extension */ +	KVM_SEV_SEND_CANCEL,  	KVM_SEV_NR_MAX,  }; @@ -1729,6 +1735,45 @@ struct kvm_sev_attestation_report {  	__u32 len;  }; +struct kvm_sev_send_start { +	__u32 policy; +	__u64 pdh_cert_uaddr; +	__u32 pdh_cert_len; +	__u64 plat_certs_uaddr; +	__u32 plat_certs_len; +	__u64 amd_certs_uaddr; +	__u32 amd_certs_len; +	__u64 session_uaddr; +	__u32 session_len; +}; + +struct kvm_sev_send_update_data { +	__u64 hdr_uaddr; +	__u32 hdr_len; +	__u64 guest_uaddr; +	__u32 guest_len; +	__u64 trans_uaddr; +	__u32 trans_len; +}; + +struct kvm_sev_receive_start { +	__u32 handle; +	__u32 policy; +	__u64 pdh_uaddr; +	__u32 pdh_len; +	__u64 session_uaddr; +	__u32 session_len; +}; + +struct kvm_sev_receive_update_data { +	__u64 hdr_uaddr; +	__u32 hdr_len; +	__u64 guest_uaddr; +	__u32 guest_len; +	__u64 trans_uaddr; +	__u32 trans_len; +}; +  #define KVM_DEV_ASSIGN_ENABLE_IOMMU	(1 << 0)  #define KVM_DEV_ASSIGN_PCI_2_3		(1 << 1)  #define KVM_DEV_ASSIGN_MASK_INTX	(1 << 2) diff --git a/tools/include/uapi/linux/perf_event.h b/tools/include/uapi/linux/perf_event.h index 14332f4cf816..f92880a15645 100644 --- a/tools/include/uapi/linux/perf_event.h +++ b/tools/include/uapi/linux/perf_event.h @@ -127,6 +127,7 @@ enum perf_sw_ids {  	PERF_COUNT_SW_EMULATION_FAULTS		= 8,  	PERF_COUNT_SW_DUMMY			= 9,  	PERF_COUNT_SW_BPF_OUTPUT		= 10, +	PERF_COUNT_SW_CGROUP_SWITCHES		= 11,  	PERF_COUNT_SW_MAX,			/* non-ABI */  }; @@ -326,6 +327,7 @@ enum perf_event_read_format {  #define PERF_ATTR_SIZE_VER4	104	/* add: sample_regs_intr */  #define PERF_ATTR_SIZE_VER5	112	/* add: aux_watermark */  #define PERF_ATTR_SIZE_VER6	120	/* add: aux_sample_size */ +#define PERF_ATTR_SIZE_VER7	128	/* add: sig_data */  /*   * Hardware event_id to monitor via a performance monitoring event: @@ -404,7 +406,10 @@ struct perf_event_attr {  				cgroup         :  1, /* include cgroup events */  				text_poke      :  1, /* include text poke events */  				build_id       :  1, /* use build id in mmap2 events */ -				__reserved_1   : 29; +				inherit_thread :  1, /* children only inherit if cloned with CLONE_THREAD */ +				remove_on_exec :  1, /* event is removed from task on exec */ +				sigtrap        :  1, /* send synchronous SIGTRAP on event */ +				__reserved_1   : 26;  	union {  		__u32		wakeup_events;	  /* wakeup every n events */ @@ -456,6 +461,12 @@ struct perf_event_attr {  	__u16	__reserved_2;  	__u32	aux_sample_size;  	__u32	__reserved_3; + +	/* +	 * User provided data if sigtrap=1, passed back to user via +	 * siginfo_t::si_perf_data, e.g. to permit user to identify the event. +	 */ +	__u64	sig_data;  };  /* @@ -1171,10 +1182,15 @@ enum perf_callchain_context {  /**   * PERF_RECORD_AUX::flags bits   */ -#define PERF_AUX_FLAG_TRUNCATED		0x01	/* record was truncated to fit */ -#define PERF_AUX_FLAG_OVERWRITE		0x02	/* snapshot from overwrite mode */ -#define PERF_AUX_FLAG_PARTIAL		0x04	/* record contains gaps */ -#define PERF_AUX_FLAG_COLLISION		0x08	/* sample collided with another */ +#define PERF_AUX_FLAG_TRUNCATED			0x01	/* record was truncated to fit */ +#define PERF_AUX_FLAG_OVERWRITE			0x02	/* snapshot from overwrite mode */ +#define PERF_AUX_FLAG_PARTIAL			0x04	/* record contains gaps */ +#define PERF_AUX_FLAG_COLLISION			0x08	/* sample collided with another */ +#define PERF_AUX_FLAG_PMU_FORMAT_TYPE_MASK	0xff00	/* PMU specific trace format type */ + +/* CoreSight PMU AUX buffer formats */ +#define PERF_AUX_FLAG_CORESIGHT_FORMAT_CORESIGHT	0x0000 /* Default for backward compatibility */ +#define PERF_AUX_FLAG_CORESIGHT_FORMAT_RAW		0x0100 /* Raw format of the source */  #define PERF_FLAG_FD_NO_GROUP		(1UL << 0)  #define PERF_FLAG_FD_OUTPUT		(1UL << 1) diff --git a/tools/include/uapi/linux/prctl.h b/tools/include/uapi/linux/prctl.h index 667f1aed091c..18a9f59dc067 100644 --- a/tools/include/uapi/linux/prctl.h +++ b/tools/include/uapi/linux/prctl.h @@ -255,4 +255,8 @@ struct prctl_mm_map {  # define SYSCALL_DISPATCH_FILTER_ALLOW	0  # define SYSCALL_DISPATCH_FILTER_BLOCK	1 +/* Set/get enabled arm64 pointer authentication keys */ +#define PR_PAC_SET_ENABLED_KEYS		60 +#define PR_PAC_GET_ENABLED_KEYS		61 +  #endif /* _LINUX_PRCTL_H */ | 
