| author | |
| committer | |
| log | 17cf0ad0406b252650dfede188fb3519d286c6ba |
| tree | f1cb64d56e598c1a1220e214b32e7d3ae51905ea |
| parent | a85cb728775375825afe4ebd62c60ae0b361d1e9 |
| signature |
82 files changed, 1734 insertions(+), 1166 deletions(-)
lib/libc/include/aarch64-linux-any/asm/kvm.h+1| ... | @@ -416,6 +416,7 @@ enum { | ... | @@ -416,6 +416,7 @@ enum { |
| 416 | #define KVM_DEV_ARM_ITS_RESTORE_TABLES 2 | 416 | #define KVM_DEV_ARM_ITS_RESTORE_TABLES 2 |
| 417 | #define KVM_DEV_ARM_VGIC_SAVE_PENDING_TABLES	3 | 417 | #define KVM_DEV_ARM_VGIC_SAVE_PENDING_TABLES	3 |
| 418 | #define KVM_DEV_ARM_ITS_CTRL_RESET		4 | 418 | #define KVM_DEV_ARM_ITS_CTRL_RESET		4 |
| 419 | #define KVM_DEV_ARM_VGIC_USERSPACE_PPIS	5 | ||
| 419 | 420 | ||
| 420 | /* Device Control API on vcpu fd */ | 421 | /* Device Control API on vcpu fd */ |
| 421 | #define KVM_ARM_VCPU_PMU_V3_CTRL	0 | 422 | #define KVM_ARM_VCPU_PMU_V3_CTRL	0 |
lib/libc/include/any-linux-any/drm/amdgpu_drm.h+5-2| ... | @@ -479,7 +479,9 @@ struct drm_amdgpu_userq_signal { | ... | @@ -479,7 +479,9 @@ struct drm_amdgpu_userq_signal { |
| 479 | 	 * @num_syncobj_handles: A count that represents the number of syncobj handles in | 479 | 	 * @num_syncobj_handles: A count that represents the number of syncobj handles in |
| 480 | 	 * @syncobj_handles. | 480 | 	 * @syncobj_handles. |
| 481 | 	 */ | 481 | 	 */ |
| 482 | 	__u64	num_syncobj_handles; | 482 | 	__u16	num_syncobj_handles; |
| 483 | 	__u16	pad0; | ||
| 484 | 	__u32	pad1; | ||
| 483 | 	/** | 485 | 	/** |
| 484 | 	 * @bo_read_handles: The list of BO handles that the submitted user queue job | 486 | 	 * @bo_read_handles: The list of BO handles that the submitted user queue job |
| 485 | 	 * is using for read only. This will update BO fences in the kernel. | 487 | 	 * is using for read only. This will update BO fences in the kernel. |
| ... | @@ -563,7 +565,8 @@ struct drm_amdgpu_userq_wait { | ... | @@ -563,7 +565,8 @@ struct drm_amdgpu_userq_wait { |
| 563 | 	 * @num_syncobj_handles: A count that represents the number of syncobj handles in | 565 | 	 * @num_syncobj_handles: A count that represents the number of syncobj handles in |
| 564 | 	 * @syncobj_handles. | 566 | 	 * @syncobj_handles. |
| 565 | 	 */ | 567 | 	 */ |
| 566 | 	__u32	num_syncobj_handles; | 568 | 	__u16	num_syncobj_handles; |
| 569 | 	__u16	pad0; | ||
| 567 | 	/** | 570 | 	/** |
| 568 | 	 * @num_bo_read_handles: A count that represents the number of read BO handles in | 571 | 	 * @num_bo_read_handles: A count that represents the number of read BO handles in |
| 569 | 	 * @bo_read_handles. | 572 | 	 * @bo_read_handles. |
lib/libc/include/any-linux-any/drm/amdxdna_accel.h+42-5| ... | @@ -156,10 +156,11 @@ struct amdxdna_drm_config_hwctx { | ... | @@ -156,10 +156,11 @@ struct amdxdna_drm_config_hwctx { |
| 156 | 156 | ||
| 157 | enum amdxdna_bo_type { | 157 | enum amdxdna_bo_type { |
| 158 | 	AMDXDNA_BO_INVALID = 0, | 158 | 	AMDXDNA_BO_INVALID = 0, |
| 159 | 	AMDXDNA_BO_SHMEM, | 159 | 	AMDXDNA_BO_SHMEM = 1, /* Be compatible with legacy application code. */ |
| 160 | 	AMDXDNA_BO_DEV_HEAP, | 160 | 	AMDXDNA_BO_SHARE = 1, |
| 161 | 	AMDXDNA_BO_DEV, | 161 | 	AMDXDNA_BO_DEV_HEAP = 2, |
| 162 | 	AMDXDNA_BO_CMD, | 162 | 	AMDXDNA_BO_DEV = 3, |
| 163 | 	AMDXDNA_BO_CMD = 4, | ||
| 163 | }; | 164 | }; |
| 164 | 165 | ||
| 165 | /** | 166 | /** |
| ... | @@ -353,7 +354,8 @@ struct amdxdna_drm_query_clock_metadata { | ... | @@ -353,7 +354,8 @@ struct amdxdna_drm_query_clock_metadata { |
| 353 | }; | 354 | }; |
| 354 | 355 | ||
| 355 | enum amdxdna_sensor_type { | 356 | enum amdxdna_sensor_type { |
| 356 | 	AMDXDNA_SENSOR_TYPE_POWER | 357 | 	AMDXDNA_SENSOR_TYPE_POWER, |
| 358 | 	AMDXDNA_SENSOR_TYPE_COLUMN_UTILIZATION | ||
| 357 | }; | 359 | }; |
| 358 | 360 | ||
| 359 | /** | 361 | /** |
| ... | @@ -589,8 +591,37 @@ struct amdxdna_async_error { | ... | @@ -589,8 +591,37 @@ struct amdxdna_async_error { |
| 589 | 	__u64 ex_err_code; | 591 | 	__u64 ex_err_code; |
| 590 | }; | 592 | }; |
| 591 | 593 | ||
| 594 | /** | ||
| 595 | * struct amdxdna_drm_bo_usage - all types of BO usage | ||
| 596 | * BOs managed by XRT/SHIM/driver is counted as internal. | ||
| 597 | * Others are counted as external which are managed by applications. | ||
| 598 | * | ||
| 599 | * Among all types of BOs: | ||
| 600 | * AMDXDNA_BO_DEV_HEAP - is counted for internal. | ||
| 601 | * AMDXDNA_BO_SHARE - is counted for external. | ||
| 602 | * AMDXDNA_BO_CMD - is counted for internal. | ||
| 603 | * AMDXDNA_BO_DEV - is counted by heap_usage only, not internal | ||
| 604 | * or external. It does not add to the total memory | ||
| 605 | * footprint since its mem comes from heap which is | ||
| 606 | * already counted as internal. | ||
| 607 | */ | ||
| 608 | struct amdxdna_drm_bo_usage { | ||
| 609 | 	/** @pid: The ID of the process to query from. */ | ||
| 610 | 	__s64 pid; | ||
| 611 | 	/** @total_usage: Total BO size used by process. */ | ||
| 612 | 	__u64 total_usage; | ||
| 613 | 	/** @internal_usage: Total internal BO size used by process. */ | ||
| 614 | 	__u64 internal_usage; | ||
| 615 | 	/** @heap_usage: Total device BO size used by process. */ | ||
| 616 | 	__u64 heap_usage; | ||
| 617 | }; | ||
| 618 | |||
| 619 | /* | ||
| 620 | * Supported params in struct amdxdna_drm_get_array | ||
| 621 | */ | ||
| 592 | #define DRM_AMDXDNA_HW_CONTEXT_ALL	0 | 622 | #define DRM_AMDXDNA_HW_CONTEXT_ALL	0 |
| 593 | #define DRM_AMDXDNA_HW_LAST_ASYNC_ERR	2 | 623 | #define DRM_AMDXDNA_HW_LAST_ASYNC_ERR	2 |
| 624 | #define DRM_AMDXDNA_BO_USAGE		6 | ||
| 594 | 625 | ||
| 595 | /** | 626 | /** |
| 596 | * struct amdxdna_drm_get_array - Get information array. | 627 | * struct amdxdna_drm_get_array - Get information array. |
| ... | @@ -603,6 +634,12 @@ struct amdxdna_drm_get_array { | ... | @@ -603,6 +634,12 @@ struct amdxdna_drm_get_array { |
| 603 | 	 * | 634 | 	 * |
| 604 | 	 * %DRM_AMDXDNA_HW_CONTEXT_ALL: | 635 | 	 * %DRM_AMDXDNA_HW_CONTEXT_ALL: |
| 605 | 	 * Returns all created hardware contexts. | 636 | 	 * Returns all created hardware contexts. |
| 637 | 	 * | ||
| 638 | 	 * %DRM_AMDXDNA_HW_LAST_ASYNC_ERR: | ||
| 639 | 	 * Returns last async error. | ||
| 640 | 	 * | ||
| 641 | 	 * %DRM_AMDXDNA_BO_USAGE: | ||
| 642 | 	 * Returns usage of heap/internal/external BOs. | ||
| 606 | 	 */ | 643 | 	 */ |
| 607 | 	__u32 param; | 644 | 	__u32 param; |
| 608 | 	/** | 645 | 	/** |
lib/libc/include/any-linux-any/drm/drm_fourcc.h+16| ... | @@ -1422,6 +1422,22 @@ drm_fourcc_canonicalize_nvidia_format_mod(__u64 modifier) | ... | @@ -1422,6 +1422,22 @@ drm_fourcc_canonicalize_nvidia_format_mod(__u64 modifier) |
| 1422 | #define DRM_FORMAT_MOD_ARM_16X16_BLOCK_U_INTERLEAVED \ | 1422 | #define DRM_FORMAT_MOD_ARM_16X16_BLOCK_U_INTERLEAVED \ |
| 1423 | 	DRM_FORMAT_MOD_ARM_CODE(DRM_FORMAT_MOD_ARM_TYPE_MISC, 1ULL) | 1423 | 	DRM_FORMAT_MOD_ARM_CODE(DRM_FORMAT_MOD_ARM_TYPE_MISC, 1ULL) |
| 1424 | 1424 | ||
| 1425 | /* | ||
| 1426 | * ARM 64k interleaved modifier | ||
| 1427 | * | ||
| 1428 | * This is used by ARM Mali v10+ GPUs. With this modifier, the plane is divided | ||
| 1429 | * into 64k byte 1:1 or 2:1 -sided tiles. The 64k tiles are laid out linearly. | ||
| 1430 | * Each 64k tile is divided into blocks of 16x16 texel blocks, which are | ||
| 1431 | * themselves laid out linearly within a 64k tile. Then within each 16x16 | ||
| 1432 | * block, texel blocks are laid out according to U order, similar to | ||
| 1433 | * 16X16_BLOCK_U_INTERLEAVED. | ||
| 1434 | * | ||
| 1435 | * Note that unlike 16X16_BLOCK_U_INTERLEAVED, the layout does not change | ||
| 1436 | * depending on whether a format is compressed or not. | ||
| 1437 | */ | ||
| 1438 | #define DRM_FORMAT_MOD_ARM_INTERLEAVED_64K \ | ||
| 1439 | 	DRM_FORMAT_MOD_ARM_CODE(DRM_FORMAT_MOD_ARM_TYPE_MISC, 2ULL) | ||
| 1440 | |||
| 1425 | /* | 1441 | /* |
| 1426 | * Allwinner tiled modifier | 1442 | * Allwinner tiled modifier |
| 1427 | * | 1443 | * |
lib/libc/include/any-linux-any/drm/drm_mode.h+84| ... | @@ -27,6 +27,9 @@ | ... | @@ -27,6 +27,9 @@ |
| 27 | #ifndef _DRM_MODE_H | 27 | #ifndef _DRM_MODE_H |
| 28 | #define _DRM_MODE_H | 28 | #define _DRM_MODE_H |
| 29 | 29 | ||
| 30 | #include <linux/bits.h> | ||
| 31 | #include <linux/const.h> | ||
| 32 | |||
| 30 | #include "drm.h" | 33 | #include "drm.h" |
| 31 | 34 | ||
| 32 | #if defined(__cplusplus) | 35 | #if defined(__cplusplus) |
| ... | @@ -166,6 +169,10 @@ extern "C" { | ... | @@ -166,6 +169,10 @@ extern "C" { |
| 166 | #define DRM_MODE_LINK_STATUS_GOOD	0 | 169 | #define DRM_MODE_LINK_STATUS_GOOD	0 |
| 167 | #define DRM_MODE_LINK_STATUS_BAD	1 | 170 | #define DRM_MODE_LINK_STATUS_BAD	1 |
| 168 | 171 | ||
| 172 | /* Panel type property */ | ||
| 173 | #define DRM_MODE_PANEL_TYPE_UNKNOWN	0 | ||
| 174 | #define DRM_MODE_PANEL_TYPE_OLED	1 | ||
| 175 | |||
| 169 | /* | 176 | /* |
| 170 | * DRM_MODE_ROTATE_<degrees> | 177 | * DRM_MODE_ROTATE_<degrees> |
| 171 | * | 178 | * |
| ... | @@ -1545,6 +1552,83 @@ struct drm_mode_closefb { | ... | @@ -1545,6 +1552,83 @@ struct drm_mode_closefb { |
| 1545 | 	__u32 pad; | 1552 | 	__u32 pad; |
| 1546 | }; | 1553 | }; |
| 1547 | 1554 | ||
| 1555 | /* | ||
| 1556 | * Put 16-bit ARGB values into a standard 64-bit representation that can be | ||
| 1557 | * used for ioctl parameters, inter-driver communication, etc. | ||
| 1558 | * | ||
| 1559 | * If the component values being provided contain less than 16 bits of | ||
| 1560 | * precision, use a conversion ratio to get a better color approximation. | ||
| 1561 | * The ratio is computed as (2^16 - 1) / (2^bpc - 1), where bpc and 16 are | ||
| 1562 | * the input and output precision, respectively. | ||
| 1563 | * Also note bpc must be greater than 0. | ||
| 1564 | */ | ||
| 1565 | #define __DRM_ARGB64_PREP(c, shift)					\ | ||
| 1566 | 	(((__u64)(c) & __GENMASK(15, 0)) << (shift)) | ||
| 1567 | |||
| 1568 | #define __DRM_ARGB64_PREP_BPC(c, shift, bpc)				\ | ||
| 1569 | ({									\ | ||
| 1570 | 	__u16 mask = __GENMASK((bpc) - 1, 0);				\ | ||
| 1571 | 	__u16 conv = __KERNEL_DIV_ROUND_CLOSEST((mask & (c)) *		\ | ||
| 1572 | 						__GENMASK(15, 0), mask);\ | ||
| 1573 | 	__DRM_ARGB64_PREP(conv, shift);					\ | ||
| 1574 | }) | ||
| 1575 | |||
| 1576 | #define DRM_ARGB64_PREP(alpha, red, green, blue)			\ | ||
| 1577 | (									\ | ||
| 1578 | 	__DRM_ARGB64_PREP(alpha, 48) |					\ | ||
| 1579 | 	__DRM_ARGB64_PREP(red, 32) |					\ | ||
| 1580 | 	__DRM_ARGB64_PREP(green, 16) |					\ | ||
| 1581 | 	__DRM_ARGB64_PREP(blue, 0)					\ | ||
| 1582 | ) | ||
| 1583 | |||
| 1584 | #define DRM_ARGB64_PREP_BPC(alpha, red, green, blue, bpc)		\ | ||
| 1585 | ({									\ | ||
| 1586 | 	__typeof__(bpc) __bpc = bpc;					\ | ||
| 1587 | 	__DRM_ARGB64_PREP_BPC(alpha, 48, __bpc) |			\ | ||
| 1588 | 	__DRM_ARGB64_PREP_BPC(red, 32, __bpc) |			\ | ||
| 1589 | 	__DRM_ARGB64_PREP_BPC(green, 16, __bpc) |			\ | ||
| 1590 | 	__DRM_ARGB64_PREP_BPC(blue, 0, __bpc);			\ | ||
| 1591 | }) | ||
| 1592 | |||
| 1593 | /* | ||
| 1594 | * Extract the specified color component from a standard 64-bit ARGB value. | ||
| 1595 | * | ||
| 1596 | * If the requested precision is less than 16 bits, make use of a conversion | ||
| 1597 | * ratio calculated as (2^bpc - 1) / (2^16 - 1), where bpc and 16 are the | ||
| 1598 | * output and input precision, respectively. | ||
| 1599 | * | ||
| 1600 | * If speed is more important than accuracy, use DRM_ARGB64_GET*_BPCS() | ||
| 1601 | * instead of DRM_ARGB64_GET*_BPC() in order to replace the expensive | ||
| 1602 | * division with a simple bit right-shift operation. | ||
| 1603 | */ | ||
| 1604 | #define __DRM_ARGB64_GET(c, shift)					\ | ||
| 1605 | 	((__u16)(((__u64)(c) >> (shift)) & __GENMASK(15, 0))) | ||
| 1606 | |||
| 1607 | #define __DRM_ARGB64_GET_BPC(c, shift, bpc)				\ | ||
| 1608 | ({									\ | ||
| 1609 | 	__u16 comp = __DRM_ARGB64_GET(c, shift);			\ | ||
| 1610 | 	__KERNEL_DIV_ROUND_CLOSEST(comp * __GENMASK((bpc) - 1, 0),	\ | ||
| 1611 | 				 __GENMASK(15, 0));			\ | ||
| 1612 | }) | ||
| 1613 | |||
| 1614 | #define __DRM_ARGB64_GET_BPCS(c, shift, bpc)				\ | ||
| 1615 | 	(__DRM_ARGB64_GET(c, shift) >> (16 - (bpc))) | ||
| 1616 | |||
| 1617 | #define DRM_ARGB64_GETA(c)		__DRM_ARGB64_GET(c, 48) | ||
| 1618 | #define DRM_ARGB64_GETR(c)		__DRM_ARGB64_GET(c, 32) | ||
| 1619 | #define DRM_ARGB64_GETG(c)		__DRM_ARGB64_GET(c, 16) | ||
| 1620 | #define DRM_ARGB64_GETB(c)		__DRM_ARGB64_GET(c, 0) | ||
| 1621 | |||
| 1622 | #define DRM_ARGB64_GETA_BPC(c, bpc)	__DRM_ARGB64_GET_BPC(c, 48, bpc) | ||
| 1623 | #define DRM_ARGB64_GETR_BPC(c, bpc)	__DRM_ARGB64_GET_BPC(c, 32, bpc) | ||
| 1624 | #define DRM_ARGB64_GETG_BPC(c, bpc)	__DRM_ARGB64_GET_BPC(c, 16, bpc) | ||
| 1625 | #define DRM_ARGB64_GETB_BPC(c, bpc)	__DRM_ARGB64_GET_BPC(c, 0, bpc) | ||
| 1626 | |||
| 1627 | #define DRM_ARGB64_GETA_BPCS(c, bpc)	__DRM_ARGB64_GET_BPCS(c, 48, bpc) | ||
| 1628 | #define DRM_ARGB64_GETR_BPCS(c, bpc)	__DRM_ARGB64_GET_BPCS(c, 32, bpc) | ||
| 1629 | #define DRM_ARGB64_GETG_BPCS(c, bpc)	__DRM_ARGB64_GET_BPCS(c, 16, bpc) | ||
| 1630 | #define DRM_ARGB64_GETB_BPCS(c, bpc)	__DRM_ARGB64_GET_BPCS(c, 0, bpc) | ||
| 1631 | |||
| 1548 | #if defined(__cplusplus) | 1632 | #if defined(__cplusplus) |
| 1549 | } | 1633 | } |
| 1550 | #endif | 1634 | #endif |
lib/libc/include/any-linux-any/drm/drm_ras.h created+49| ... | @@ -0,0 +1,49 @@ | ||
| 1 | /* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) */ | ||
| 2 | /* Do not edit directly, auto-generated from: */ | ||
| 3 | /*	Documentation/netlink/specs/drm_ras.yaml */ | ||
| 4 | /* YNL-GEN uapi header */ | ||
| 5 | /* To regenerate run: tools/net/ynl/ynl-regen.sh */ | ||
| 6 | |||
| 7 | #ifndef _LINUX_DRM_RAS_H | ||
| 8 | #define _LINUX_DRM_RAS_H | ||
| 9 | |||
| 10 | #define DRM_RAS_FAMILY_NAME	"drm-ras" | ||
| 11 | #define DRM_RAS_FAMILY_VERSION	1 | ||
| 12 | |||
| 13 | /* | ||
| 14 | * Type of the node. Currently, only error-counter nodes are supported, which | ||
| 15 | * expose reliability counters for a hardware/software component. | ||
| 16 | */ | ||
| 17 | enum drm_ras_node_type { | ||
| 18 | 	DRM_RAS_NODE_TYPE_ERROR_COUNTER = 1, | ||
| 19 | }; | ||
| 20 | |||
| 21 | enum { | ||
| 22 | 	DRM_RAS_A_NODE_ATTRS_NODE_ID = 1, | ||
| 23 | 	DRM_RAS_A_NODE_ATTRS_DEVICE_NAME, | ||
| 24 | 	DRM_RAS_A_NODE_ATTRS_NODE_NAME, | ||
| 25 | 	DRM_RAS_A_NODE_ATTRS_NODE_TYPE, | ||
| 26 | |||
| 27 | 	__DRM_RAS_A_NODE_ATTRS_MAX, | ||
| 28 | 	DRM_RAS_A_NODE_ATTRS_MAX = (__DRM_RAS_A_NODE_ATTRS_MAX - 1) | ||
| 29 | }; | ||
| 30 | |||
| 31 | enum { | ||
| 32 | 	DRM_RAS_A_ERROR_COUNTER_ATTRS_NODE_ID = 1, | ||
| 33 | 	DRM_RAS_A_ERROR_COUNTER_ATTRS_ERROR_ID, | ||
| 34 | 	DRM_RAS_A_ERROR_COUNTER_ATTRS_ERROR_NAME, | ||
| 35 | 	DRM_RAS_A_ERROR_COUNTER_ATTRS_ERROR_VALUE, | ||
| 36 | |||
| 37 | 	__DRM_RAS_A_ERROR_COUNTER_ATTRS_MAX, | ||
| 38 | 	DRM_RAS_A_ERROR_COUNTER_ATTRS_MAX = (__DRM_RAS_A_ERROR_COUNTER_ATTRS_MAX - 1) | ||
| 39 | }; | ||
| 40 | |||
| 41 | enum { | ||
| 42 | 	DRM_RAS_CMD_LIST_NODES = 1, | ||
| 43 | 	DRM_RAS_CMD_GET_ERROR_COUNTER, | ||
| 44 | |||
| 45 | 	__DRM_RAS_CMD_MAX, | ||
| 46 | 	DRM_RAS_CMD_MAX = (__DRM_RAS_CMD_MAX - 1) | ||
| 47 | }; | ||
| 48 | |||
| 49 | #endif /* _LINUX_DRM_RAS_H */ | ||
| \ No newline at end of file | |||
lib/libc/include/any-linux-any/drm/msm_drm.h+1| ... | @@ -117,6 +117,7 @@ struct drm_msm_timespec { | ... | @@ -117,6 +117,7 @@ struct drm_msm_timespec { |
| 117 | * ioctl will throw -EPIPE. | 117 | * ioctl will throw -EPIPE. |
| 118 | */ | 118 | */ |
| 119 | #define MSM_PARAM_EN_VM_BIND 0x16 /* WO, once */ | 119 | #define MSM_PARAM_EN_VM_BIND 0x16 /* WO, once */ |
| 120 | #define MSM_PARAM_AQE	 0x17 /* RO */ | ||
| 120 | 121 | ||
| 121 | /* For backwards compat. The original support for preemption was based on | 122 | /* For backwards compat. The original support for preemption was based on |
| 122 | * a single ring per priority level so # of priority levels equals the # | 123 | * a single ring per priority level so # of priority levels equals the # |
lib/libc/include/any-linux-any/drm/nouveau_drm.h+66| ... | @@ -432,6 +432,69 @@ struct drm_nouveau_exec { | ... | @@ -432,6 +432,69 @@ struct drm_nouveau_exec { |
| 432 | 	__u64 push_ptr; | 432 | 	__u64 push_ptr; |
| 433 | }; | 433 | }; |
| 434 | 434 | ||
| 435 | struct drm_nouveau_get_zcull_info { | ||
| 436 | 	/** | ||
| 437 | 	 * @width_align_pixels: required alignment for region widths, in pixels | ||
| 438 | 	 * (typically #TPC's * 16). | ||
| 439 | 	 */ | ||
| 440 | 	__u32 width_align_pixels; | ||
| 441 | 	/** | ||
| 442 | 	 * @height_align_pixels: required alignment for region heights, in | ||
| 443 | 	 * pixels (typically 32). | ||
| 444 | 	 */ | ||
| 445 | 	__u32 height_align_pixels; | ||
| 446 | 	/** | ||
| 447 | 	 * @pixel_squares_by_aliquots: the pixel area covered by an aliquot | ||
| 448 | 	 * (typically #Zcull_banks * 16 * 16). | ||
| 449 | 	 */ | ||
| 450 | 	__u32 pixel_squares_by_aliquots; | ||
| 451 | 	/** | ||
| 452 | 	 * @aliquot_total: the total aliquot pool available in hardware | ||
| 453 | 	 */ | ||
| 454 | 	__u32 aliquot_total; | ||
| 455 | 	/** | ||
| 456 | 	 * @zcull_region_byte_multiplier: the size of an aliquot in bytes, which | ||
| 457 | 	 * is used for save/restore operations on a region | ||
| 458 | 	 */ | ||
| 459 | 	__u32 zcull_region_byte_multiplier; | ||
| 460 | 	/** | ||
| 461 | 	 * @zcull_region_header_size: the region header size in bytes, which is | ||
| 462 | 	 * used for save/restore operations on a region | ||
| 463 | 	 */ | ||
| 464 | 	__u32 zcull_region_header_size; | ||
| 465 | 	/** | ||
| 466 | 	 * @zcull_subregion_header_size: the subregion header size in bytes, | ||
| 467 | 	 * which is used for save/restore operations on a region | ||
| 468 | 	 */ | ||
| 469 | 	__u32 zcull_subregion_header_size; | ||
| 470 | 	/** | ||
| 471 | 	 * @subregion_count: the total number of subregions the hardware | ||
| 472 | 	 * supports | ||
| 473 | 	 */ | ||
| 474 | 	__u32 subregion_count; | ||
| 475 | 	/** | ||
| 476 | 	 * @subregion_width_align_pixels: required alignment for subregion | ||
| 477 | 	 * widths, in pixels (typically #TPC's * 16). | ||
| 478 | 	 */ | ||
| 479 | 	__u32 subregion_width_align_pixels; | ||
| 480 | 	/** | ||
| 481 | 	 * @subregion_height_align_pixels: required alignment for subregion | ||
| 482 | 	 * heights, in pixels | ||
| 483 | 	 */ | ||
| 484 | 	__u32 subregion_height_align_pixels; | ||
| 485 | |||
| 486 | 	/** | ||
| 487 | 	 * @ctxsw_size: the size, in bytes, of a zcull context switching region. | ||
| 488 | 	 * Will be zero if the kernel does not support zcull context switching. | ||
| 489 | 	 */ | ||
| 490 | 	__u32 ctxsw_size; | ||
| 491 | 	/** | ||
| 492 | 	 * @ctxsw_align: the alignment, in bytes, of a zcull context switching | ||
| 493 | 	 * region | ||
| 494 | 	 */ | ||
| 495 | 	__u32 ctxsw_align; | ||
| 496 | }; | ||
| 497 | |||
| 435 | #define DRM_NOUVEAU_GETPARAM 0x00 | 498 | #define DRM_NOUVEAU_GETPARAM 0x00 |
| 436 | #define DRM_NOUVEAU_SETPARAM 0x01 /* deprecated */ | 499 | #define DRM_NOUVEAU_SETPARAM 0x01 /* deprecated */ |
| 437 | #define DRM_NOUVEAU_CHANNEL_ALLOC 0x02 | 500 | #define DRM_NOUVEAU_CHANNEL_ALLOC 0x02 |
| ... | @@ -445,6 +508,7 @@ struct drm_nouveau_exec { | ... | @@ -445,6 +508,7 @@ struct drm_nouveau_exec { |
| 445 | #define DRM_NOUVEAU_VM_INIT 0x10 | 508 | #define DRM_NOUVEAU_VM_INIT 0x10 |
| 446 | #define DRM_NOUVEAU_VM_BIND 0x11 | 509 | #define DRM_NOUVEAU_VM_BIND 0x11 |
| 447 | #define DRM_NOUVEAU_EXEC 0x12 | 510 | #define DRM_NOUVEAU_EXEC 0x12 |
| 511 | #define DRM_NOUVEAU_GET_ZCULL_INFO 0x13 | ||
| 448 | #define DRM_NOUVEAU_GEM_NEW 0x40 | 512 | #define DRM_NOUVEAU_GEM_NEW 0x40 |
| 449 | #define DRM_NOUVEAU_GEM_PUSHBUF 0x41 | 513 | #define DRM_NOUVEAU_GEM_PUSHBUF 0x41 |
| 450 | #define DRM_NOUVEAU_GEM_CPU_PREP 0x42 | 514 | #define DRM_NOUVEAU_GEM_CPU_PREP 0x42 |
| ... | @@ -513,6 +577,8 @@ struct drm_nouveau_svm_bind { | ... | @@ -513,6 +577,8 @@ struct drm_nouveau_svm_bind { |
| 513 | #define DRM_IOCTL_NOUVEAU_VM_INIT DRM_IOWR(DRM_COMMAND_BASE + DRM_NOUVEAU_VM_INIT, struct drm_nouveau_vm_init) | 577 | #define DRM_IOCTL_NOUVEAU_VM_INIT DRM_IOWR(DRM_COMMAND_BASE + DRM_NOUVEAU_VM_INIT, struct drm_nouveau_vm_init) |
| 514 | #define DRM_IOCTL_NOUVEAU_VM_BIND DRM_IOWR(DRM_COMMAND_BASE + DRM_NOUVEAU_VM_BIND, struct drm_nouveau_vm_bind) | 578 | #define DRM_IOCTL_NOUVEAU_VM_BIND DRM_IOWR(DRM_COMMAND_BASE + DRM_NOUVEAU_VM_BIND, struct drm_nouveau_vm_bind) |
| 515 | #define DRM_IOCTL_NOUVEAU_EXEC DRM_IOWR(DRM_COMMAND_BASE + DRM_NOUVEAU_EXEC, struct drm_nouveau_exec) | 579 | #define DRM_IOCTL_NOUVEAU_EXEC DRM_IOWR(DRM_COMMAND_BASE + DRM_NOUVEAU_EXEC, struct drm_nouveau_exec) |
| 580 | |||
| 581 | #define DRM_IOCTL_NOUVEAU_GET_ZCULL_INFO DRM_IOR (DRM_COMMAND_BASE + DRM_NOUVEAU_GET_ZCULL_INFO, struct drm_nouveau_get_zcull_info) | ||
| 516 | #if defined(__cplusplus) | 582 | #if defined(__cplusplus) |
| 517 | } | 583 | } |
| 518 | #endif | 584 | #endif |
lib/libc/include/any-linux-any/drm/panthor_drm.h+61-2| ... | @@ -409,6 +409,38 @@ struct drm_panthor_csif_info { | ... | @@ -409,6 +409,38 @@ struct drm_panthor_csif_info { |
| 409 | 	__u32 pad; | 409 | 	__u32 pad; |
| 410 | }; | 410 | }; |
| 411 | 411 | ||
| 412 | /** | ||
| 413 | * enum drm_panthor_timestamp_info_flags - drm_panthor_timestamp_info.flags | ||
| 414 | */ | ||
| 415 | enum drm_panthor_timestamp_info_flags { | ||
| 416 | 	/** @DRM_PANTHOR_TIMESTAMP_GPU: Query GPU time. */ | ||
| 417 | 	DRM_PANTHOR_TIMESTAMP_GPU = 1 << 0, | ||
| 418 | |||
| 419 | 	/** @DRM_PANTHOR_TIMESTAMP_CPU_NONE: Don't query CPU time. */ | ||
| 420 | 	DRM_PANTHOR_TIMESTAMP_CPU_NONE = 0 << 1, | ||
| 421 | |||
| 422 | 	/** @DRM_PANTHOR_TIMESTAMP_CPU_MONOTONIC: Query CPU time using CLOCK_MONOTONIC. */ | ||
| 423 | 	DRM_PANTHOR_TIMESTAMP_CPU_MONOTONIC = 1 << 1, | ||
| 424 | |||
| 425 | 	/** @DRM_PANTHOR_TIMESTAMP_CPU_MONOTONIC_RAW: Query CPU time using CLOCK_MONOTONIC_RAW. */ | ||
| 426 | 	DRM_PANTHOR_TIMESTAMP_CPU_MONOTONIC_RAW = 2 << 1, | ||
| 427 | |||
| 428 | 	/** @DRM_PANTHOR_TIMESTAMP_CPU_TYPE_MASK: Space reserved for CPU clock type. */ | ||
| 429 | 	DRM_PANTHOR_TIMESTAMP_CPU_TYPE_MASK = 7 << 1, | ||
| 430 | |||
| 431 | 	/** @DRM_PANTHOR_TIMESTAMP_GPU_OFFSET: Query GPU offset. */ | ||
| 432 | 	DRM_PANTHOR_TIMESTAMP_GPU_OFFSET = 1 << 4, | ||
| 433 | |||
| 434 | 	/** @DRM_PANTHOR_TIMESTAMP_GPU_CYCLE_COUNT: Query GPU cycle count. */ | ||
| 435 | 	DRM_PANTHOR_TIMESTAMP_GPU_CYCLE_COUNT = 1 << 5, | ||
| 436 | |||
| 437 | 	/** @DRM_PANTHOR_TIMESTAMP_FREQ: Query timestamp frequency. */ | ||
| 438 | 	DRM_PANTHOR_TIMESTAMP_FREQ = 1 << 6, | ||
| 439 | |||
| 440 | 	/** @DRM_PANTHOR_TIMESTAMP_DURATION: Return duration of time query. */ | ||
| 441 | 	DRM_PANTHOR_TIMESTAMP_DURATION = 1 << 7, | ||
| 442 | }; | ||
| 443 | |||
| 412 | /** | 444 | /** |
| 413 | * struct drm_panthor_timestamp_info - Timestamp information | 445 | * struct drm_panthor_timestamp_info - Timestamp information |
| 414 | * | 446 | * |
| ... | @@ -421,11 +453,38 @@ struct drm_panthor_timestamp_info { | ... | @@ -421,11 +453,38 @@ struct drm_panthor_timestamp_info { |
| 421 | 	 */ | 453 | 	 */ |
| 422 | 	__u64 timestamp_frequency; | 454 | 	__u64 timestamp_frequency; |
| 423 | 455 | ||
| 424 | 	/** @current_timestamp: The current timestamp. */ | 456 | 	/** @current_timestamp: The current GPU timestamp. */ |
| 425 | 	__u64 current_timestamp; | 457 | 	__u64 current_timestamp; |
| 426 | 458 | ||
| 427 | 	/** @timestamp_offset: The offset of the timestamp timer. */ | 459 | 	/** @timestamp_offset: The offset of the GPU timestamp timer. */ |
| 428 | 	__u64 timestamp_offset; | 460 | 	__u64 timestamp_offset; |
| 461 | |||
| 462 | 	/** | ||
| 463 | 	 * @flags: Bitmask of drm_panthor_timestamp_info_flags. | ||
| 464 | 	 * | ||
| 465 | 	 * If set to 0, then it is interpreted as: | ||
| 466 | 	 * DRM_PANTHOR_TIMESTAMP_GPU | | ||
| 467 | 	 * DRM_PANTHOR_TIMESTAMP_GPU_OFFSET | | ||
| 468 | 	 * DRM_PANTHOR_TIMESTAMP_FREQ | ||
| 469 | 	 * | ||
| 470 | 	 * Note: these flags are exclusive to each other (only one can be used): | ||
| 471 | 	 * - DRM_PANTHOR_TIMESTAMP_CPU_NONE | ||
| 472 | 	 * - DRM_PANTHOR_TIMESTAMP_CPU_MONOTONIC | ||
| 473 | 	 * - DRM_PANTHOR_TIMESTAMP_CPU_MONOTONIC_RAW | ||
| 474 | 	 */ | ||
| 475 | 	__u32 flags; | ||
| 476 | |||
| 477 | 	/** @duration_nsec: Duration of time query. */ | ||
| 478 | 	__u32 duration_nsec; | ||
| 479 | |||
| 480 | 	/** @cycle_count: Value of GPU_CYCLE_COUNT. */ | ||
| 481 | 	__u64 cycle_count; | ||
| 482 | |||
| 483 | 	/** @cpu_timestamp_sec: Seconds part of CPU timestamp. */ | ||
| 484 | 	__u64 cpu_timestamp_sec; | ||
| 485 | |||
| 486 | 	/** @cpu_timestamp_nsec: Nanseconds part of CPU timestamp. */ | ||
| 487 | 	__u64 cpu_timestamp_nsec; | ||
| 429 | }; | 488 | }; |
| 430 | 489 | ||
| 431 | /** | 490 | /** |
lib/libc/include/any-linux-any/drm/xe_drm.h+260-8| ... | @@ -83,6 +83,7 @@ extern "C" { | ... | @@ -83,6 +83,7 @@ extern "C" { |
| 83 | * - &DRM_IOCTL_XE_OBSERVATION | 83 | * - &DRM_IOCTL_XE_OBSERVATION |
| 84 | * - &DRM_IOCTL_XE_MADVISE | 84 | * - &DRM_IOCTL_XE_MADVISE |
| 85 | * - &DRM_IOCTL_XE_VM_QUERY_MEM_RANGE_ATTRS | 85 | * - &DRM_IOCTL_XE_VM_QUERY_MEM_RANGE_ATTRS |
| 86 | * - &DRM_IOCTL_XE_VM_GET_PROPERTY | ||
| 86 | */ | 87 | */ |
| 87 | 88 | ||
| 88 | /* | 89 | /* |
| ... | @@ -107,6 +108,7 @@ extern "C" { | ... | @@ -107,6 +108,7 @@ extern "C" { |
| 107 | #define DRM_XE_MADVISE			0x0c | 108 | #define DRM_XE_MADVISE			0x0c |
| 108 | #define DRM_XE_VM_QUERY_MEM_RANGE_ATTRS	0x0d | 109 | #define DRM_XE_VM_QUERY_MEM_RANGE_ATTRS	0x0d |
| 109 | #define DRM_XE_EXEC_QUEUE_SET_PROPERTY	0x0e | 110 | #define DRM_XE_EXEC_QUEUE_SET_PROPERTY	0x0e |
| 111 | #define DRM_XE_VM_GET_PROPERTY		0x0f | ||
| 110 | 112 | ||
| 111 | /* Must be kept compact -- no holes */ | 113 | /* Must be kept compact -- no holes */ |
| 112 | 114 | ||
| ... | @@ -125,6 +127,7 @@ extern "C" { | ... | @@ -125,6 +127,7 @@ extern "C" { |
| 125 | #define DRM_IOCTL_XE_MADVISE			DRM_IOW(DRM_COMMAND_BASE + DRM_XE_MADVISE, struct drm_xe_madvise) | 127 | #define DRM_IOCTL_XE_MADVISE			DRM_IOW(DRM_COMMAND_BASE + DRM_XE_MADVISE, struct drm_xe_madvise) |
| 126 | #define DRM_IOCTL_XE_VM_QUERY_MEM_RANGE_ATTRS	DRM_IOWR(DRM_COMMAND_BASE + DRM_XE_VM_QUERY_MEM_RANGE_ATTRS, struct drm_xe_vm_query_mem_range_attr) | 128 | #define DRM_IOCTL_XE_VM_QUERY_MEM_RANGE_ATTRS	DRM_IOWR(DRM_COMMAND_BASE + DRM_XE_VM_QUERY_MEM_RANGE_ATTRS, struct drm_xe_vm_query_mem_range_attr) |
| 127 | #define DRM_IOCTL_XE_EXEC_QUEUE_SET_PROPERTY	DRM_IOW(DRM_COMMAND_BASE + DRM_XE_EXEC_QUEUE_SET_PROPERTY, struct drm_xe_exec_queue_set_property) | 129 | #define DRM_IOCTL_XE_EXEC_QUEUE_SET_PROPERTY	DRM_IOW(DRM_COMMAND_BASE + DRM_XE_EXEC_QUEUE_SET_PROPERTY, struct drm_xe_exec_queue_set_property) |
| 130 | #define DRM_IOCTL_XE_VM_GET_PROPERTY		DRM_IOWR(DRM_COMMAND_BASE + DRM_XE_VM_GET_PROPERTY, struct drm_xe_vm_get_property) | ||
| 128 | 131 | ||
| 129 | /** | 132 | /** |
| 130 | * DOC: Xe IOCTL Extensions | 133 | * DOC: Xe IOCTL Extensions |
| ... | @@ -335,10 +338,6 @@ struct drm_xe_mem_region { | ... | @@ -335,10 +338,6 @@ struct drm_xe_mem_region { |
| 335 | 	__u64 total_size; | 338 | 	__u64 total_size; |
| 336 | 	/** | 339 | 	/** |
| 337 | 	 * @used: Estimate of the memory used in bytes for this region. | 340 | 	 * @used: Estimate of the memory used in bytes for this region. |
| 338 | 	 * | ||
| 339 | 	 * Requires CAP_PERFMON or CAP_SYS_ADMIN to get reliable | ||
| 340 | 	 * accounting. Without this the value here will always equal | ||
| 341 | 	 * zero. | ||
| 342 | 	 */ | 341 | 	 */ |
| 343 | 	__u64 used; | 342 | 	__u64 used; |
| 344 | 	/** | 343 | 	/** |
| ... | @@ -363,9 +362,7 @@ struct drm_xe_mem_region { | ... | @@ -363,9 +362,7 @@ struct drm_xe_mem_region { |
| 363 | 	 * @cpu_visible_used: Estimate of CPU visible memory used, in | 362 | 	 * @cpu_visible_used: Estimate of CPU visible memory used, in |
| 364 | 	 * bytes. | 363 | 	 * bytes. |
| 365 | 	 * | 364 | 	 * |
| 366 | 	 * Requires CAP_PERFMON or CAP_SYS_ADMIN to get reliable | 365 | 	 * Note this is only currently tracked for |
| 367 | 	 * accounting. Without this the value here will always equal | ||
| 368 | 	 * zero. Note this is only currently tracked for | ||
| 369 | 	 * DRM_XE_MEM_REGION_CLASS_VRAM regions (for other types the value | 366 | 	 * DRM_XE_MEM_REGION_CLASS_VRAM regions (for other types the value |
| 370 | 	 * here will always be zero). | 367 | 	 * here will always be zero). |
| 371 | 	 */ | 368 | 	 */ |
| ... | @@ -412,6 +409,9 @@ struct drm_xe_query_mem_regions { | ... | @@ -412,6 +409,9 @@ struct drm_xe_query_mem_regions { |
| 412 | * - %DRM_XE_QUERY_CONFIG_FLAG_HAS_NO_COMPRESSION_HINT - Flag is set if the | 409 | * - %DRM_XE_QUERY_CONFIG_FLAG_HAS_NO_COMPRESSION_HINT - Flag is set if the |
| 413 | * device supports the userspace hint %DRM_XE_GEM_CREATE_FLAG_NO_COMPRESSION. | 410 | * device supports the userspace hint %DRM_XE_GEM_CREATE_FLAG_NO_COMPRESSION. |
| 414 | * This is exposed only on Xe2+. | 411 | * This is exposed only on Xe2+. |
| 412 | * - %DRM_XE_QUERY_CONFIG_FLAG_HAS_DISABLE_STATE_CACHE_PERF_FIX - Flag is set | ||
| 413 | * if a queue can be creaed with | ||
| 414 | * %DRM_XE_EXEC_QUEUE_SET_DISABLE_STATE_CACHE_PERF_FIX | ||
| 415 | * - %DRM_XE_QUERY_CONFIG_MIN_ALIGNMENT - Minimal memory alignment | 415 | * - %DRM_XE_QUERY_CONFIG_MIN_ALIGNMENT - Minimal memory alignment |
| 416 | * required by this device, typically SZ_4K or SZ_64K | 416 | * required by this device, typically SZ_4K or SZ_64K |
| 417 | * - %DRM_XE_QUERY_CONFIG_VA_BITS - Maximum bits of a virtual address | 417 | * - %DRM_XE_QUERY_CONFIG_VA_BITS - Maximum bits of a virtual address |
| ... | @@ -431,6 +431,8 @@ struct drm_xe_query_config { | ... | @@ -431,6 +431,8 @@ struct drm_xe_query_config { |
| 431 | 	#define DRM_XE_QUERY_CONFIG_FLAG_HAS_LOW_LATENCY	(1 << 1) | 431 | 	#define DRM_XE_QUERY_CONFIG_FLAG_HAS_LOW_LATENCY	(1 << 1) |
| 432 | 	#define DRM_XE_QUERY_CONFIG_FLAG_HAS_CPU_ADDR_MIRROR	(1 << 2) | 432 | 	#define DRM_XE_QUERY_CONFIG_FLAG_HAS_CPU_ADDR_MIRROR	(1 << 2) |
| 433 | 	#define DRM_XE_QUERY_CONFIG_FLAG_HAS_NO_COMPRESSION_HINT (1 << 3) | 433 | 	#define DRM_XE_QUERY_CONFIG_FLAG_HAS_NO_COMPRESSION_HINT (1 << 3) |
| 434 | 	#define DRM_XE_QUERY_CONFIG_FLAG_HAS_DISABLE_STATE_CACHE_PERF_FIX	(1 << 4) | ||
| 435 | 	#define DRM_XE_QUERY_CONFIG_FLAG_HAS_PURGING_SUPPORT (1 << 5) | ||
| 434 | #define DRM_XE_QUERY_CONFIG_MIN_ALIGNMENT		2 | 436 | #define DRM_XE_QUERY_CONFIG_MIN_ALIGNMENT		2 |
| 435 | #define DRM_XE_QUERY_CONFIG_VA_BITS			3 | 437 | #define DRM_XE_QUERY_CONFIG_VA_BITS			3 |
| 436 | #define DRM_XE_QUERY_CONFIG_MAX_EXEC_QUEUE_PRIORITY	4 | 438 | #define DRM_XE_QUERY_CONFIG_MAX_EXEC_QUEUE_PRIORITY	4 |
| ... | @@ -975,6 +977,11 @@ struct drm_xe_gem_mmap_offset { | ... | @@ -975,6 +977,11 @@ struct drm_xe_gem_mmap_offset { |
| 975 | * demand when accessed, and also allows per-VM overcommit of memory. | 977 | * demand when accessed, and also allows per-VM overcommit of memory. |
| 976 | * The xe driver internally uses recoverable pagefaults to implement | 978 | * The xe driver internally uses recoverable pagefaults to implement |
| 977 | * this. | 979 | * this. |
| 980 | * - %DRM_XE_VM_CREATE_FLAG_NO_VM_OVERCOMMIT - Requires also | ||
| 981 | * DRM_XE_VM_CREATE_FLAG_FAULT_MODE. This disallows per-VM overcommit | ||
| 982 | * but only during a &DRM_IOCTL_XE_VM_BIND operation with the | ||
| 983 | * %DRM_XE_VM_BIND_FLAG_IMMEDIATE flag set. This may be useful for | ||
| 984 | * user-space naively probing the amount of available memory. | ||
| 978 | */ | 985 | */ |
| 979 | struct drm_xe_vm_create { | 986 | struct drm_xe_vm_create { |
| 980 | 	/** @extensions: Pointer to the first extension struct, if any */ | 987 | 	/** @extensions: Pointer to the first extension struct, if any */ |
| ... | @@ -983,6 +990,7 @@ struct drm_xe_vm_create { | ... | @@ -983,6 +990,7 @@ struct drm_xe_vm_create { |
| 983 | #define DRM_XE_VM_CREATE_FLAG_SCRATCH_PAGE	(1 << 0) | 990 | #define DRM_XE_VM_CREATE_FLAG_SCRATCH_PAGE	(1 << 0) |
| 984 | #define DRM_XE_VM_CREATE_FLAG_LR_MODE	 (1 << 1) | 991 | #define DRM_XE_VM_CREATE_FLAG_LR_MODE	 (1 << 1) |
| 985 | #define DRM_XE_VM_CREATE_FLAG_FAULT_MODE	(1 << 2) | 992 | #define DRM_XE_VM_CREATE_FLAG_FAULT_MODE	(1 << 2) |
| 993 | #define DRM_XE_VM_CREATE_FLAG_NO_VM_OVERCOMMIT (1 << 3) | ||
| 986 | 	/** @flags: Flags */ | 994 | 	/** @flags: Flags */ |
| 987 | 	__u32 flags; | 995 | 	__u32 flags; |
| 988 | 996 | ||
| ... | @@ -1053,6 +1061,13 @@ struct drm_xe_vm_destroy { | ... | @@ -1053,6 +1061,13 @@ struct drm_xe_vm_destroy { |
| 1053 | * not invoke autoreset. Neither will stack variables going out of scope. | 1061 | * not invoke autoreset. Neither will stack variables going out of scope. |
| 1054 | * Therefore it's recommended to always explicitly reset the madvises when | 1062 | * Therefore it's recommended to always explicitly reset the madvises when |
| 1055 | * freeing the memory backing a region used in a &DRM_IOCTL_XE_MADVISE call. | 1063 | * freeing the memory backing a region used in a &DRM_IOCTL_XE_MADVISE call. |
| 1064 | * - %DRM_XE_VM_BIND_FLAG_DECOMPRESS - Request on-device decompression for a MAP. | ||
| 1065 | * When set on a MAP bind operation, request the driver schedule an on-device | ||
| 1066 | * in-place decompression (via the migrate/resolve path) for the GPU mapping | ||
| 1067 | * created by this bind. Only valid for DRM_XE_VM_BIND_OP_MAP; usage on | ||
| 1068 | * other ops is rejected. The bind's pat_index must select the device's | ||
| 1069 | * "no-compression" PAT. Only meaningful for VRAM-backed BOs on devices that | ||
| 1070 | * support Flat CCS and the required HW generation XE2+. | ||
| 1056 | * | 1071 | * |
| 1057 | * The @prefetch_mem_region_instance for %DRM_XE_VM_BIND_OP_PREFETCH can also be: | 1072 | * The @prefetch_mem_region_instance for %DRM_XE_VM_BIND_OP_PREFETCH can also be: |
| 1058 | * - %DRM_XE_CONSULT_MEM_ADVISE_PREF_LOC, which ensures prefetching occurs in | 1073 | * - %DRM_XE_CONSULT_MEM_ADVISE_PREF_LOC, which ensures prefetching occurs in |
| ... | @@ -1103,7 +1118,9 @@ struct drm_xe_vm_bind_op { | ... | @@ -1103,7 +1118,9 @@ struct drm_xe_vm_bind_op { |
| 1103 | 	 * incoherent GT access is possible. | 1118 | 	 * incoherent GT access is possible. |
| 1104 | 	 * | 1119 | 	 * |
| 1105 | 	 * Note: For userptr and externally imported dma-buf the kernel expects | 1120 | 	 * Note: For userptr and externally imported dma-buf the kernel expects |
| 1106 | 	 * either 1WAY or 2WAY for the @pat_index. | 1121 | 	 * either 1WAY or 2WAY for the @pat_index. Starting from NVL-P, for |
| 1122 | 	 * userptr, svm, madvise and externally imported dma-buf the kernel expects | ||
| 1123 | 	 * either 2WAY or 1WAY and XA @pat_index. | ||
| 1107 | 	 * | 1124 | 	 * |
| 1108 | 	 * For DRM_XE_VM_BIND_FLAG_NULL bindings there are no KMD restrictions | 1125 | 	 * For DRM_XE_VM_BIND_FLAG_NULL bindings there are no KMD restrictions |
| 1109 | 	 * on the @pat_index. For such mappings there is no actual memory being | 1126 | 	 * on the @pat_index. For such mappings there is no actual memory being |
| ... | @@ -1160,6 +1177,7 @@ struct drm_xe_vm_bind_op { | ... | @@ -1160,6 +1177,7 @@ struct drm_xe_vm_bind_op { |
| 1160 | #define DRM_XE_VM_BIND_FLAG_CHECK_PXP	(1 << 4) | 1177 | #define DRM_XE_VM_BIND_FLAG_CHECK_PXP	(1 << 4) |
| 1161 | #define DRM_XE_VM_BIND_FLAG_CPU_ADDR_MIRROR	(1 << 5) | 1178 | #define DRM_XE_VM_BIND_FLAG_CPU_ADDR_MIRROR	(1 << 5) |
| 1162 | #define DRM_XE_VM_BIND_FLAG_MADVISE_AUTORESET	(1 << 6) | 1179 | #define DRM_XE_VM_BIND_FLAG_MADVISE_AUTORESET	(1 << 6) |
| 1180 | #define DRM_XE_VM_BIND_FLAG_DECOMPRESS (1 << 7) | ||
| 1163 | 	/** @flags: Bind flags */ | 1181 | 	/** @flags: Bind flags */ |
| 1164 | 	__u32 flags; | 1182 | 	__u32 flags; |
| 1165 | 1183 | ||
| ... | @@ -1249,6 +1267,89 @@ struct drm_xe_vm_bind { | ... | @@ -1249,6 +1267,89 @@ struct drm_xe_vm_bind { |
| 1249 | 	__u64 reserved[2]; | 1267 | 	__u64 reserved[2]; |
| 1250 | }; | 1268 | }; |
| 1251 | 1269 | ||
| 1270 | /** struct xe_vm_fault - Describes faults for %DRM_XE_VM_GET_PROPERTY_FAULTS */ | ||
| 1271 | struct xe_vm_fault { | ||
| 1272 | 	/** @address: Canonical address of the fault */ | ||
| 1273 | 	__u64 address; | ||
| 1274 | 	/** @address_precision: Precision of faulted address */ | ||
| 1275 | 	__u32 address_precision; | ||
| 1276 | 	/** @access_type: Type of address access that resulted in fault */ | ||
| 1277 | #define FAULT_ACCESS_TYPE_READ		0 | ||
| 1278 | #define FAULT_ACCESS_TYPE_WRITE		1 | ||
| 1279 | #define FAULT_ACCESS_TYPE_ATOMIC	2 | ||
| 1280 | 	__u8 access_type; | ||
| 1281 | 	/** @fault_type: Type of fault reported */ | ||
| 1282 | #define FAULT_TYPE_NOT_PRESENT		0 | ||
| 1283 | #define FAULT_TYPE_WRITE_ACCESS		1 | ||
| 1284 | #define FAULT_TYPE_ATOMIC_ACCESS	2 | ||
| 1285 | 	__u8 fault_type; | ||
| 1286 | 	/** @fault_level: fault level of the fault */ | ||
| 1287 | #define FAULT_LEVEL_PTE		0 | ||
| 1288 | #define FAULT_LEVEL_PDE		1 | ||
| 1289 | #define FAULT_LEVEL_PDP		2 | ||
| 1290 | #define FAULT_LEVEL_PML4	3 | ||
| 1291 | #define FAULT_LEVEL_PML5	4 | ||
| 1292 | 	__u8 fault_level; | ||
| 1293 | 	/** @pad: MBZ */ | ||
| 1294 | 	__u8 pad; | ||
| 1295 | 	/** @reserved: MBZ */ | ||
| 1296 | 	__u64 reserved[4]; | ||
| 1297 | }; | ||
| 1298 | |||
| 1299 | /** | ||
| 1300 | * struct drm_xe_vm_get_property - Input of &DRM_IOCTL_XE_VM_GET_PROPERTY | ||
| 1301 | * | ||
| 1302 | * The user provides a VM and a property to query among DRM_XE_VM_GET_PROPERTY_*, | ||
| 1303 | * and sets the values in the vm_id and property members, respectively. This | ||
| 1304 | * determines both the VM to get the property of, as well as the property to | ||
| 1305 | * report. | ||
| 1306 | * | ||
| 1307 | * If size is set to 0, the driver fills it with the required size for the | ||
| 1308 | * requested property. The user is expected here to allocate memory for the | ||
| 1309 | * property structure and to provide a pointer to the allocated memory using the | ||
| 1310 | * data member. For some properties, this may be zero, in which case, the | ||
| 1311 | * value of the property will be saved to the value member and size will remain | ||
| 1312 | * zero on return. | ||
| 1313 | * | ||
| 1314 | * If size is not zero, then the IOCTL will attempt to copy the requested | ||
| 1315 | * property into the data member. | ||
| 1316 | * | ||
| 1317 | * The IOCTL will return -ENOENT if the VM could not be identified from the | ||
| 1318 | * provided VM ID, or -EINVAL if the IOCTL fails for any other reason, such as | ||
| 1319 | * providing an invalid size for the given property or if the property data | ||
| 1320 | * could not be copied to the memory allocated to the data member. | ||
| 1321 | * | ||
| 1322 | * The property member can be: | ||
| 1323 | * - %DRM_XE_VM_GET_PROPERTY_FAULTS | ||
| 1324 | */ | ||
| 1325 | struct drm_xe_vm_get_property { | ||
| 1326 | 	/** @extensions: Pointer to the first extension struct, if any */ | ||
| 1327 | 	__u64 extensions; | ||
| 1328 | |||
| 1329 | 	/** @vm_id: The ID of the VM to query the properties of */ | ||
| 1330 | 	__u32 vm_id; | ||
| 1331 | |||
| 1332 | #define DRM_XE_VM_GET_PROPERTY_FAULTS		0 | ||
| 1333 | 	/** @property: property to get */ | ||
| 1334 | 	__u32 property; | ||
| 1335 | |||
| 1336 | 	/** @size: Size to allocate for @data */ | ||
| 1337 | 	__u32 size; | ||
| 1338 | |||
| 1339 | 	/** @pad: MBZ */ | ||
| 1340 | 	__u32 pad; | ||
| 1341 | |||
| 1342 | 	union { | ||
| 1343 | 		/** @data: Pointer to user-defined array of flexible size and type */ | ||
| 1344 | 		__u64 data; | ||
| 1345 | 		/** @value: Return value for scalar queries */ | ||
| 1346 | 		__u64 value; | ||
| 1347 | 	}; | ||
| 1348 | |||
| 1349 | 	/** @reserved: MBZ */ | ||
| 1350 | 	__u64 reserved[3]; | ||
| 1351 | }; | ||
| 1352 | |||
| 1252 | /** | 1353 | /** |
| 1253 | * struct drm_xe_exec_queue_create - Input of &DRM_IOCTL_XE_EXEC_QUEUE_CREATE | 1354 | * struct drm_xe_exec_queue_create - Input of &DRM_IOCTL_XE_EXEC_QUEUE_CREATE |
| 1254 | * | 1355 | * |
| ... | @@ -1285,6 +1386,9 @@ struct drm_xe_vm_bind { | ... | @@ -1285,6 +1386,9 @@ struct drm_xe_vm_bind { |
| 1285 | * - %DRM_XE_EXEC_QUEUE_SET_PROPERTY_MULTI_QUEUE_PRIORITY - Set the queue | 1386 | * - %DRM_XE_EXEC_QUEUE_SET_PROPERTY_MULTI_QUEUE_PRIORITY - Set the queue |
| 1286 | * priority within the multi-queue group. Current valid priority values are 0–2 | 1387 | * priority within the multi-queue group. Current valid priority values are 0–2 |
| 1287 | * (default is 1), with higher values indicating higher priority. | 1388 | * (default is 1), with higher values indicating higher priority. |
| 1389 | * - %DRM_XE_EXEC_QUEUE_SET_DISABLE_STATE_CACHE_PERF_FIX - Set the queue to | ||
| 1390 | * enable render color cache keying on BTP+BTI instead of just BTI | ||
| 1391 | * (only valid for render queues). | ||
| 1288 | * | 1392 | * |
| 1289 | * The example below shows how to use @drm_xe_exec_queue_create to create | 1393 | * The example below shows how to use @drm_xe_exec_queue_create to create |
| 1290 | * a simple exec_queue (no parallel submission) of class | 1394 | * a simple exec_queue (no parallel submission) of class |
| ... | @@ -1329,6 +1433,7 @@ struct drm_xe_exec_queue_create { | ... | @@ -1329,6 +1433,7 @@ struct drm_xe_exec_queue_create { |
| 1329 | #define DRM_XE_EXEC_QUEUE_SET_PROPERTY_MULTI_GROUP		4 | 1433 | #define DRM_XE_EXEC_QUEUE_SET_PROPERTY_MULTI_GROUP		4 |
| 1330 | #define DRM_XE_MULTI_GROUP_CREATE				(1ull << 63) | 1434 | #define DRM_XE_MULTI_GROUP_CREATE				(1ull << 63) |
| 1331 | #define DRM_XE_EXEC_QUEUE_SET_PROPERTY_MULTI_QUEUE_PRIORITY	5 | 1435 | #define DRM_XE_EXEC_QUEUE_SET_PROPERTY_MULTI_QUEUE_PRIORITY	5 |
| 1436 | #define DRM_XE_EXEC_QUEUE_SET_DISABLE_STATE_CACHE_PERF_FIX	6 | ||
| 1332 | 	/** @extensions: Pointer to the first extension struct, if any */ | 1437 | 	/** @extensions: Pointer to the first extension struct, if any */ |
| 1333 | 	__u64 extensions; | 1438 | 	__u64 extensions; |
| 1334 | 1439 | ||
| ... | @@ -2067,6 +2172,7 @@ struct drm_xe_query_eu_stall { | ... | @@ -2067,6 +2172,7 @@ struct drm_xe_query_eu_stall { |
| 2067 | * - DRM_XE_MEM_RANGE_ATTR_PREFERRED_LOC: Set preferred memory location. | 2172 | * - DRM_XE_MEM_RANGE_ATTR_PREFERRED_LOC: Set preferred memory location. |
| 2068 | * - DRM_XE_MEM_RANGE_ATTR_ATOMIC: Set atomic access policy. | 2173 | * - DRM_XE_MEM_RANGE_ATTR_ATOMIC: Set atomic access policy. |
| 2069 | * - DRM_XE_MEM_RANGE_ATTR_PAT: Set page attribute table index. | 2174 | * - DRM_XE_MEM_RANGE_ATTR_PAT: Set page attribute table index. |
| 2175 | * - DRM_XE_VMA_ATTR_PURGEABLE_STATE: Set purgeable state for BOs. | ||
| 2070 | * | 2176 | * |
| 2071 | * Example: | 2177 | * Example: |
| 2072 | * | 2178 | * |
| ... | @@ -2099,6 +2205,7 @@ struct drm_xe_madvise { | ... | @@ -2099,6 +2205,7 @@ struct drm_xe_madvise { |
| 2099 | #define DRM_XE_MEM_RANGE_ATTR_PREFERRED_LOC	0 | 2205 | #define DRM_XE_MEM_RANGE_ATTR_PREFERRED_LOC	0 |
| 2100 | #define DRM_XE_MEM_RANGE_ATTR_ATOMIC		1 | 2206 | #define DRM_XE_MEM_RANGE_ATTR_ATOMIC		1 |
| 2101 | #define DRM_XE_MEM_RANGE_ATTR_PAT		2 | 2207 | #define DRM_XE_MEM_RANGE_ATTR_PAT		2 |
| 2208 | #define DRM_XE_VMA_ATTR_PURGEABLE_STATE		3 | ||
| 2102 | 	/** @type: type of attribute */ | 2209 | 	/** @type: type of attribute */ |
| 2103 | 	__u32 type; | 2210 | 	__u32 type; |
| 2104 | 2211 | ||
| ... | @@ -2189,6 +2296,72 @@ struct drm_xe_madvise { | ... | @@ -2189,6 +2296,72 @@ struct drm_xe_madvise { |
| 2189 | 			/** @pat_index.reserved: Reserved */ | 2296 | 			/** @pat_index.reserved: Reserved */ |
| 2190 | 			__u64 reserved; | 2297 | 			__u64 reserved; |
| 2191 | 		} pat_index; | 2298 | 		} pat_index; |
| 2299 | |||
| 2300 | 		/** | ||
| 2301 | 		 * @purge_state_val: Purgeable state configuration | ||
| 2302 | 		 * | ||
| 2303 | 		 * Used when @type == DRM_XE_VMA_ATTR_PURGEABLE_STATE. | ||
| 2304 | 		 * | ||
| 2305 | 		 * Configures the purgeable state of buffer objects in the specified | ||
| 2306 | 		 * virtual address range. This allows applications to hint to the kernel | ||
| 2307 | 		 * about bo's usage patterns for better memory management. | ||
| 2308 | 		 * | ||
| 2309 | 		 * By default all VMAs are in WILLNEED state. | ||
| 2310 | 		 * | ||
| 2311 | 		 * Supported values for @purge_state_val.val: | ||
| 2312 | 		 * - DRM_XE_VMA_PURGEABLE_STATE_WILLNEED (0): Marks BO as needed. | ||
| 2313 | 		 * If the BO was previously purged, the kernel sets the __u32 at | ||
| 2314 | 		 * @retained_ptr to 0 (backing store lost) so the application knows | ||
| 2315 | 		 * it must recreate the BO. | ||
| 2316 | 		 * | ||
| 2317 | 		 * - DRM_XE_VMA_PURGEABLE_STATE_DONTNEED (1): Marks BO as not currently | ||
| 2318 | 		 * needed. Kernel may purge it under memory pressure to reclaim memory. | ||
| 2319 | 		 * Only applies to non-shared BOs. The kernel sets the __u32 at | ||
| 2320 | 		 * @retained_ptr to 1 if the backing store still exists (not yet purged), | ||
| 2321 | 		 * or 0 if it was already purged. | ||
| 2322 | 		 * | ||
| 2323 | 		 * Important: Once marked as DONTNEED, touching the BO's memory | ||
| 2324 | 		 * is undefined behavior. It may succeed temporarily (before the | ||
| 2325 | 		 * kernel purges the backing store) but will suddenly fail once | ||
| 2326 | 		 * the BO transitions to PURGED state. | ||
| 2327 | 		 * | ||
| 2328 | 		 * To transition back: use WILLNEED and check @retained_ptr — | ||
| 2329 | 		 * if 0, backing store was lost and the BO must be recreated. | ||
| 2330 | 		 * | ||
| 2331 | 		 * The following operations are blocked in DONTNEED state to | ||
| 2332 | 		 * prevent the BO from being re-mapped after madvise: | ||
| 2333 | 		 * - New mmap() calls: Fail with -EBUSY | ||
| 2334 | 		 * - VM_BIND operations: Fail with -EBUSY | ||
| 2335 | 		 * - New dma-buf exports: Fail with -EBUSY | ||
| 2336 | 		 * - CPU page faults (existing mmap): Fail with SIGBUS | ||
| 2337 | 		 * - GPU page faults (fault-mode VMs): Fail with -EACCES | ||
| 2338 | 		 */ | ||
| 2339 | 		struct { | ||
| 2340 | #define DRM_XE_VMA_PURGEABLE_STATE_WILLNEED	0 | ||
| 2341 | #define DRM_XE_VMA_PURGEABLE_STATE_DONTNEED	1 | ||
| 2342 | 			/** @purge_state_val.val: value for DRM_XE_VMA_ATTR_PURGEABLE_STATE */ | ||
| 2343 | 			__u32 val; | ||
| 2344 | |||
| 2345 | 			/** @purge_state_val.pad: MBZ */ | ||
| 2346 | 			__u32 pad; | ||
| 2347 | 			/** | ||
| 2348 | 			 * @purge_state_val.retained_ptr: Pointer to a __u32 output | ||
| 2349 | 			 * field for backing store status. | ||
| 2350 | 			 * | ||
| 2351 | 			 * Userspace must initialize the __u32 value at this address | ||
| 2352 | 			 * to 0 before the ioctl. Kernel writes a __u32 after the | ||
| 2353 | 			 * operation: | ||
| 2354 | 			 * - 1 if backing store exists (not purged) | ||
| 2355 | 			 * - 0 if backing store was purged | ||
| 2356 | 			 * | ||
| 2357 | 			 * If userspace fails to initialize to 0, ioctl returns -EINVAL. | ||
| 2358 | 			 * This ensures a safe default (0 = assume purged) if kernel | ||
| 2359 | 			 * cannot write the result. | ||
| 2360 | 			 * | ||
| 2361 | 			 * Similar to i915's drm_i915_gem_madvise.retained field. | ||
| 2362 | 			 */ | ||
| 2363 | 			__u64 retained_ptr; | ||
| 2364 | 		} purge_state_val; | ||
| 2192 | 	}; | 2365 | 	}; |
| 2193 | 2366 | ||
| 2194 | 	/** @reserved: Reserved */ | 2367 | 	/** @reserved: Reserved */ |
| ... | @@ -2357,6 +2530,85 @@ struct drm_xe_exec_queue_set_property { | ... | @@ -2357,6 +2530,85 @@ struct drm_xe_exec_queue_set_property { |
| 2357 | 	__u64 reserved[2]; | 2530 | 	__u64 reserved[2]; |
| 2358 | }; | 2531 | }; |
| 2359 | 2532 | ||
| 2533 | /** | ||
| 2534 | * DOC: Xe DRM RAS | ||
| 2535 | * | ||
| 2536 | * The enums and strings defined below map to the attributes of the DRM RAS Netlink Interface. | ||
| 2537 | * Refer to Documentation/netlink/specs/drm_ras.yaml for complete interface specification. | ||
| 2538 | * | ||
| 2539 | * Node Registration | ||
| 2540 | * ================= | ||
| 2541 | * | ||
| 2542 | * The driver registers DRM RAS nodes for each error severity level. | ||
| 2543 | * enum drm_xe_ras_error_severity defines the node-id, while DRM_XE_RAS_ERROR_SEVERITY_NAMES maps | ||
| 2544 | * node-id to node-name. | ||
| 2545 | * | ||
| 2546 | * Error Classification | ||
| 2547 | * ==================== | ||
| 2548 | * | ||
| 2549 | * Each node contains a list of error counters. Each error is identified by a error-id and | ||
| 2550 | * an error-name. enum drm_xe_ras_error_component defines the error-id, while | ||
| 2551 | * DRM_XE_RAS_ERROR_COMPONENT_NAMES maps error-id to error-name. | ||
| 2552 | * | ||
| 2553 | * User Interface | ||
| 2554 | * ============== | ||
| 2555 | * | ||
| 2556 | * To retrieve error values of a error counter, userspace applications should | ||
| 2557 | * follow the below steps: | ||
| 2558 | * | ||
| 2559 | * 1. Use command LIST_NODES to enumerate all available nodes | ||
| 2560 | * 2. Select node by node-id or node-name | ||
| 2561 | * 3. Use command GET_ERROR_COUNTERS to list errors of specific node | ||
| 2562 | * 4. Query specific error values using either error-id or error-name | ||
| 2563 | * | ||
| 2564 | * .. code-block:: C | ||
| 2565 | * | ||
| 2566 | *	// Lookup tables for ID-to-name resolution | ||
| 2567 | *	static const char *nodes[] = DRM_XE_RAS_ERROR_SEVERITY_NAMES; | ||
| 2568 | *	static const char *errors[] = DRM_XE_RAS_ERROR_COMPONENT_NAMES; | ||
| 2569 | * | ||
| 2570 | */ | ||
| 2571 | |||
| 2572 | /** | ||
| 2573 | * enum drm_xe_ras_error_severity - DRM RAS error severity. | ||
| 2574 | */ | ||
| 2575 | enum drm_xe_ras_error_severity { | ||
| 2576 | 	/** @DRM_XE_RAS_ERR_SEV_CORRECTABLE: Correctable Error */ | ||
| 2577 | 	DRM_XE_RAS_ERR_SEV_CORRECTABLE = 0, | ||
| 2578 | 	/** @DRM_XE_RAS_ERR_SEV_UNCORRECTABLE: Uncorrectable Error */ | ||
| 2579 | 	DRM_XE_RAS_ERR_SEV_UNCORRECTABLE, | ||
| 2580 | 	/** @DRM_XE_RAS_ERR_SEV_MAX: Max severity */ | ||
| 2581 | 	DRM_XE_RAS_ERR_SEV_MAX /* non-ABI */ | ||
| 2582 | }; | ||
| 2583 | |||
| 2584 | /** | ||
| 2585 | * enum drm_xe_ras_error_component - DRM RAS error component. | ||
| 2586 | */ | ||
| 2587 | enum drm_xe_ras_error_component { | ||
| 2588 | 	/** @DRM_XE_RAS_ERR_COMP_CORE_COMPUTE: Core Compute Error */ | ||
| 2589 | 	DRM_XE_RAS_ERR_COMP_CORE_COMPUTE = 1, | ||
| 2590 | 	/** @DRM_XE_RAS_ERR_COMP_SOC_INTERNAL: SoC Internal Error */ | ||
| 2591 | 	DRM_XE_RAS_ERR_COMP_SOC_INTERNAL, | ||
| 2592 | 	/** @DRM_XE_RAS_ERR_COMP_MAX: Max Error */ | ||
| 2593 | 	DRM_XE_RAS_ERR_COMP_MAX	/* non-ABI */ | ||
| 2594 | }; | ||
| 2595 | |||
| 2596 | /* | ||
| 2597 | * Error severity to name mapping. | ||
| 2598 | */ | ||
| 2599 | #define DRM_XE_RAS_ERROR_SEVERITY_NAMES {				\ | ||
| 2600 | 	[DRM_XE_RAS_ERR_SEV_CORRECTABLE] = "correctable-errors",	\ | ||
| 2601 | 	[DRM_XE_RAS_ERR_SEV_UNCORRECTABLE] = "uncorrectable-errors",	\ | ||
| 2602 | } | ||
| 2603 | |||
| 2604 | /* | ||
| 2605 | * Error component to name mapping. | ||
| 2606 | */ | ||
| 2607 | #define DRM_XE_RAS_ERROR_COMPONENT_NAMES {				\ | ||
| 2608 | 	[DRM_XE_RAS_ERR_COMP_CORE_COMPUTE] = "core-compute",		\ | ||
| 2609 | 	[DRM_XE_RAS_ERR_COMP_SOC_INTERNAL] = "soc-internal"		\ | ||
| 2610 | } | ||
| 2611 | |||
| 2360 | #if defined(__cplusplus) | 2612 | #if defined(__cplusplus) |
| 2361 | } | 2613 | } |
| 2362 | #endif | 2614 | #endif |
lib/libc/include/any-linux-any/fwctl/bnxt.h created+26| ... | @@ -0,0 +1,26 @@ | ||
| 1 | /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ | ||
| 2 | /* | ||
| 3 | * Copyright (c) 2026, Broadcom Inc | ||
| 4 | */ | ||
| 5 | |||
| 6 | #ifndef _FWCTL_BNXT_H_ | ||
| 7 | #define _FWCTL_BNXT_H_ | ||
| 8 | |||
| 9 | #include <linux/types.h> | ||
| 10 | |||
| 11 | enum fwctl_bnxt_commands { | ||
| 12 | 	FWCTL_BNXT_INLINE_COMMANDS = 0, | ||
| 13 | 	FWCTL_BNXT_QUERY_COMMANDS, | ||
| 14 | 	FWCTL_BNXT_SEND_COMMANDS, | ||
| 15 | }; | ||
| 16 | |||
| 17 | /** | ||
| 18 | * struct fwctl_info_bnxt - ioctl(FWCTL_INFO) out_device_data | ||
| 19 | * @uctx_caps: The command capabilities driver accepts. | ||
| 20 | * | ||
| 21 | * Return basic information about the FW interface available. | ||
| 22 | */ | ||
| 23 | struct fwctl_info_bnxt { | ||
| 24 | 	__u32 uctx_caps; | ||
| 25 | }; | ||
| 26 | #endif | ||
| \ No newline at end of file | |||
lib/libc/include/any-linux-any/fwctl/fwctl.h+1| ... | @@ -44,6 +44,7 @@ enum fwctl_device_type { | ... | @@ -44,6 +44,7 @@ enum fwctl_device_type { |
| 44 | 	FWCTL_DEVICE_TYPE_ERROR = 0, | 44 | 	FWCTL_DEVICE_TYPE_ERROR = 0, |
| 45 | 	FWCTL_DEVICE_TYPE_MLX5 = 1, | 45 | 	FWCTL_DEVICE_TYPE_MLX5 = 1, |
| 46 | 	FWCTL_DEVICE_TYPE_CXL = 2, | 46 | 	FWCTL_DEVICE_TYPE_CXL = 2, |
| 47 | 	FWCTL_DEVICE_TYPE_BNXT = 3, | ||
| 47 | 	FWCTL_DEVICE_TYPE_PDS = 4, | 48 | 	FWCTL_DEVICE_TYPE_PDS = 4, |
| 48 | }; | 49 | }; |
| 49 | 50 |
lib/libc/include/any-linux-any/linux/audit.h+4-4| ... | @@ -350,7 +350,7 @@ enum { | ... | @@ -350,7 +350,7 @@ enum { |
| 350 | #define AUDIT_STATUS_ENABLED			0x0001 | 350 | #define AUDIT_STATUS_ENABLED			0x0001 |
| 351 | #define AUDIT_STATUS_FAILURE			0x0002 | 351 | #define AUDIT_STATUS_FAILURE			0x0002 |
| 352 | #define AUDIT_STATUS_PID			0x0004 | 352 | #define AUDIT_STATUS_PID			0x0004 |
| 353 | #define AUDIT_STATUS_RATE_LIMIT		0x0008 | 353 | #define AUDIT_STATUS_RATE_LIMIT			0x0008 |
| 354 | #define AUDIT_STATUS_BACKLOG_LIMIT		0x0010 | 354 | #define AUDIT_STATUS_BACKLOG_LIMIT		0x0010 |
| 355 | #define AUDIT_STATUS_BACKLOG_WAIT_TIME		0x0020 | 355 | #define AUDIT_STATUS_BACKLOG_WAIT_TIME		0x0020 |
| 356 | #define AUDIT_STATUS_LOST			0x0040 | 356 | #define AUDIT_STATUS_LOST			0x0040 |
| ... | @@ -386,8 +386,8 @@ enum { | ... | @@ -386,8 +386,8 @@ enum { |
| 386 | * These bits disambiguate different calling conventions that share an | 386 | * These bits disambiguate different calling conventions that share an |
| 387 | * ELF machine type, bitness, and endianness | 387 | * ELF machine type, bitness, and endianness |
| 388 | */ | 388 | */ |
| 389 | #define __AUDIT_ARCH_CONVENTION_MASK 0x30000000 | 389 | #define __AUDIT_ARCH_CONVENTION_MASK		0x30000000 |
| 390 | #define __AUDIT_ARCH_CONVENTION_MIPS64_N32 0x20000000 | 390 | #define __AUDIT_ARCH_CONVENTION_MIPS64_N32	0x20000000 |
| 391 | 391 | ||
| 392 | /* distinguish syscall tables */ | 392 | /* distinguish syscall tables */ |
| 393 | #define __AUDIT_ARCH_64BIT 0x80000000 | 393 | #define __AUDIT_ARCH_64BIT 0x80000000 |
| ... | @@ -508,7 +508,7 @@ struct audit_tty_status { | ... | @@ -508,7 +508,7 @@ struct audit_tty_status { |
| 508 | 	__u32		log_passwd;	/* 1 = enabled, 0 = disabled */ | 508 | 	__u32		log_passwd;	/* 1 = enabled, 0 = disabled */ |
| 509 | }; | 509 | }; |
| 510 | 510 | ||
| 511 | #define AUDIT_UID_UNSET (unsigned int)-1 | 511 | #define AUDIT_UID_UNSET ((unsigned int)-1) |
| 512 | #define AUDIT_SID_UNSET ((unsigned int)-1) | 512 | #define AUDIT_SID_UNSET ((unsigned int)-1) |
| 513 | 513 | ||
| 514 | /* audit_rule_data supports filter rules with both integer and string | 514 | /* audit_rule_data supports filter rules with both integer and string |
lib/libc/include/any-linux-any/linux/baycom.h deleted-40| ... | @@ -1,40 +0,0 @@ | ||
| 1 | /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ | ||
| 2 | /* | ||
| 3 | * The Linux BAYCOM driver for the Baycom serial 1200 baud modem | ||
| 4 | * and the parallel 9600 baud modem | ||
| 5 | * (C) 1997-1998 by Thomas Sailer, HB9JNX/AE4WA | ||
| 6 | */ | ||
| 7 | |||
| 8 | #ifndef _BAYCOM_H | ||
| 9 | #define _BAYCOM_H | ||
| 10 | |||
| 11 | /* -------------------------------------------------------------------- */ | ||
| 12 | /* | ||
| 13 | * structs for the IOCTL commands | ||
| 14 | */ | ||
| 15 | |||
| 16 | struct baycom_debug_data { | ||
| 17 | 	unsigned long debug1; | ||
| 18 | 	unsigned long debug2; | ||
| 19 | 	long debug3; | ||
| 20 | }; | ||
| 21 | |||
| 22 | struct baycom_ioctl { | ||
| 23 | 	int cmd; | ||
| 24 | 	union { | ||
| 25 | 		struct baycom_debug_data dbg; | ||
| 26 | 	} data; | ||
| 27 | }; | ||
| 28 | |||
| 29 | /* -------------------------------------------------------------------- */ | ||
| 30 | |||
| 31 | /* | ||
| 32 | * ioctl values change for baycom | ||
| 33 | */ | ||
| 34 | #define BAYCOMCTL_GETDEBUG 0x92 | ||
| 35 | |||
| 36 | /* -------------------------------------------------------------------- */ | ||
| 37 | |||
| 38 | #endif /* _BAYCOM_H */ | ||
| 39 | |||
| 40 | /* --------------------------------------------------------------------- */ | ||
| \ No newline at end of file | |||
lib/libc/include/any-linux-any/linux/bpf.h+3-1| ... | @@ -4645,7 +4645,9 @@ union bpf_attr { | ... | @@ -4645,7 +4645,9 @@ union bpf_attr { |
| 4645 | * 	Description | 4645 | * 	Description |
| 4646 | * 		Discard reserved ring buffer sample, pointed to by *data*. | 4646 | * 		Discard reserved ring buffer sample, pointed to by *data*. |
| 4647 | * 		If **BPF_RB_NO_WAKEUP** is specified in *flags*, no notification | 4647 | * 		If **BPF_RB_NO_WAKEUP** is specified in *flags*, no notification |
| 4648 | * 		of new data availability is sent. | 4648 | * 		of new data availability is sent. Discarded records remain in |
| 4649 | * 		the ring buffer until consumed by user space, so a later submit | ||
| 4650 | * 		using adaptive wakeup might not wake up the consumer. | ||
| 4649 | * 		If **BPF_RB_FORCE_WAKEUP** is specified in *flags*, notification | 4651 | * 		If **BPF_RB_FORCE_WAKEUP** is specified in *flags*, notification |
| 4650 | * 		of new data availability is sent unconditionally. | 4652 | * 		of new data availability is sent unconditionally. |
| 4651 | * 		If **0** is specified in *flags*, an adaptive notification | 4653 | * 		If **0** is specified in *flags*, an adaptive notification |
lib/libc/include/any-linux-any/linux/bsg.h+68| ... | @@ -63,5 +63,73 @@ struct sg_io_v4 { | ... | @@ -63,5 +63,73 @@ struct sg_io_v4 { |
| 63 | 	__u32 padding; | 63 | 	__u32 padding; |
| 64 | }; | 64 | }; |
| 65 | 65 | ||
| 66 | struct bsg_uring_cmd { | ||
| 67 | 	__u64 request;		/* [i], [*i] command descriptor address */ | ||
| 68 | 	__u32 request_len;	/* [i] command descriptor length in bytes */ | ||
| 69 | 	__u32 protocol;		/* [i] protocol type (BSG_PROTOCOL_*) */ | ||
| 70 | 	__u32 subprotocol;	/* [i] subprotocol type (BSG_SUB_PROTOCOL_*) */ | ||
| 71 | 	__u32 max_response_len;	/* [i] response buffer size in bytes */ | ||
| 72 | |||
| 73 | 	__u64 response;		/* [i], [*o] response data address */ | ||
| 74 | 	__u64 dout_xferp;	/* [i], [*i] */ | ||
| 75 | 	__u32 dout_xfer_len;	/* [i] bytes to be transferred to device */ | ||
| 76 | 	__u32 dout_iovec_count;	/* [i] 0 -> "flat" dout transfer else | ||
| 77 | 				 * dout_xferp points to array of iovec | ||
| 78 | 				 */ | ||
| 79 | 	__u64 din_xferp;	/* [i], [*o] */ | ||
| 80 | 	__u32 din_xfer_len;	/* [i] bytes to be transferred from device */ | ||
| 81 | 	__u32 din_iovec_count;	/* [i] 0 -> "flat" din transfer */ | ||
| 82 | |||
| 83 | 	__u32 timeout_ms;	/* [i] timeout in milliseconds */ | ||
| 84 | 	__u8 reserved[12];	/* reserved for future extension */ | ||
| 85 | }; | ||
| 86 | |||
| 87 | |||
| 88 | |||
| 89 | /* | ||
| 90 | * SCSI BSG io_uring completion (res2, 64-bit) | ||
| 91 | * | ||
| 92 | * When using BSG_PROTOCOL_SCSI + BSG_SUB_PROTOCOL_SCSI_CMD with | ||
| 93 | * IORING_OP_URING_CMD, the completion queue entry (CQE) contains: | ||
| 94 | * - result: errno (0 on success) | ||
| 95 | * - res2: packed SCSI status | ||
| 96 | * | ||
| 97 | * res2 bit layout: | ||
| 98 | * [0..7] device_status (SCSI status byte, e.g. CHECK_CONDITION) | ||
| 99 | * [8..15] driver_status (e.g. DRIVER_SENSE when sense data is valid) | ||
| 100 | * [16..23] host_status (e.g. DID_OK, DID_TIME_OUT) | ||
| 101 | * [24..31] sense_len_wr (bytes of sense data written to response buffer) | ||
| 102 | * [32..63] resid_len (residual transfer length) | ||
| 103 | */ | ||
| 104 | static __inline__ __u8 bsg_scsi_res2_device_status(__u64 res2) | ||
| 105 | { | ||
| 106 | 	return res2 & 0xff; | ||
| 107 | } | ||
| 108 | static __inline__ __u8 bsg_scsi_res2_driver_status(__u64 res2) | ||
| 109 | { | ||
| 110 | 	return res2 >> 8; | ||
| 111 | } | ||
| 112 | static __inline__ __u8 bsg_scsi_res2_host_status(__u64 res2) | ||
| 113 | { | ||
| 114 | 	return res2 >> 16; | ||
| 115 | } | ||
| 116 | static __inline__ __u8 bsg_scsi_res2_sense_len(__u64 res2) | ||
| 117 | { | ||
| 118 | 	return res2 >> 24; | ||
| 119 | } | ||
| 120 | static __inline__ __u32 bsg_scsi_res2_resid_len(__u64 res2) | ||
| 121 | { | ||
| 122 | 	return res2 >> 32; | ||
| 123 | } | ||
| 124 | static __inline__ __u64 bsg_scsi_res2_build(__u8 device_status, __u8 driver_status, | ||
| 125 | 					__u8 host_status, __u8 sense_len_wr, | ||
| 126 | 					__u32 resid_len) | ||
| 127 | { | ||
| 128 | 	return ((__u64)(__u32)(resid_len) << 32) | | ||
| 129 | 		((__u64)sense_len_wr << 24) | | ||
| 130 | 		((__u64)host_status << 16) | | ||
| 131 | 		((__u64)driver_status << 8) | | ||
| 132 | 		(__u64)device_status; | ||
| 133 | } | ||
| 66 | 134 | ||
| 67 | #endif /* BSG_H */ | 135 | #endif /* BSG_H */ |
| \ No newline at end of file | |||
lib/libc/include/any-linux-any/linux/btf.h+12| ... | @@ -8,6 +8,16 @@ | ... | @@ -8,6 +8,16 @@ |
| 8 | #define BTF_MAGIC	0xeB9F | 8 | #define BTF_MAGIC	0xeB9F |
| 9 | #define BTF_VERSION	1 | 9 | #define BTF_VERSION	1 |
| 10 | 10 | ||
| 11 | /* | ||
| 12 | * BTF layout section consists of a struct btf_layout for each known | ||
| 13 | * kind at BTF encoding time. | ||
| 14 | */ | ||
| 15 | struct btf_layout { | ||
| 16 | 	__u8 info_sz;		/* size of singular element after btf_type */ | ||
| 17 | 	__u8 elem_sz;		/* size of each of btf_vlen(t) elements */ | ||
| 18 | 	__u16 flags;		/* currently unused */ | ||
| 19 | }; | ||
| 20 | |||
| 11 | struct btf_header { | 21 | struct btf_header { |
| 12 | 	__u16	magic; | 22 | 	__u16	magic; |
| 13 | 	__u8	version; | 23 | 	__u8	version; |
| ... | @@ -19,6 +29,8 @@ struct btf_header { | ... | @@ -19,6 +29,8 @@ struct btf_header { |
| 19 | 	__u32	type_len;	/* length of type section	*/ | 29 | 	__u32	type_len;	/* length of type section	*/ |
| 20 | 	__u32	str_off;	/* offset of string section	*/ | 30 | 	__u32	str_off;	/* offset of string section	*/ |
| 21 | 	__u32	str_len;	/* length of string section	*/ | 31 | 	__u32	str_len;	/* length of string section	*/ |
| 32 | 	__u32	layout_off;	/* offset of layout section	*/ | ||
| 33 | 	__u32	layout_len;	/* length of layout section	*/ | ||
| 22 | }; | 34 | }; |
| 23 | 35 | ||
| 24 | /* Max # of type identifier */ | 36 | /* Max # of type identifier */ |
lib/libc/include/any-linux-any/linux/btrfs_tree.h+2-1| ... | @@ -1241,7 +1241,8 @@ struct btrfs_free_space_info { | ... | @@ -1241,7 +1241,8 @@ struct btrfs_free_space_info { |
| 1241 | 	__le32 flags; | 1241 | 	__le32 flags; |
| 1242 | } __attribute__ ((__packed__)); | 1242 | } __attribute__ ((__packed__)); |
| 1243 | 1243 | ||
| 1244 | #define BTRFS_FREE_SPACE_USING_BITMAPS (1ULL << 0) | 1244 | #define BTRFS_FREE_SPACE_USING_BITMAPS	(1UL << 0) |
| 1245 | #define BTRFS_FREE_SPACE_FLAGS_MASK	(BTRFS_FREE_SPACE_USING_BITMAPS) | ||
| 1245 | 1246 | ||
| 1246 | #define BTRFS_QGROUP_LEVEL_SHIFT		48 | 1247 | #define BTRFS_QGROUP_LEVEL_SHIFT		48 |
| 1247 | static __inline__ __u16 btrfs_qgroup_level(__u64 qgroupid) | 1248 | static __inline__ __u16 btrfs_qgroup_level(__u64 qgroupid) |
lib/libc/include/any-linux-any/linux/caif/caif_socket.h deleted-195| ... | @@ -1,195 +0,0 @@ | ||
| 1 | /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ | ||
| 2 | /* linux/caif_socket.h | ||
| 3 | * CAIF Definitions for CAIF socket and network layer | ||
| 4 | * Copyright (C) ST-Ericsson AB 2010 | ||
| 5 | * Author:	 Sjur Brendeland | ||
| 6 | * License terms: GNU General Public License (GPL) version 2 | ||
| 7 | */ | ||
| 8 | |||
| 9 | #ifndef _LINUX_CAIF_SOCKET_H | ||
| 10 | #define _LINUX_CAIF_SOCKET_H | ||
| 11 | |||
| 12 | #include <linux/types.h> | ||
| 13 | #include <linux/socket.h> | ||
| 14 | |||
| 15 | /** | ||
| 16 | * enum caif_link_selector - Physical Link Selection. | ||
| 17 | * @CAIF_LINK_HIGH_BANDW:	Physical interface for high-bandwidth | ||
| 18 | *				traffic. | ||
| 19 | * @CAIF_LINK_LOW_LATENCY:	Physical interface for low-latency | ||
| 20 | *				traffic. | ||
| 21 | * | ||
| 22 | * CAIF Link Layers can register their link properties. | ||
| 23 | * This enum is used for choosing between CAIF Link Layers when | ||
| 24 | * setting up CAIF Channels when multiple CAIF Link Layers exists. | ||
| 25 | */ | ||
| 26 | enum caif_link_selector { | ||
| 27 | 	CAIF_LINK_HIGH_BANDW, | ||
| 28 | 	CAIF_LINK_LOW_LATENCY | ||
| 29 | }; | ||
| 30 | |||
| 31 | /** | ||
| 32 | * enum caif_channel_priority - CAIF channel priorities. | ||
| 33 | * | ||
| 34 | * @CAIF_PRIO_MIN:	Min priority for a channel. | ||
| 35 | * @CAIF_PRIO_LOW:	Low-priority channel. | ||
| 36 | * @CAIF_PRIO_NORMAL:	Normal/default priority level. | ||
| 37 | * @CAIF_PRIO_HIGH:	High priority level | ||
| 38 | * @CAIF_PRIO_MAX:	Max priority for channel | ||
| 39 | * | ||
| 40 | * Priority can be set on CAIF Channels in order to | ||
| 41 | * prioritize between traffic on different CAIF Channels. | ||
| 42 | * These priority levels are recommended, but the priority value | ||
| 43 | * is not restricted to the values defined in this enum, any value | ||
| 44 | * between CAIF_PRIO_MIN and CAIF_PRIO_MAX could be used. | ||
| 45 | */ | ||
| 46 | enum caif_channel_priority { | ||
| 47 | 	CAIF_PRIO_MIN	 = 0x01, | ||
| 48 | 	CAIF_PRIO_LOW	 = 0x04, | ||
| 49 | 	CAIF_PRIO_NORMAL = 0x0f, | ||
| 50 | 	CAIF_PRIO_HIGH	 = 0x14, | ||
| 51 | 	CAIF_PRIO_MAX	 = 0x1F | ||
| 52 | }; | ||
| 53 | |||
| 54 | /** | ||
| 55 | * enum caif_protocol_type -	CAIF Channel type. | ||
| 56 | * @CAIFPROTO_AT:		Classic AT channel. | ||
| 57 | * @CAIFPROTO_DATAGRAM:	Datagram channel. | ||
| 58 | * @CAIFPROTO_DATAGRAM_LOOP:	Datagram loopback channel, used for testing. | ||
| 59 | * @CAIFPROTO_UTIL:		Utility (Psock) channel. | ||
| 60 | * @CAIFPROTO_RFM:		Remote File Manager | ||
| 61 | * @CAIFPROTO_DEBUG:		Debug link | ||
| 62 | * | ||
| 63 | * This enum defines the CAIF Channel type to be used. This defines | ||
| 64 | * the service to connect to on the modem. | ||
| 65 | */ | ||
| 66 | enum caif_protocol_type { | ||
| 67 | 	CAIFPROTO_AT, | ||
| 68 | 	CAIFPROTO_DATAGRAM, | ||
| 69 | 	CAIFPROTO_DATAGRAM_LOOP, | ||
| 70 | 	CAIFPROTO_UTIL, | ||
| 71 | 	CAIFPROTO_RFM, | ||
| 72 | 	CAIFPROTO_DEBUG, | ||
| 73 | 	_CAIFPROTO_MAX | ||
| 74 | }; | ||
| 75 | #define	CAIFPROTO_MAX _CAIFPROTO_MAX | ||
| 76 | |||
| 77 | /** | ||
| 78 | * enum caif_at_type - AT Service Endpoint | ||
| 79 | * @CAIF_ATTYPE_PLAIN:	 Connects to a plain vanilla AT channel. | ||
| 80 | */ | ||
| 81 | enum caif_at_type { | ||
| 82 | 	CAIF_ATTYPE_PLAIN = 2 | ||
| 83 | }; | ||
| 84 | /** | ||
| 85 | * enum caif_debug_type - Content selection for debug connection | ||
| 86 | * @CAIF_DEBUG_TRACE_INTERACTIVE: Connection will contain | ||
| 87 | *				both trace and interactive debug. | ||
| 88 | * @CAIF_DEBUG_TRACE:		Connection contains trace only. | ||
| 89 | * @CAIF_DEBUG_INTERACTIVE:	Connection to interactive debug. | ||
| 90 | */ | ||
| 91 | enum caif_debug_type { | ||
| 92 | 	CAIF_DEBUG_TRACE_INTERACTIVE = 0, | ||
| 93 | 	CAIF_DEBUG_TRACE, | ||
| 94 | 	CAIF_DEBUG_INTERACTIVE, | ||
| 95 | }; | ||
| 96 | |||
| 97 | /** | ||
| 98 | * enum caif_debug_service - Debug Service Endpoint | ||
| 99 | * @CAIF_RADIO_DEBUG_SERVICE:	Debug service on the Radio sub-system | ||
| 100 | * @CAIF_APP_DEBUG_SERVICE:	Debug for the applications sub-system | ||
| 101 | */ | ||
| 102 | enum caif_debug_service { | ||
| 103 | 	CAIF_RADIO_DEBUG_SERVICE = 1, | ||
| 104 | 	CAIF_APP_DEBUG_SERVICE | ||
| 105 | }; | ||
| 106 | |||
| 107 | /** | ||
| 108 | * struct sockaddr_caif - the sockaddr structure for CAIF sockets. | ||
| 109 | * @family:		 Address family number, must be AF_CAIF. | ||
| 110 | * @u:			 Union of address data 'switched' by family. | ||
| 111 | * : | ||
| 112 | * @u.at: Applies when family = CAIFPROTO_AT. | ||
| 113 | * | ||
| 114 | * @u.at.type: Type of AT link to set up (enum caif_at_type). | ||
| 115 | * | ||
| 116 | * @u.util: Applies when family = CAIFPROTO_UTIL | ||
| 117 | * | ||
| 118 | * @u.util.service: Utility service name. | ||
| 119 | * | ||
| 120 | * @u.dgm: Applies when family = CAIFPROTO_DATAGRAM | ||
| 121 | * | ||
| 122 | * @u.dgm.connection_id: Datagram connection id. | ||
| 123 | * | ||
| 124 | * @u.dgm.nsapi: NSAPI of the PDP-Context. | ||
| 125 | * | ||
| 126 | * @u.rfm: Applies when family = CAIFPROTO_RFM | ||
| 127 | * | ||
| 128 | * @u.rfm.connection_id: Connection ID for RFM. | ||
| 129 | * | ||
| 130 | * @u.rfm.volume: Volume to mount. | ||
| 131 | * | ||
| 132 | * @u.dbg:		 Applies when family = CAIFPROTO_DEBUG. | ||
| 133 | * | ||
| 134 | * @u.dbg.type:			 Type of debug connection to set up | ||
| 135 | *			 (caif_debug_type). | ||
| 136 | * | ||
| 137 | * @u.dbg.service:	 Service sub-system to connect (caif_debug_service | ||
| 138 | * Description: | ||
| 139 | * This structure holds the connect parameters used for setting up a | ||
| 140 | * CAIF Channel. It defines the service to connect to on the modem. | ||
| 141 | */ | ||
| 142 | struct sockaddr_caif { | ||
| 143 | 	__kernel_sa_family_t family; | ||
| 144 | 	union { | ||
| 145 | 		struct { | ||
| 146 | 			__u8 type;		/* type: enum caif_at_type */ | ||
| 147 | 		} at;				/* CAIFPROTO_AT */ | ||
| 148 | 		struct { | ||
| 149 | 			char	 service[16]; | ||
| 150 | 		} util;				/* CAIFPROTO_UTIL */ | ||
| 151 | 		union { | ||
| 152 | 			__u32 connection_id; | ||
| 153 | 			__u8 nsapi; | ||
| 154 | 		} dgm;				/* CAIFPROTO_DATAGRAM(_LOOP)*/ | ||
| 155 | 		struct { | ||
| 156 | 			__u32 connection_id; | ||
| 157 | 			char	 volume[16]; | ||
| 158 | 		} rfm;				/* CAIFPROTO_RFM */ | ||
| 159 | 		struct { | ||
| 160 | 			__u8 type;		/* type:enum caif_debug_type */ | ||
| 161 | 			__u8 service;		/* service:caif_debug_service */ | ||
| 162 | 		} dbg;				/* CAIFPROTO_DEBUG */ | ||
| 163 | 	} u; | ||
| 164 | }; | ||
| 165 | |||
| 166 | /** | ||
| 167 | * enum caif_socket_opts - CAIF option values for getsockopt and setsockopt. | ||
| 168 | * | ||
| 169 | * @CAIFSO_LINK_SELECT:		Selector used if multiple CAIF Link layers are | ||
| 170 | *				available. Either a high bandwidth | ||
| 171 | *				link can be selected (CAIF_LINK_HIGH_BANDW) or | ||
| 172 | *				a low latency link (CAIF_LINK_LOW_LATENCY). | ||
| 173 | * This option is of type __u32. | ||
| 174 | *				Alternatively SO_BINDTODEVICE can be used. | ||
| 175 | * | ||
| 176 | * @CAIFSO_REQ_PARAM:		Used to set the request parameters for a | ||
| 177 | *				utility channel. (maximum 256 bytes). This | ||
| 178 | *				option must be set before connecting. | ||
| 179 | * | ||
| 180 | * @CAIFSO_RSP_PARAM:		Gets the response parameters for a utility | ||
| 181 | *				channel. (maximum 256 bytes). This option | ||
| 182 | *				is valid after a successful connect. | ||
| 183 | * | ||
| 184 | * | ||
| 185 | * This enum defines the CAIF Socket options to be used on a socket | ||
| 186 | * of type PF_CAIF. | ||
| 187 | * | ||
| 188 | */ | ||
| 189 | enum caif_socket_opts { | ||
| 190 | 	CAIFSO_LINK_SELECT	= 127, | ||
| 191 | 	CAIFSO_REQ_PARAM	= 128, | ||
| 192 | 	CAIFSO_RSP_PARAM	= 129, | ||
| 193 | }; | ||
| 194 | |||
| 195 | #endif /* _LINUX_CAIF_SOCKET_H */ | ||
| \ No newline at end of file | |||
lib/libc/include/any-linux-any/linux/caif/if_caif.h deleted-35| ... | @@ -1,35 +0,0 @@ | ||
| 1 | /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ | ||
| 2 | /* | ||
| 3 | * Copyright (C) ST-Ericsson AB 2010 | ||
| 4 | * Author:	Sjur Brendeland | ||
| 5 | * License terms: GNU General Public License (GPL) version 2 | ||
| 6 | */ | ||
| 7 | |||
| 8 | #ifndef IF_CAIF_H_ | ||
| 9 | #define IF_CAIF_H_ | ||
| 10 | #include <linux/sockios.h> | ||
| 11 | #include <linux/types.h> | ||
| 12 | #include <linux/socket.h> | ||
| 13 | |||
| 14 | /** | ||
| 15 | * enum ifla_caif - CAIF NetlinkRT parameters. | ||
| 16 | * @IFLA_CAIF_IPV4_CONNID: Connection ID for IPv4 PDP Context. | ||
| 17 | *			 The type of attribute is NLA_U32. | ||
| 18 | * @IFLA_CAIF_IPV6_CONNID: Connection ID for IPv6 PDP Context. | ||
| 19 | *			 The type of attribute is NLA_U32. | ||
| 20 | * @IFLA_CAIF_LOOPBACK:	 If different from zero, device is doing loopback | ||
| 21 | *			 The type of attribute is NLA_U8. | ||
| 22 | * | ||
| 23 | * When using RT Netlink to create, destroy or configure a CAIF IP interface, | ||
| 24 | * enum ifla_caif is used to specify the configuration attributes. | ||
| 25 | */ | ||
| 26 | enum ifla_caif { | ||
| 27 | 	__IFLA_CAIF_UNSPEC, | ||
| 28 | 	IFLA_CAIF_IPV4_CONNID, | ||
| 29 | 	IFLA_CAIF_IPV6_CONNID, | ||
| 30 | 	IFLA_CAIF_LOOPBACK, | ||
| 31 | 	__IFLA_CAIF_MAX | ||
| 32 | }; | ||
| 33 | #define	IFLA_CAIF_MAX (__IFLA_CAIF_MAX-1) | ||
| 34 | |||
| 35 | #endif /*IF_CAIF_H_*/ | ||
| \ No newline at end of file | |||
lib/libc/include/any-linux-any/linux/capi.h deleted-132| ... | @@ -1,132 +0,0 @@ | ||
| 1 | /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ | ||
| 2 | /* $Id: capi.h,v 1.4.6.1 2001/09/23 22:25:05 kai Exp $ | ||
| 3 | * | ||
| 4 | * CAPI 2.0 Interface for Linux | ||
| 5 | * | ||
| 6 | * Copyright 1997 by Carsten Paeth (calle@calle.in-berlin.de) | ||
| 7 | * | ||
| 8 | * This software may be used and distributed according to the terms | ||
| 9 | * of the GNU General Public License, incorporated herein by reference. | ||
| 10 | * | ||
| 11 | */ | ||
| 12 | |||
| 13 | #ifndef __LINUX_CAPI_H__ | ||
| 14 | #define __LINUX_CAPI_H__ | ||
| 15 | |||
| 16 | #include <linux/types.h> | ||
| 17 | #include <linux/ioctl.h> | ||
| 18 | #include <linux/kernelcapi.h> | ||
| 19 | |||
| 20 | /* | ||
| 21 | * CAPI_REGISTER | ||
| 22 | */ | ||
| 23 | |||
| 24 | typedef struct capi_register_params {	/* CAPI_REGISTER */ | ||
| 25 | 	__u32 level3cnt;	/* No. of simulatneous user data connections */ | ||
| 26 | 	__u32 datablkcnt;	/* No. of buffered data messages */ | ||
| 27 | 	__u32 datablklen;	/* Size of buffered data messages */ | ||
| 28 | } capi_register_params; | ||
| 29 | |||
| 30 | #define	CAPI_REGISTER	_IOW('C',0x01,struct capi_register_params) | ||
| 31 | |||
| 32 | /* | ||
| 33 | * CAPI_GET_MANUFACTURER | ||
| 34 | */ | ||
| 35 | |||
| 36 | #define CAPI_MANUFACTURER_LEN		64 | ||
| 37 | |||
| 38 | #define	CAPI_GET_MANUFACTURER	_IOWR('C',0x06,int)	/* broken: wanted size 64 (CAPI_MANUFACTURER_LEN) */ | ||
| 39 | |||
| 40 | /* | ||
| 41 | * CAPI_GET_VERSION | ||
| 42 | */ | ||
| 43 | |||
| 44 | typedef struct capi_version { | ||
| 45 | 	__u32 majorversion; | ||
| 46 | 	__u32 minorversion; | ||
| 47 | 	__u32 majormanuversion; | ||
| 48 | 	__u32 minormanuversion; | ||
| 49 | } capi_version; | ||
| 50 | |||
| 51 | #define CAPI_GET_VERSION	_IOWR('C',0x07,struct capi_version) | ||
| 52 | |||
| 53 | /* | ||
| 54 | * CAPI_GET_SERIAL | ||
| 55 | */ | ||
| 56 | |||
| 57 | #define CAPI_SERIAL_LEN		8 | ||
| 58 | #define CAPI_GET_SERIAL		_IOWR('C',0x08,int)	/* broken: wanted size 8 (CAPI_SERIAL_LEN) */ | ||
| 59 | |||
| 60 | /* | ||
| 61 | * CAPI_GET_PROFILE | ||
| 62 | */ | ||
| 63 | |||
| 64 | typedef struct capi_profile { | ||
| 65 | 	__u16 ncontroller;	/* number of installed controller */ | ||
| 66 | 	__u16 nbchannel;	/* number of B-Channels */ | ||
| 67 | 	__u32 goptions;		/* global options */ | ||
| 68 | 	__u32 support1;		/* B1 protocols support */ | ||
| 69 | 	__u32 support2;		/* B2 protocols support */ | ||
| 70 | 	__u32 support3;		/* B3 protocols support */ | ||
| 71 | 	__u32 reserved[6];	/* reserved */ | ||
| 72 | 	__u32 manu[5];		/* manufacturer specific information */ | ||
| 73 | } capi_profile; | ||
| 74 | |||
| 75 | #define CAPI_GET_PROFILE	_IOWR('C',0x09,struct capi_profile) | ||
| 76 | |||
| 77 | typedef struct capi_manufacturer_cmd { | ||
| 78 | 	unsigned long cmd; | ||
| 79 | 	void *data; | ||
| 80 | } capi_manufacturer_cmd; | ||
| 81 | |||
| 82 | /* | ||
| 83 | * CAPI_MANUFACTURER_CMD | ||
| 84 | */ | ||
| 85 | |||
| 86 | #define CAPI_MANUFACTURER_CMD	_IOWR('C',0x20, struct capi_manufacturer_cmd) | ||
| 87 | |||
| 88 | /* | ||
| 89 | * CAPI_GET_ERRCODE | ||
| 90 | * capi errcode is set, * if read, write, or ioctl returns EIO, | ||
| 91 | * ioctl returns errcode directly, and in arg, if != 0 | ||
| 92 | */ | ||
| 93 | |||
| 94 | #define CAPI_GET_ERRCODE	_IOR('C',0x21, __u16) | ||
| 95 | |||
| 96 | /* | ||
| 97 | * CAPI_INSTALLED | ||
| 98 | */ | ||
| 99 | #define CAPI_INSTALLED		_IOR('C',0x22, __u16) | ||
| 100 | |||
| 101 | |||
| 102 | /* | ||
| 103 | * member contr is input for | ||
| 104 | * CAPI_GET_MANUFACTURER, CAPI_GET_VERSION, CAPI_GET_SERIAL | ||
| 105 | * and CAPI_GET_PROFILE | ||
| 106 | */ | ||
| 107 | typedef union capi_ioctl_struct { | ||
| 108 | 	__u32 contr; | ||
| 109 | 	capi_register_params rparams; | ||
| 110 | 	__u8 manufacturer[CAPI_MANUFACTURER_LEN]; | ||
| 111 | 	capi_version version; | ||
| 112 | 	__u8 serial[CAPI_SERIAL_LEN]; | ||
| 113 | 	capi_profile profile; | ||
| 114 | 	capi_manufacturer_cmd cmd; | ||
| 115 | 	__u16 errcode; | ||
| 116 | } capi_ioctl_struct; | ||
| 117 | |||
| 118 | /* | ||
| 119 | * Middleware extension | ||
| 120 | */ | ||
| 121 | |||
| 122 | #define CAPIFLAG_HIGHJACKING	0x0001 | ||
| 123 | |||
| 124 | #define CAPI_GET_FLAGS		_IOR('C',0x23, unsigned) | ||
| 125 | #define CAPI_SET_FLAGS		_IOR('C',0x24, unsigned) | ||
| 126 | #define CAPI_CLR_FLAGS		_IOR('C',0x25, unsigned) | ||
| 127 | |||
| 128 | #define CAPI_NCCI_OPENCOUNT	_IOR('C',0x26, unsigned) | ||
| 129 | |||
| 130 | #define CAPI_NCCI_GETUNIT	_IOR('C',0x27, unsigned) | ||
| 131 | |||
| 132 | #endif				/* __LINUX_CAPI_H__ */ | ||
| \ No newline at end of file | |||
lib/libc/include/any-linux-any/linux/const.h+18| ... | @@ -50,4 +50,22 @@ | ... | @@ -50,4 +50,22 @@ |
| 50 | 50 | ||
| 51 | #define __KERNEL_DIV_ROUND_UP(n, d) (((n) + (d) - 1) / (d)) | 51 | #define __KERNEL_DIV_ROUND_UP(n, d) (((n) + (d) - 1) / (d)) |
| 52 | 52 | ||
| 53 | /* | ||
| 54 | * Divide positive or negative dividend by positive or negative divisor | ||
| 55 | * and round to closest integer. Result is undefined for negative | ||
| 56 | * divisors if the dividend variable type is unsigned and for negative | ||
| 57 | * dividends if the divisor variable type is unsigned. | ||
| 58 | */ | ||
| 59 | #define __KERNEL_DIV_ROUND_CLOSEST(x, divisor)		\ | ||
| 60 | ({							\ | ||
| 61 | 	__typeof__(x) __x = x;				\ | ||
| 62 | 	__typeof__(divisor) __d = divisor;		\ | ||
| 63 | 							\ | ||
| 64 | 	(((__typeof__(x))-1) > 0 ||			\ | ||
| 65 | 	 ((__typeof__(divisor))-1) > 0 ||		\ | ||
| 66 | 	 (((__x) > 0) == ((__d) > 0))) ?		\ | ||
| 67 | 		(((__x) + ((__d) / 2)) / (__d)) :	\ | ||
| 68 | 		(((__x) - ((__d) / 2)) / (__d));	\ | ||
| 69 | }) | ||
| 70 | |||
| 53 | #endif /* _LINUX_CONST_H */ | 71 | #endif /* _LINUX_CONST_H */ |
| \ No newline at end of file | |||
lib/libc/include/any-linux-any/linux/devlink.h+15| ... | @@ -19,6 +19,8 @@ | ... | @@ -19,6 +19,8 @@ |
| 19 | #define DEVLINK_GENL_VERSION 0x1 | 19 | #define DEVLINK_GENL_VERSION 0x1 |
| 20 | #define DEVLINK_GENL_MCGRP_CONFIG_NAME "config" | 20 | #define DEVLINK_GENL_MCGRP_CONFIG_NAME "config" |
| 21 | 21 | ||
| 22 | #define DEVLINK_INDEX_BUS_NAME "devlink_index" | ||
| 23 | |||
| 22 | enum devlink_command { | 24 | enum devlink_command { |
| 23 | 	/* don't change the order or add anything between, this is ABI! */ | 25 | 	/* don't change the order or add anything between, this is ABI! */ |
| 24 | 	DEVLINK_CMD_UNSPEC, | 26 | 	DEVLINK_CMD_UNSPEC, |
| ... | @@ -642,6 +644,9 @@ enum devlink_attr { | ... | @@ -642,6 +644,9 @@ enum devlink_attr { |
| 642 | 	DEVLINK_ATTR_PARAM_VALUE_DEFAULT,	/* dynamic */ | 644 | 	DEVLINK_ATTR_PARAM_VALUE_DEFAULT,	/* dynamic */ |
| 643 | 	DEVLINK_ATTR_PARAM_RESET_DEFAULT,	/* flag */ | 645 | 	DEVLINK_ATTR_PARAM_RESET_DEFAULT,	/* flag */ |
| 644 | 646 | ||
| 647 | 	DEVLINK_ATTR_INDEX,			/* uint */ | ||
| 648 | 	DEVLINK_ATTR_RESOURCE_SCOPE_MASK,	/* u32 */ | ||
| 649 | |||
| 645 | 	/* Add new attributes above here, update the spec in | 650 | 	/* Add new attributes above here, update the spec in |
| 646 | 	 * Documentation/netlink/specs/devlink.yaml and re-generate | 651 | 	 * Documentation/netlink/specs/devlink.yaml and re-generate |
| 647 | 	 * net/devlink/netlink_gen.c. | 652 | 	 * net/devlink/netlink_gen.c. |
| ... | @@ -700,6 +705,16 @@ enum devlink_resource_unit { | ... | @@ -700,6 +705,16 @@ enum devlink_resource_unit { |
| 700 | 	DEVLINK_RESOURCE_UNIT_ENTRY, | 705 | 	DEVLINK_RESOURCE_UNIT_ENTRY, |
| 701 | }; | 706 | }; |
| 702 | 707 | ||
| 708 | enum devlink_resource_scope { | ||
| 709 | 	DEVLINK_RESOURCE_SCOPE_DEV_BIT, | ||
| 710 | 	DEVLINK_RESOURCE_SCOPE_PORT_BIT, | ||
| 711 | }; | ||
| 712 | |||
| 713 | #define DEVLINK_RESOURCE_SCOPE_DEV \ | ||
| 714 | 	_BITUL(DEVLINK_RESOURCE_SCOPE_DEV_BIT) | ||
| 715 | #define DEVLINK_RESOURCE_SCOPE_PORT \ | ||
| 716 | 	_BITUL(DEVLINK_RESOURCE_SCOPE_PORT_BIT) | ||
| 717 | |||
| 703 | enum devlink_port_fn_attr_cap { | 718 | enum devlink_port_fn_attr_cap { |
| 704 | 	DEVLINK_PORT_FN_ATTR_CAP_ROCE_BIT, | 719 | 	DEVLINK_PORT_FN_ATTR_CAP_ROCE_BIT, |
| 705 | 	DEVLINK_PORT_FN_ATTR_CAP_MIGRATABLE_BIT, | 720 | 	DEVLINK_PORT_FN_ATTR_CAP_MIGRATABLE_BIT, |
lib/libc/include/any-linux-any/linux/dpll.h+4-1| ... | @@ -191,7 +191,8 @@ enum dpll_pin_capabilities { | ... | @@ -191,7 +191,8 @@ enum dpll_pin_capabilities { |
| 191 | 	DPLL_PIN_CAPABILITIES_STATE_CAN_CHANGE = 4, | 191 | 	DPLL_PIN_CAPABILITIES_STATE_CAN_CHANGE = 4, |
| 192 | }; | 192 | }; |
| 193 | 193 | ||
| 194 | #define DPLL_PHASE_OFFSET_DIVIDER	1000 | 194 | #define DPLL_PHASE_OFFSET_DIVIDER		1000 |
| 195 | #define DPLL_PIN_MEASURED_FREQUENCY_DIVIDER	1000 | ||
| 195 | 196 | ||
| 196 | /** | 197 | /** |
| 197 | * enum dpll_feature_state - Allow control (enable/disable) and status checking | 198 | * enum dpll_feature_state - Allow control (enable/disable) and status checking |
| ... | @@ -218,6 +219,7 @@ enum dpll_a { | ... | @@ -218,6 +219,7 @@ enum dpll_a { |
| 218 | 	DPLL_A_CLOCK_QUALITY_LEVEL, | 219 | 	DPLL_A_CLOCK_QUALITY_LEVEL, |
| 219 | 	DPLL_A_PHASE_OFFSET_MONITOR, | 220 | 	DPLL_A_PHASE_OFFSET_MONITOR, |
| 220 | 	DPLL_A_PHASE_OFFSET_AVG_FACTOR, | 221 | 	DPLL_A_PHASE_OFFSET_AVG_FACTOR, |
| 222 | 	DPLL_A_FREQUENCY_MONITOR, | ||
| 221 | 223 | ||
| 222 | 	__DPLL_A_MAX, | 224 | 	__DPLL_A_MAX, |
| 223 | 	DPLL_A_MAX = (__DPLL_A_MAX - 1) | 225 | 	DPLL_A_MAX = (__DPLL_A_MAX - 1) |
| ... | @@ -254,6 +256,7 @@ enum dpll_a_pin { | ... | @@ -254,6 +256,7 @@ enum dpll_a_pin { |
| 254 | 	DPLL_A_PIN_REFERENCE_SYNC, | 256 | 	DPLL_A_PIN_REFERENCE_SYNC, |
| 255 | 	DPLL_A_PIN_PHASE_ADJUST_GRAN, | 257 | 	DPLL_A_PIN_PHASE_ADJUST_GRAN, |
| 256 | 	DPLL_A_PIN_FRACTIONAL_FREQUENCY_OFFSET_PPT, | 258 | 	DPLL_A_PIN_FRACTIONAL_FREQUENCY_OFFSET_PPT, |
| 259 | 	DPLL_A_PIN_MEASURED_FREQUENCY, | ||
| 257 | 260 | ||
| 258 | 	__DPLL_A_PIN_MAX, | 261 | 	__DPLL_A_PIN_MAX, |
| 259 | 	DPLL_A_PIN_MAX = (__DPLL_A_PIN_MAX - 1) | 262 | 	DPLL_A_PIN_MAX = (__DPLL_A_PIN_MAX - 1) |
lib/libc/include/any-linux-any/linux/ethtool.h+1-1| ... | @@ -225,7 +225,7 @@ enum tunable_id { | ... | @@ -225,7 +225,7 @@ enum tunable_id { |
| 225 | 	ETHTOOL_ID_UNSPEC, | 225 | 	ETHTOOL_ID_UNSPEC, |
| 226 | 	ETHTOOL_RX_COPYBREAK, | 226 | 	ETHTOOL_RX_COPYBREAK, |
| 227 | 	ETHTOOL_TX_COPYBREAK, | 227 | 	ETHTOOL_TX_COPYBREAK, |
| 228 | 	ETHTOOL_PFC_PREVENTION_TOUT, /* timeout in msecs */ | 228 | 	ETHTOOL_PFC_PREVENTION_TOUT, /* both pause and pfc, see man ethtool */ |
| 229 | 	ETHTOOL_TX_COPYBREAK_BUF_SIZE, | 229 | 	ETHTOOL_TX_COPYBREAK_BUF_SIZE, |
| 230 | 	/* | 230 | 	/* |
| 231 | 	 * Add your fresh new tunable attribute above and remember to update | 231 | 	 * Add your fresh new tunable attribute above and remember to update |
lib/libc/include/any-linux-any/linux/ethtool_netlink_generated.h+3| ... | @@ -371,6 +371,8 @@ enum { | ... | @@ -371,6 +371,8 @@ enum { |
| 371 | 	ETHTOOL_A_COALESCE_TX_AGGR_TIME_USECS, | 371 | 	ETHTOOL_A_COALESCE_TX_AGGR_TIME_USECS, |
| 372 | 	ETHTOOL_A_COALESCE_RX_PROFILE, | 372 | 	ETHTOOL_A_COALESCE_RX_PROFILE, |
| 373 | 	ETHTOOL_A_COALESCE_TX_PROFILE, | 373 | 	ETHTOOL_A_COALESCE_TX_PROFILE, |
| 374 | 	ETHTOOL_A_COALESCE_RX_CQE_FRAMES, | ||
| 375 | 	ETHTOOL_A_COALESCE_RX_CQE_NSECS, | ||
| 374 | 376 | ||
| 375 | 	__ETHTOOL_A_COALESCE_CNT, | 377 | 	__ETHTOOL_A_COALESCE_CNT, |
| 376 | 	ETHTOOL_A_COALESCE_MAX = (__ETHTOOL_A_COALESCE_CNT - 1) | 378 | 	ETHTOOL_A_COALESCE_MAX = (__ETHTOOL_A_COALESCE_CNT - 1) |
| ... | @@ -381,6 +383,7 @@ enum { | ... | @@ -381,6 +383,7 @@ enum { |
| 381 | 	ETHTOOL_A_PAUSE_STAT_PAD, | 383 | 	ETHTOOL_A_PAUSE_STAT_PAD, |
| 382 | 	ETHTOOL_A_PAUSE_STAT_TX_FRAMES, | 384 | 	ETHTOOL_A_PAUSE_STAT_TX_FRAMES, |
| 383 | 	ETHTOOL_A_PAUSE_STAT_RX_FRAMES, | 385 | 	ETHTOOL_A_PAUSE_STAT_RX_FRAMES, |
| 386 | 	ETHTOOL_A_PAUSE_STAT_TX_PAUSE_STORM_EVENTS, | ||
| 384 | 387 | ||
| 385 | 	__ETHTOOL_A_PAUSE_STAT_CNT, | 388 | 	__ETHTOOL_A_PAUSE_STAT_CNT, |
| 386 | 	ETHTOOL_A_PAUSE_STAT_MAX = (__ETHTOOL_A_PAUSE_STAT_CNT - 1) | 389 | 	ETHTOOL_A_PAUSE_STAT_MAX = (__ETHTOOL_A_PAUSE_STAT_CNT - 1) |
lib/libc/include/any-linux-any/linux/fs.h+12| ... | @@ -653,4 +653,16 @@ struct procmap_query { | ... | @@ -653,4 +653,16 @@ struct procmap_query { |
| 653 | 	__u64 build_id_addr;		/* in */ | 653 | 	__u64 build_id_addr;		/* in */ |
| 654 | }; | 654 | }; |
| 655 | 655 | ||
| 656 | /* | ||
| 657 | * Shutdown the filesystem. | ||
| 658 | */ | ||
| 659 | #define FS_IOC_SHUTDOWN _IOR('X', 125, __u32) | ||
| 660 | |||
| 661 | /* | ||
| 662 | * Flags for FS_IOC_SHUTDOWN | ||
| 663 | */ | ||
| 664 | #define FS_SHUTDOWN_FLAGS_DEFAULT	0x0 | ||
| 665 | #define FS_SHUTDOWN_FLAGS_LOGFLUSH	0x1	/* flush log but not data*/ | ||
| 666 | #define FS_SHUTDOWN_FLAGS_NOLOGFLUSH	0x2	/* don't flush log nor data */ | ||
| 667 | |||
| 656 | #endif /* _LINUX_FS_H */ | 668 | #endif /* _LINUX_FS_H */ |
| \ No newline at end of file | |||
lib/libc/include/any-linux-any/linux/hdlcdrv.h deleted-111| ... | @@ -1,111 +0,0 @@ | ||
| 1 | /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ | ||
| 2 | /* | ||
| 3 | * hdlcdrv.h -- HDLC packet radio network driver. | ||
| 4 | * The Linux soundcard driver for 1200 baud and 9600 baud packet radio | ||
| 5 | * (C) 1996-1998 by Thomas Sailer, HB9JNX/AE4WA | ||
| 6 | */ | ||
| 7 | |||
| 8 | #ifndef _HDLCDRV_H | ||
| 9 | #define _HDLCDRV_H | ||
| 10 | |||
| 11 | /* -------------------------------------------------------------------- */ | ||
| 12 | /* | ||
| 13 | * structs for the IOCTL commands | ||
| 14 | */ | ||
| 15 | |||
| 16 | struct hdlcdrv_params { | ||
| 17 | 	int iobase; | ||
| 18 | 	int irq; | ||
| 19 | 	int dma; | ||
| 20 | 	int dma2; | ||
| 21 | 	int seriobase; | ||
| 22 | 	int pariobase; | ||
| 23 | 	int midiiobase; | ||
| 24 | };	 | ||
| 25 | |||
| 26 | struct hdlcdrv_channel_params { | ||
| 27 | 	int tx_delay; /* the transmitter keyup delay in 10ms units */ | ||
| 28 | 	int tx_tail; /* the transmitter keyoff delay in 10ms units */ | ||
| 29 | 	int slottime; /* the slottime in 10ms; usually 10 = 100ms */ | ||
| 30 | 	int ppersist; /* the p-persistence 0..255 */ | ||
| 31 | 	int fulldup; /* some driver do not support full duplex, setting */ | ||
| 32 | 	 /* this just makes them send even if DCD is on */ | ||
| 33 | };	 | ||
| 34 | |||
| 35 | struct hdlcdrv_old_channel_state { | ||
| 36 | 	int ptt; | ||
| 37 | 	int dcd; | ||
| 38 | 	int ptt_keyed; | ||
| 39 | }; | ||
| 40 | |||
| 41 | struct hdlcdrv_channel_state { | ||
| 42 | 	int ptt; | ||
| 43 | 	int dcd; | ||
| 44 | 	int ptt_keyed; | ||
| 45 | 	unsigned long tx_packets; | ||
| 46 | 	unsigned long tx_errors; | ||
| 47 | 	unsigned long rx_packets; | ||
| 48 | 	unsigned long rx_errors; | ||
| 49 | }; | ||
| 50 | |||
| 51 | struct hdlcdrv_ioctl { | ||
| 52 | 	int cmd; | ||
| 53 | 	union { | ||
| 54 | 		struct hdlcdrv_params mp; | ||
| 55 | 		struct hdlcdrv_channel_params cp; | ||
| 56 | 		struct hdlcdrv_channel_state cs; | ||
| 57 | 		struct hdlcdrv_old_channel_state ocs; | ||
| 58 | 		unsigned int calibrate; | ||
| 59 | 		unsigned char bits; | ||
| 60 | 		char modename[128]; | ||
| 61 | 		char drivername[32]; | ||
| 62 | 	} data; | ||
| 63 | }; | ||
| 64 | |||
| 65 | /* -------------------------------------------------------------------- */ | ||
| 66 | |||
| 67 | /* | ||
| 68 | * ioctl values | ||
| 69 | */ | ||
| 70 | #define HDLCDRVCTL_GETMODEMPAR 0 | ||
| 71 | #define HDLCDRVCTL_SETMODEMPAR 1 | ||
| 72 | #define HDLCDRVCTL_MODEMPARMASK 2 /* not handled by hdlcdrv */ | ||
| 73 | #define HDLCDRVCTL_GETCHANNELPAR 10 | ||
| 74 | #define HDLCDRVCTL_SETCHANNELPAR 11 | ||
| 75 | #define HDLCDRVCTL_OLDGETSTAT 20 | ||
| 76 | #define HDLCDRVCTL_CALIBRATE 21 | ||
| 77 | #define HDLCDRVCTL_GETSTAT 22 | ||
| 78 | |||
| 79 | /* | ||
| 80 | * these are mainly for debugging purposes | ||
| 81 | */ | ||
| 82 | #define HDLCDRVCTL_GETSAMPLES 30 | ||
| 83 | #define HDLCDRVCTL_GETBITS 31 | ||
| 84 | |||
| 85 | /* | ||
| 86 | * not handled by hdlcdrv, but by its depending drivers | ||
| 87 | */ | ||
| 88 | #define HDLCDRVCTL_GETMODE 40 | ||
| 89 | #define HDLCDRVCTL_SETMODE 41 | ||
| 90 | #define HDLCDRVCTL_MODELIST 42 | ||
| 91 | #define HDLCDRVCTL_DRIVERNAME 43 | ||
| 92 | |||
| 93 | /* | ||
| 94 | * mask of needed modem parameters, returned by HDLCDRVCTL_MODEMPARMASK | ||
| 95 | */ | ||
| 96 | #define HDLCDRV_PARMASK_IOBASE (1<<0) | ||
| 97 | #define HDLCDRV_PARMASK_IRQ (1<<1) | ||
| 98 | #define HDLCDRV_PARMASK_DMA (1<<2) | ||
| 99 | #define HDLCDRV_PARMASK_DMA2 (1<<3) | ||
| 100 | #define HDLCDRV_PARMASK_SERIOBASE (1<<4) | ||
| 101 | #define HDLCDRV_PARMASK_PARIOBASE (1<<5) | ||
| 102 | #define HDLCDRV_PARMASK_MIDIIOBASE (1<<6) | ||
| 103 | |||
| 104 | /* -------------------------------------------------------------------- */ | ||
| 105 | |||
| 106 | |||
| 107 | /* -------------------------------------------------------------------- */ | ||
| 108 | |||
| 109 | #endif /* _HDLCDRV_H */ | ||
| 110 | |||
| 111 | /* -------------------------------------------------------------------- */ | ||
| \ No newline at end of file | |||
lib/libc/include/any-linux-any/linux/if_link.h+47| ... | @@ -742,6 +742,11 @@ enum in6_addr_gen_mode { | ... | @@ -742,6 +742,11 @@ enum in6_addr_gen_mode { |
| 742 | * @IFLA_BR_FDB_MAX_LEARNED | 742 | * @IFLA_BR_FDB_MAX_LEARNED |
| 743 | * Set the number of max dynamically learned FDB entries for the current | 743 | * Set the number of max dynamically learned FDB entries for the current |
| 744 | * bridge. | 744 | * bridge. |
| 745 | * | ||
| 746 | * @IFLA_BR_STP_MODE | ||
| 747 | * Set the STP mode for the bridge, which controls how the bridge | ||
| 748 | * selects between userspace and kernel STP. The valid values are | ||
| 749 | * documented below in the ``BR_STP_MODE_*`` constants. | ||
| 745 | */ | 750 | */ |
| 746 | enum { | 751 | enum { |
| 747 | 	IFLA_BR_UNSPEC, | 752 | 	IFLA_BR_UNSPEC, |
| ... | @@ -794,11 +799,45 @@ enum { | ... | @@ -794,11 +799,45 @@ enum { |
| 794 | 	IFLA_BR_MCAST_QUERIER_STATE, | 799 | 	IFLA_BR_MCAST_QUERIER_STATE, |
| 795 | 	IFLA_BR_FDB_N_LEARNED, | 800 | 	IFLA_BR_FDB_N_LEARNED, |
| 796 | 	IFLA_BR_FDB_MAX_LEARNED, | 801 | 	IFLA_BR_FDB_MAX_LEARNED, |
| 802 | 	IFLA_BR_STP_MODE, | ||
| 797 | 	__IFLA_BR_MAX, | 803 | 	__IFLA_BR_MAX, |
| 798 | }; | 804 | }; |
| 799 | 805 | ||
| 800 | #define IFLA_BR_MAX	(__IFLA_BR_MAX - 1) | 806 | #define IFLA_BR_MAX	(__IFLA_BR_MAX - 1) |
| 801 | 807 | ||
| 808 | /** | ||
| 809 | * DOC: Bridge STP mode values | ||
| 810 | * | ||
| 811 | * @BR_STP_MODE_AUTO | ||
| 812 | * Default. The kernel invokes the ``/sbin/bridge-stp`` helper to hand | ||
| 813 | * the bridge to a userspace STP daemon (e.g. mstpd). Only attempted in | ||
| 814 | * the initial network namespace; in other namespaces this falls back to | ||
| 815 | * kernel STP. | ||
| 816 | * | ||
| 817 | * @BR_STP_MODE_USER | ||
| 818 | * Directly enable userspace STP (``BR_USER_STP``) without invoking the | ||
| 819 | * ``/sbin/bridge-stp`` helper. Works in any network namespace. | ||
| 820 | * Userspace is responsible for ensuring an STP daemon manages the | ||
| 821 | * bridge. | ||
| 822 | * | ||
| 823 | * @BR_STP_MODE_KERNEL | ||
| 824 | * Directly enable kernel STP (``BR_KERNEL_STP``) without invoking the | ||
| 825 | * helper. | ||
| 826 | * | ||
| 827 | * The mode controls how the bridge selects between userspace and kernel | ||
| 828 | * STP when STP is enabled via ``IFLA_BR_STP_STATE``. It can only be | ||
| 829 | * changed while STP is disabled (``IFLA_BR_STP_STATE`` == 0), returns | ||
| 830 | * ``-EBUSY`` otherwise. The default value is ``BR_STP_MODE_AUTO``. | ||
| 831 | */ | ||
| 832 | enum br_stp_mode { | ||
| 833 | 	BR_STP_MODE_AUTO, | ||
| 834 | 	BR_STP_MODE_USER, | ||
| 835 | 	BR_STP_MODE_KERNEL, | ||
| 836 | 	__BR_STP_MODE_MAX | ||
| 837 | }; | ||
| 838 | |||
| 839 | #define BR_STP_MODE_MAX (__BR_STP_MODE_MAX - 1) | ||
| 840 | |||
| 802 | struct ifla_bridge_id { | 841 | struct ifla_bridge_id { |
| 803 | 	__u8	prio[2]; | 842 | 	__u8	prio[2]; |
| 804 | 	__u8	addr[6]; /* ETH_ALEN */ | 843 | 	__u8	addr[6]; /* ETH_ALEN */ |
| ... | @@ -1294,6 +1333,11 @@ enum netkit_mode { | ... | @@ -1294,6 +1333,11 @@ enum netkit_mode { |
| 1294 | 	NETKIT_L3, | 1333 | 	NETKIT_L3, |
| 1295 | }; | 1334 | }; |
| 1296 | 1335 | ||
| 1336 | enum netkit_pairing { | ||
| 1337 | 	NETKIT_DEVICE_PAIR, | ||
| 1338 | 	NETKIT_DEVICE_SINGLE, | ||
| 1339 | }; | ||
| 1340 | |||
| 1297 | /* NETKIT_SCRUB_NONE leaves clearing skb->{mark,priority} up to | 1341 | /* NETKIT_SCRUB_NONE leaves clearing skb->{mark,priority} up to |
| 1298 | * the BPF program if attached. This also means the latter can | 1342 | * the BPF program if attached. This also means the latter can |
| 1299 | * consume the two fields if they were populated earlier. | 1343 | * consume the two fields if they were populated earlier. |
| ... | @@ -1318,6 +1362,7 @@ enum { | ... | @@ -1318,6 +1362,7 @@ enum { |
| 1318 | 	IFLA_NETKIT_PEER_SCRUB, | 1362 | 	IFLA_NETKIT_PEER_SCRUB, |
| 1319 | 	IFLA_NETKIT_HEADROOM, | 1363 | 	IFLA_NETKIT_HEADROOM, |
| 1320 | 	IFLA_NETKIT_TAILROOM, | 1364 | 	IFLA_NETKIT_TAILROOM, |
| 1365 | 	IFLA_NETKIT_PAIRING, | ||
| 1321 | 	__IFLA_NETKIT_MAX, | 1366 | 	__IFLA_NETKIT_MAX, |
| 1322 | }; | 1367 | }; |
| 1323 | #define IFLA_NETKIT_MAX	(__IFLA_NETKIT_MAX - 1) | 1368 | #define IFLA_NETKIT_MAX	(__IFLA_NETKIT_MAX - 1) |
| ... | @@ -1566,6 +1611,8 @@ enum { | ... | @@ -1566,6 +1611,8 @@ enum { |
| 1566 | 	IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE, | 1611 | 	IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE, |
| 1567 | 	IFLA_BOND_SLAVE_PRIO, | 1612 | 	IFLA_BOND_SLAVE_PRIO, |
| 1568 | 	IFLA_BOND_SLAVE_ACTOR_PORT_PRIO, | 1613 | 	IFLA_BOND_SLAVE_ACTOR_PORT_PRIO, |
| 1614 | 	IFLA_BOND_SLAVE_AD_CHURN_ACTOR_STATE, | ||
| 1615 | 	IFLA_BOND_SLAVE_AD_CHURN_PARTNER_STATE, | ||
| 1569 | 	__IFLA_BOND_SLAVE_MAX, | 1616 | 	__IFLA_BOND_SLAVE_MAX, |
| 1570 | }; | 1617 | }; |
| 1571 | 1618 |
lib/libc/include/any-linux-any/linux/if_pppox.h-10| ... | @@ -103,16 +103,6 @@ struct sockaddr_pppol2tpv3in6 { | ... | @@ -103,16 +103,6 @@ struct sockaddr_pppol2tpv3in6 { |
| 103 | 	struct pppol2tpv3in6_addr pppol2tp; | 103 | 	struct pppol2tpv3in6_addr pppol2tp; |
| 104 | } __attribute__((packed)); | 104 | } __attribute__((packed)); |
| 105 | 105 | ||
| 106 | /********************************************************************* | ||
| 107 | * | ||
| 108 | * ioctl interface for defining forwarding of connections | ||
| 109 | * | ||
| 110 | ********************************************************************/ | ||
| 111 | |||
| 112 | #define PPPOEIOCSFWD	_IOW(0xB1 ,0, size_t) | ||
| 113 | #define PPPOEIOCDFWD	_IO(0xB1 ,1) | ||
| 114 | /*#define PPPOEIOCGFWD	_IOWR(0xB1,2, size_t)*/ | ||
| 115 | |||
| 116 | /* Codes to identify message types */ | 106 | /* Codes to identify message types */ |
| 117 | #define PADI_CODE	0x09 | 107 | #define PADI_CODE	0x09 |
| 118 | #define PADO_CODE	0x07 | 108 | #define PADO_CODE	0x07 |
lib/libc/include/any-linux-any/linux/inet_diag.h+9| ... | @@ -129,6 +129,15 @@ struct inet_diag_msg { | ... | @@ -129,6 +129,15 @@ struct inet_diag_msg { |
| 129 | 	__u32	idiag_inode; | 129 | 	__u32	idiag_inode; |
| 130 | }; | 130 | }; |
| 131 | 131 | ||
| 132 | enum { | ||
| 133 | 	IDIAG_TIMER_OFF, | ||
| 134 | 	IDIAG_TIMER_ON, | ||
| 135 | 	IDIAG_TIMER_KEEPALIVE, | ||
| 136 | 	IDIAG_TIMER_TIMEWAIT, | ||
| 137 | 	IDIAG_TIMER_PROBE0, | ||
| 138 | 	IDIAG_TIMER_DELACK, | ||
| 139 | }; | ||
| 140 | |||
| 132 | /* Extensions */ | 141 | /* Extensions */ |
| 133 | 142 | ||
| 134 | enum { | 143 | enum { |
lib/libc/include/any-linux-any/linux/io_uring.h+9-95| ... | @@ -10,6 +10,8 @@ | ... | @@ -10,6 +10,8 @@ |
| 10 | 10 | ||
| 11 | #include <linux/fs.h> | 11 | #include <linux/fs.h> |
| 12 | #include <linux/types.h> | 12 | #include <linux/types.h> |
| 13 | #include <linux/io_uring/zcrx.h> | ||
| 14 | |||
| 13 | /* | 15 | /* |
| 14 | * this file is shared with liburing and that has to autodetect | 16 | * this file is shared with liburing and that has to autodetect |
| 15 | * if linux/time_types.h is available or not, it can | 17 | * if linux/time_types.h is available or not, it can |
| ... | @@ -341,6 +343,10 @@ enum io_uring_op { | ... | @@ -341,6 +343,10 @@ enum io_uring_op { |
| 341 | 343 | ||
| 342 | /* | 344 | /* |
| 343 | * sqe->timeout_flags | 345 | * sqe->timeout_flags |
| 346 | * | ||
| 347 | * IORING_TIMEOUT_IMMEDIATE_ARG:	If set, sqe->addr stores the timeout | ||
| 348 | *					value in nanoseconds instead of | ||
| 349 | *					pointing to a timespec. | ||
| 344 | */ | 350 | */ |
| 345 | #define IORING_TIMEOUT_ABS		(1U << 0) | 351 | #define IORING_TIMEOUT_ABS		(1U << 0) |
| 346 | #define IORING_TIMEOUT_UPDATE		(1U << 1) | 352 | #define IORING_TIMEOUT_UPDATE		(1U << 1) |
| ... | @@ -349,6 +355,7 @@ enum io_uring_op { | ... | @@ -349,6 +355,7 @@ enum io_uring_op { |
| 349 | #define IORING_LINK_TIMEOUT_UPDATE	(1U << 4) | 355 | #define IORING_LINK_TIMEOUT_UPDATE	(1U << 4) |
| 350 | #define IORING_TIMEOUT_ETIME_SUCCESS	(1U << 5) | 356 | #define IORING_TIMEOUT_ETIME_SUCCESS	(1U << 5) |
| 351 | #define IORING_TIMEOUT_MULTISHOT	(1U << 6) | 357 | #define IORING_TIMEOUT_MULTISHOT	(1U << 6) |
| 358 | #define IORING_TIMEOUT_IMMEDIATE_ARG	(1U << 7) | ||
| 352 | #define IORING_TIMEOUT_CLOCK_MASK	(IORING_TIMEOUT_BOOTTIME | IORING_TIMEOUT_REALTIME) | 359 | #define IORING_TIMEOUT_CLOCK_MASK	(IORING_TIMEOUT_BOOTTIME | IORING_TIMEOUT_REALTIME) |
| 353 | #define IORING_TIMEOUT_UPDATE_MASK	(IORING_TIMEOUT_UPDATE | IORING_LINK_TIMEOUT_UPDATE) | 360 | #define IORING_TIMEOUT_UPDATE_MASK	(IORING_TIMEOUT_UPDATE | IORING_LINK_TIMEOUT_UPDATE) |
| 354 | /* | 361 | /* |
| ... | @@ -898,7 +905,8 @@ struct io_uring_buf_reg { | ... | @@ -898,7 +905,8 @@ struct io_uring_buf_reg { |
| 898 | 	__u32	ring_entries; | 905 | 	__u32	ring_entries; |
| 899 | 	__u16	bgid; | 906 | 	__u16	bgid; |
| 900 | 	__u16	flags; | 907 | 	__u16	flags; |
| 901 | 	__u64	resv[3]; | 908 | 	__u32	min_left; |
| 909 | 	__u32	resv[5]; | ||
| 902 | }; | 910 | }; |
| 903 | 911 | ||
| 904 | /* argument for IORING_REGISTER_PBUF_STATUS */ | 912 | /* argument for IORING_REGISTER_PBUF_STATUS */ |
| ... | @@ -1050,100 +1058,6 @@ struct io_timespec { | ... | @@ -1050,100 +1058,6 @@ struct io_timespec { |
| 1050 | 	__u64		tv_nsec; | 1058 | 	__u64		tv_nsec; |
| 1051 | }; | 1059 | }; |
| 1052 | 1060 | ||
| 1053 | /* Zero copy receive refill queue entry */ | ||
| 1054 | struct io_uring_zcrx_rqe { | ||
| 1055 | 	__u64	off; | ||
| 1056 | 	__u32	len; | ||
| 1057 | 	__u32	__pad; | ||
| 1058 | }; | ||
| 1059 | |||
| 1060 | struct io_uring_zcrx_cqe { | ||
| 1061 | 	__u64	off; | ||
| 1062 | 	__u64	__pad; | ||
| 1063 | }; | ||
| 1064 | |||
| 1065 | /* The bit from which area id is encoded into offsets */ | ||
| 1066 | #define IORING_ZCRX_AREA_SHIFT	48 | ||
| 1067 | #define IORING_ZCRX_AREA_MASK	(~(((__u64)1 << IORING_ZCRX_AREA_SHIFT) - 1)) | ||
| 1068 | |||
| 1069 | struct io_uring_zcrx_offsets { | ||
| 1070 | 	__u32	head; | ||
| 1071 | 	__u32	tail; | ||
| 1072 | 	__u32	rqes; | ||
| 1073 | 	__u32	__resv2; | ||
| 1074 | 	__u64	__resv[2]; | ||
| 1075 | }; | ||
| 1076 | |||
| 1077 | enum io_uring_zcrx_area_flags { | ||
| 1078 | 	IORING_ZCRX_AREA_DMABUF		= 1, | ||
| 1079 | }; | ||
| 1080 | |||
| 1081 | struct io_uring_zcrx_area_reg { | ||
| 1082 | 	__u64	addr; | ||
| 1083 | 	__u64	len; | ||
| 1084 | 	__u64	rq_area_token; | ||
| 1085 | 	__u32	flags; | ||
| 1086 | 	__u32	dmabuf_fd; | ||
| 1087 | 	__u64	__resv2[2]; | ||
| 1088 | }; | ||
| 1089 | |||
| 1090 | enum zcrx_reg_flags { | ||
| 1091 | 	ZCRX_REG_IMPORT	= 1, | ||
| 1092 | }; | ||
| 1093 | |||
| 1094 | enum zcrx_features { | ||
| 1095 | 	/* | ||
| 1096 | 	 * The user can ask for the desired rx page size by passing the | ||
| 1097 | 	 * value in struct io_uring_zcrx_ifq_reg::rx_buf_len. | ||
| 1098 | 	 */ | ||
| 1099 | 	ZCRX_FEATURE_RX_PAGE_SIZE	= 1 << 0, | ||
| 1100 | }; | ||
| 1101 | |||
| 1102 | /* | ||
| 1103 | * Argument for IORING_REGISTER_ZCRX_IFQ | ||
| 1104 | */ | ||
| 1105 | struct io_uring_zcrx_ifq_reg { | ||
| 1106 | 	__u32	if_idx; | ||
| 1107 | 	__u32	if_rxq; | ||
| 1108 | 	__u32	rq_entries; | ||
| 1109 | 	__u32	flags; | ||
| 1110 | |||
| 1111 | 	__u64	area_ptr; /* pointer to struct io_uring_zcrx_area_reg */ | ||
| 1112 | 	__u64	region_ptr; /* struct io_uring_region_desc * */ | ||
| 1113 | |||
| 1114 | 	struct io_uring_zcrx_offsets offsets; | ||
| 1115 | 	__u32	zcrx_id; | ||
| 1116 | 	__u32	rx_buf_len; | ||
| 1117 | 	__u64	__resv[3]; | ||
| 1118 | }; | ||
| 1119 | |||
| 1120 | enum zcrx_ctrl_op { | ||
| 1121 | 	ZCRX_CTRL_FLUSH_RQ, | ||
| 1122 | 	ZCRX_CTRL_EXPORT, | ||
| 1123 | |||
| 1124 | 	__ZCRX_CTRL_LAST, | ||
| 1125 | }; | ||
| 1126 | |||
| 1127 | struct zcrx_ctrl_flush_rq { | ||
| 1128 | 	__u64		__resv[6]; | ||
| 1129 | }; | ||
| 1130 | |||
| 1131 | struct zcrx_ctrl_export { | ||
| 1132 | 	__u32		zcrx_fd; | ||
| 1133 | 	__u32 		__resv1[11]; | ||
| 1134 | }; | ||
| 1135 | |||
| 1136 | struct zcrx_ctrl { | ||
| 1137 | 	__u32	zcrx_id; | ||
| 1138 | 	__u32	op; /* see enum zcrx_ctrl_op */ | ||
| 1139 | 	__u64	__resv[2]; | ||
| 1140 | |||
| 1141 | 	union { | ||
| 1142 | 		struct zcrx_ctrl_export		zc_export; | ||
| 1143 | 		struct zcrx_ctrl_flush_rq	zc_flush; | ||
| 1144 | 	}; | ||
| 1145 | }; | ||
| 1146 | |||
| 1147 | #ifdef __cplusplus | 1061 | #ifdef __cplusplus |
| 1148 | } | 1062 | } |
| 1149 | #endif | 1063 | #endif |
lib/libc/include/any-linux-any/linux/io_uring/zcrx.h created+115| ... | @@ -0,0 +1,115 @@ | ||
| 1 | /* SPDX-License-Identifier: (GPL-2.0 WITH Linux-syscall-note) OR MIT */ | ||
| 2 | /* | ||
| 3 | * Header file for the io_uring zerocopy receive (zcrx) interface. | ||
| 4 | * | ||
| 5 | * Copyright (C) 2026 Pavel Begunkov | ||
| 6 | * Copyright (C) 2026 David Wei | ||
| 7 | * Copyright (C) Meta Platforms, Inc. | ||
| 8 | */ | ||
| 9 | #ifndef LINUX_IO_ZCRX_H | ||
| 10 | #define LINUX_IO_ZCRX_H | ||
| 11 | |||
| 12 | #include <linux/types.h> | ||
| 13 | |||
| 14 | /* Zero copy receive refill queue entry */ | ||
| 15 | struct io_uring_zcrx_rqe { | ||
| 16 | 	__u64	off; | ||
| 17 | 	__u32	len; | ||
| 18 | 	__u32	__pad; | ||
| 19 | }; | ||
| 20 | |||
| 21 | struct io_uring_zcrx_cqe { | ||
| 22 | 	__u64	off; | ||
| 23 | 	__u64	__pad; | ||
| 24 | }; | ||
| 25 | |||
| 26 | /* The bit from which area id is encoded into offsets */ | ||
| 27 | #define IORING_ZCRX_AREA_SHIFT	48 | ||
| 28 | #define IORING_ZCRX_AREA_MASK	(~(((__u64)1 << IORING_ZCRX_AREA_SHIFT) - 1)) | ||
| 29 | |||
| 30 | struct io_uring_zcrx_offsets { | ||
| 31 | 	__u32	head; | ||
| 32 | 	__u32	tail; | ||
| 33 | 	__u32	rqes; | ||
| 34 | 	__u32	__resv2; | ||
| 35 | 	__u64	__resv[2]; | ||
| 36 | }; | ||
| 37 | |||
| 38 | enum io_uring_zcrx_area_flags { | ||
| 39 | 	IORING_ZCRX_AREA_DMABUF		= 1, | ||
| 40 | }; | ||
| 41 | |||
| 42 | struct io_uring_zcrx_area_reg { | ||
| 43 | 	__u64	addr; | ||
| 44 | 	__u64	len; | ||
| 45 | 	__u64	rq_area_token; | ||
| 46 | 	__u32	flags; | ||
| 47 | 	__u32	dmabuf_fd; | ||
| 48 | 	__u64	__resv2[2]; | ||
| 49 | }; | ||
| 50 | |||
| 51 | enum zcrx_reg_flags { | ||
| 52 | 	ZCRX_REG_IMPORT		= 1, | ||
| 53 | |||
| 54 | 	/* | ||
| 55 | 	 * Register a zcrx instance without a net device. All data will be | ||
| 56 | 	 * copied. The refill queue entries might not be automatically | ||
| 57 | 	 * consumed and need to be flushed, see ZCRX_CTRL_FLUSH_RQ. | ||
| 58 | 	 */ | ||
| 59 | 	ZCRX_REG_NODEV		= 2, | ||
| 60 | }; | ||
| 61 | |||
| 62 | enum zcrx_features { | ||
| 63 | 	/* | ||
| 64 | 	 * The user can ask for the desired rx page size by passing the | ||
| 65 | 	 * value in struct io_uring_zcrx_ifq_reg::rx_buf_len. | ||
| 66 | 	 */ | ||
| 67 | 	ZCRX_FEATURE_RX_PAGE_SIZE	= 1 << 0, | ||
| 68 | }; | ||
| 69 | |||
| 70 | /* | ||
| 71 | * Argument for IORING_REGISTER_ZCRX_IFQ | ||
| 72 | */ | ||
| 73 | struct io_uring_zcrx_ifq_reg { | ||
| 74 | 	__u32	if_idx; | ||
| 75 | 	__u32	if_rxq; | ||
| 76 | 	__u32	rq_entries; | ||
| 77 | 	__u32	flags; | ||
| 78 | |||
| 79 | 	__u64	area_ptr; /* pointer to struct io_uring_zcrx_area_reg */ | ||
| 80 | 	__u64	region_ptr; /* struct io_uring_region_desc * */ | ||
| 81 | |||
| 82 | 	struct io_uring_zcrx_offsets offsets; | ||
| 83 | 	__u32	zcrx_id; | ||
| 84 | 	__u32	rx_buf_len; | ||
| 85 | 	__u64	__resv[3]; | ||
| 86 | }; | ||
| 87 | |||
| 88 | enum zcrx_ctrl_op { | ||
| 89 | 	ZCRX_CTRL_FLUSH_RQ, | ||
| 90 | 	ZCRX_CTRL_EXPORT, | ||
| 91 | |||
| 92 | 	__ZCRX_CTRL_LAST, | ||
| 93 | }; | ||
| 94 | |||
| 95 | struct zcrx_ctrl_flush_rq { | ||
| 96 | 	__u64		__resv[6]; | ||
| 97 | }; | ||
| 98 | |||
| 99 | struct zcrx_ctrl_export { | ||
| 100 | 	__u32		zcrx_fd; | ||
| 101 | 	__u32 		__resv1[11]; | ||
| 102 | }; | ||
| 103 | |||
| 104 | struct zcrx_ctrl { | ||
| 105 | 	__u32	zcrx_id; | ||
| 106 | 	__u32	op; /* see enum zcrx_ctrl_op */ | ||
| 107 | 	__u64	__resv[2]; | ||
| 108 | |||
| 109 | 	union { | ||
| 110 | 		struct zcrx_ctrl_export		zc_export; | ||
| 111 | 		struct zcrx_ctrl_flush_rq	zc_flush; | ||
| 112 | 	}; | ||
| 113 | }; | ||
| 114 | |||
| 115 | #endif /* LINUX_IO_ZCRX_H */ | ||
| \ No newline at end of file | |||
lib/libc/include/any-linux-any/linux/iommufd.h+9| ... | @@ -695,11 +695,15 @@ enum iommu_hw_info_type { | ... | @@ -695,11 +695,15 @@ enum iommu_hw_info_type { |
| 695 | * @IOMMU_HW_CAP_PCI_PASID_PRIV: Privileged Mode Supported, user ignores it | 695 | * @IOMMU_HW_CAP_PCI_PASID_PRIV: Privileged Mode Supported, user ignores it |
| 696 | * when the struct | 696 | * when the struct |
| 697 | * iommu_hw_info::out_max_pasid_log2 is zero. | 697 | * iommu_hw_info::out_max_pasid_log2 is zero. |
| 698 | * @IOMMU_HW_CAP_PCI_ATS_NOT_SUPPORTED: ATS is not supported or cannot be used | ||
| 699 | * on this device (absence implies ATS | ||
| 700 | * may be enabled) | ||
| 698 | */ | 701 | */ |
| 699 | enum iommufd_hw_capabilities { | 702 | enum iommufd_hw_capabilities { |
| 700 | 	IOMMU_HW_CAP_DIRTY_TRACKING = 1 << 0, | 703 | 	IOMMU_HW_CAP_DIRTY_TRACKING = 1 << 0, |
| 701 | 	IOMMU_HW_CAP_PCI_PASID_EXEC = 1 << 1, | 704 | 	IOMMU_HW_CAP_PCI_PASID_EXEC = 1 << 1, |
| 702 | 	IOMMU_HW_CAP_PCI_PASID_PRIV = 1 << 2, | 705 | 	IOMMU_HW_CAP_PCI_PASID_PRIV = 1 << 2, |
| 706 | 	IOMMU_HW_CAP_PCI_ATS_NOT_SUPPORTED = 1 << 3, | ||
| 703 | }; | 707 | }; |
| 704 | 708 | ||
| 705 | /** | 709 | /** |
| ... | @@ -1052,6 +1056,11 @@ struct iommu_fault_alloc { | ... | @@ -1052,6 +1056,11 @@ struct iommu_fault_alloc { |
| 1052 | enum iommu_viommu_type { | 1056 | enum iommu_viommu_type { |
| 1053 | 	IOMMU_VIOMMU_TYPE_DEFAULT = 0, | 1057 | 	IOMMU_VIOMMU_TYPE_DEFAULT = 0, |
| 1054 | 	IOMMU_VIOMMU_TYPE_ARM_SMMUV3 = 1, | 1058 | 	IOMMU_VIOMMU_TYPE_ARM_SMMUV3 = 1, |
| 1059 | 	/* | ||
| 1060 | 	 * TEGRA241_CMDQV requirements (otherwise, VCMDQs will not work) | ||
| 1061 | 	 * - Kernel will allocate a VINTF (HYP_OWN=0) to back this VIOMMU. So, | ||
| 1062 | 	 * VMM must wire the HYP_OWN bit to 0 in guest VINTF_CONFIG register | ||
| 1063 | 	 */ | ||
| 1055 | 	IOMMU_VIOMMU_TYPE_TEGRA241_CMDQV = 2, | 1064 | 	IOMMU_VIOMMU_TYPE_TEGRA241_CMDQV = 2, |
| 1056 | }; | 1065 | }; |
| 1057 | 1066 |
lib/libc/include/any-linux-any/linux/isdn/capicmd.h deleted-117| ... | @@ -1,117 +0,0 @@ | ||
| 1 | /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ | ||
| 2 | /* $Id: capicmd.h,v 1.2.6.2 2001/09/23 22:24:33 kai Exp $ | ||
| 3 | * | ||
| 4 | * CAPI 2.0 Interface for Linux | ||
| 5 | * | ||
| 6 | * Copyright 1997 by Carsten Paeth <calle@calle.de> | ||
| 7 | * | ||
| 8 | * This software may be used and distributed according to the terms | ||
| 9 | * of the GNU General Public License, incorporated herein by reference. | ||
| 10 | * | ||
| 11 | */ | ||
| 12 | |||
| 13 | #ifndef __CAPICMD_H__ | ||
| 14 | #define __CAPICMD_H__ | ||
| 15 | |||
| 16 | #define CAPI_MSG_BASELEN		8 | ||
| 17 | #define CAPI_DATA_B3_REQ_LEN		(CAPI_MSG_BASELEN+4+4+2+2+2) | ||
| 18 | #define CAPI_DATA_B3_RESP_LEN		(CAPI_MSG_BASELEN+4+2) | ||
| 19 | #define CAPI_DISCONNECT_B3_RESP_LEN	(CAPI_MSG_BASELEN+4) | ||
| 20 | |||
| 21 | /*----- CAPI commands -----*/ | ||
| 22 | #define CAPI_ALERT		 0x01 | ||
| 23 | #define CAPI_CONNECT		 0x02 | ||
| 24 | #define CAPI_CONNECT_ACTIVE	 0x03 | ||
| 25 | #define CAPI_CONNECT_B3_ACTIVE	 0x83 | ||
| 26 | #define CAPI_CONNECT_B3 	 0x82 | ||
| 27 | #define CAPI_CONNECT_B3_T90_ACTIVE 0x88 | ||
| 28 | #define CAPI_DATA_B3		 0x86 | ||
| 29 | #define CAPI_DISCONNECT_B3	 0x84 | ||
| 30 | #define CAPI_DISCONNECT 	 0x04 | ||
| 31 | #define CAPI_FACILITY		 0x80 | ||
| 32 | #define CAPI_INFO		 0x08 | ||
| 33 | #define CAPI_LISTEN		 0x05 | ||
| 34 | #define CAPI_MANUFACTURER	 0xff | ||
| 35 | #define CAPI_RESET_B3		 0x87 | ||
| 36 | #define CAPI_SELECT_B_PROTOCOL	 0x41 | ||
| 37 | |||
| 38 | /*----- CAPI subcommands -----*/ | ||
| 39 | |||
| 40 | #define CAPI_REQ 0x80 | ||
| 41 | #define CAPI_CONF 0x81 | ||
| 42 | #define CAPI_IND 0x82 | ||
| 43 | #define CAPI_RESP 0x83 | ||
| 44 | |||
| 45 | /*----- CAPI combined commands -----*/ | ||
| 46 | |||
| 47 | #define CAPICMD(cmd,subcmd)	(((cmd)<<8)|(subcmd)) | ||
| 48 | |||
| 49 | #define CAPI_DISCONNECT_REQ		CAPICMD(CAPI_DISCONNECT,CAPI_REQ) | ||
| 50 | #define CAPI_DISCONNECT_CONF		CAPICMD(CAPI_DISCONNECT,CAPI_CONF) | ||
| 51 | #define CAPI_DISCONNECT_IND		CAPICMD(CAPI_DISCONNECT,CAPI_IND) | ||
| 52 | #define CAPI_DISCONNECT_RESP		CAPICMD(CAPI_DISCONNECT,CAPI_RESP) | ||
| 53 | |||
| 54 | #define CAPI_ALERT_REQ			CAPICMD(CAPI_ALERT,CAPI_REQ) | ||
| 55 | #define CAPI_ALERT_CONF			CAPICMD(CAPI_ALERT,CAPI_CONF) | ||
| 56 | |||
| 57 | #define CAPI_CONNECT_REQ		CAPICMD(CAPI_CONNECT,CAPI_REQ) | ||
| 58 | #define CAPI_CONNECT_CONF		CAPICMD(CAPI_CONNECT,CAPI_CONF) | ||
| 59 | #define CAPI_CONNECT_IND		CAPICMD(CAPI_CONNECT,CAPI_IND) | ||
| 60 | #define CAPI_CONNECT_RESP		CAPICMD(CAPI_CONNECT,CAPI_RESP) | ||
| 61 | |||
| 62 | #define CAPI_CONNECT_ACTIVE_REQ		CAPICMD(CAPI_CONNECT_ACTIVE,CAPI_REQ) | ||
| 63 | #define CAPI_CONNECT_ACTIVE_CONF	CAPICMD(CAPI_CONNECT_ACTIVE,CAPI_CONF) | ||
| 64 | #define CAPI_CONNECT_ACTIVE_IND		CAPICMD(CAPI_CONNECT_ACTIVE,CAPI_IND) | ||
| 65 | #define CAPI_CONNECT_ACTIVE_RESP	CAPICMD(CAPI_CONNECT_ACTIVE,CAPI_RESP) | ||
| 66 | |||
| 67 | #define CAPI_SELECT_B_PROTOCOL_REQ	CAPICMD(CAPI_SELECT_B_PROTOCOL,CAPI_REQ) | ||
| 68 | #define CAPI_SELECT_B_PROTOCOL_CONF	CAPICMD(CAPI_SELECT_B_PROTOCOL,CAPI_CONF) | ||
| 69 | |||
| 70 | #define CAPI_CONNECT_B3_ACTIVE_REQ	CAPICMD(CAPI_CONNECT_B3_ACTIVE,CAPI_REQ) | ||
| 71 | #define CAPI_CONNECT_B3_ACTIVE_CONF	CAPICMD(CAPI_CONNECT_B3_ACTIVE,CAPI_CONF) | ||
| 72 | #define CAPI_CONNECT_B3_ACTIVE_IND	CAPICMD(CAPI_CONNECT_B3_ACTIVE,CAPI_IND) | ||
| 73 | #define CAPI_CONNECT_B3_ACTIVE_RESP	CAPICMD(CAPI_CONNECT_B3_ACTIVE,CAPI_RESP) | ||
| 74 | |||
| 75 | #define CAPI_CONNECT_B3_REQ		CAPICMD(CAPI_CONNECT_B3,CAPI_REQ) | ||
| 76 | #define CAPI_CONNECT_B3_CONF		CAPICMD(CAPI_CONNECT_B3,CAPI_CONF) | ||
| 77 | #define CAPI_CONNECT_B3_IND		CAPICMD(CAPI_CONNECT_B3,CAPI_IND) | ||
| 78 | #define CAPI_CONNECT_B3_RESP		CAPICMD(CAPI_CONNECT_B3,CAPI_RESP) | ||
| 79 | |||
| 80 | |||
| 81 | #define CAPI_CONNECT_B3_T90_ACTIVE_IND	CAPICMD(CAPI_CONNECT_B3_T90_ACTIVE,CAPI_IND) | ||
| 82 | #define CAPI_CONNECT_B3_T90_ACTIVE_RESP	CAPICMD(CAPI_CONNECT_B3_T90_ACTIVE,CAPI_RESP) | ||
| 83 | |||
| 84 | #define CAPI_DATA_B3_REQ		CAPICMD(CAPI_DATA_B3,CAPI_REQ) | ||
| 85 | #define CAPI_DATA_B3_CONF		CAPICMD(CAPI_DATA_B3,CAPI_CONF) | ||
| 86 | #define CAPI_DATA_B3_IND		CAPICMD(CAPI_DATA_B3,CAPI_IND) | ||
| 87 | #define CAPI_DATA_B3_RESP		CAPICMD(CAPI_DATA_B3,CAPI_RESP) | ||
| 88 | |||
| 89 | #define CAPI_DISCONNECT_B3_REQ		CAPICMD(CAPI_DISCONNECT_B3,CAPI_REQ) | ||
| 90 | #define CAPI_DISCONNECT_B3_CONF		CAPICMD(CAPI_DISCONNECT_B3,CAPI_CONF) | ||
| 91 | #define CAPI_DISCONNECT_B3_IND		CAPICMD(CAPI_DISCONNECT_B3,CAPI_IND) | ||
| 92 | #define CAPI_DISCONNECT_B3_RESP		CAPICMD(CAPI_DISCONNECT_B3,CAPI_RESP) | ||
| 93 | |||
| 94 | #define CAPI_RESET_B3_REQ		CAPICMD(CAPI_RESET_B3,CAPI_REQ) | ||
| 95 | #define CAPI_RESET_B3_CONF		CAPICMD(CAPI_RESET_B3,CAPI_CONF) | ||
| 96 | #define CAPI_RESET_B3_IND		CAPICMD(CAPI_RESET_B3,CAPI_IND) | ||
| 97 | #define CAPI_RESET_B3_RESP		CAPICMD(CAPI_RESET_B3,CAPI_RESP) | ||
| 98 | |||
| 99 | #define CAPI_LISTEN_REQ			CAPICMD(CAPI_LISTEN,CAPI_REQ) | ||
| 100 | #define CAPI_LISTEN_CONF		CAPICMD(CAPI_LISTEN,CAPI_CONF) | ||
| 101 | |||
| 102 | #define CAPI_MANUFACTURER_REQ		CAPICMD(CAPI_MANUFACTURER,CAPI_REQ) | ||
| 103 | #define CAPI_MANUFACTURER_CONF		CAPICMD(CAPI_MANUFACTURER,CAPI_CONF) | ||
| 104 | #define CAPI_MANUFACTURER_IND		CAPICMD(CAPI_MANUFACTURER,CAPI_IND) | ||
| 105 | #define CAPI_MANUFACTURER_RESP		CAPICMD(CAPI_MANUFACTURER,CAPI_RESP) | ||
| 106 | |||
| 107 | #define CAPI_FACILITY_REQ		CAPICMD(CAPI_FACILITY,CAPI_REQ) | ||
| 108 | #define CAPI_FACILITY_CONF		CAPICMD(CAPI_FACILITY,CAPI_CONF) | ||
| 109 | #define CAPI_FACILITY_IND		CAPICMD(CAPI_FACILITY,CAPI_IND) | ||
| 110 | #define CAPI_FACILITY_RESP		CAPICMD(CAPI_FACILITY,CAPI_RESP) | ||
| 111 | |||
| 112 | #define CAPI_INFO_REQ			CAPICMD(CAPI_INFO,CAPI_REQ) | ||
| 113 | #define CAPI_INFO_CONF			CAPICMD(CAPI_INFO,CAPI_CONF) | ||
| 114 | #define CAPI_INFO_IND			CAPICMD(CAPI_INFO,CAPI_IND) | ||
| 115 | #define CAPI_INFO_RESP			CAPICMD(CAPI_INFO,CAPI_RESP) | ||
| 116 | |||
| 117 | #endif				/* __CAPICMD_H__ */ | ||
| \ No newline at end of file | |||
lib/libc/include/any-linux-any/linux/kernelcapi.h deleted-48| ... | @@ -1,48 +0,0 @@ | ||
| 1 | /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ | ||
| 2 | /* | ||
| 3 | * $Id: kernelcapi.h,v 1.8.6.2 2001/02/07 11:31:31 kai Exp $ | ||
| 4 | * | ||
| 5 | * Kernel CAPI 2.0 Interface for Linux | ||
| 6 | * | ||
| 7 | * (c) Copyright 1997 by Carsten Paeth (calle@calle.in-berlin.de) | ||
| 8 | * | ||
| 9 | */ | ||
| 10 | |||
| 11 | #ifndef __KERNELCAPI_H__ | ||
| 12 | #define __KERNELCAPI_H__ | ||
| 13 | |||
| 14 | #define CAPI_MAXAPPL	240	/* maximum number of applications */ | ||
| 15 | #define CAPI_MAXCONTR	32	/* maximum number of controller */ | ||
| 16 | #define CAPI_MAXDATAWINDOW	8 | ||
| 17 | |||
| 18 | |||
| 19 | typedef struct kcapi_flagdef { | ||
| 20 | 	int contr; | ||
| 21 | 	int flag; | ||
| 22 | } kcapi_flagdef; | ||
| 23 | |||
| 24 | typedef struct kcapi_carddef { | ||
| 25 | 	char		driver[32]; | ||
| 26 | 	unsigned int	port; | ||
| 27 | 	unsigned	irq; | ||
| 28 | 	unsigned int	membase; | ||
| 29 | 	int		cardnr; | ||
| 30 | } kcapi_carddef; | ||
| 31 | |||
| 32 | /* new ioctls >= 10 */ | ||
| 33 | #define KCAPI_CMD_TRACE		10 | ||
| 34 | #define KCAPI_CMD_ADDCARD	11	/* OBSOLETE */ | ||
| 35 | |||
| 36 | /* | ||
| 37 | * flag > 2 => trace also data | ||
| 38 | * flag & 1 => show trace | ||
| 39 | */ | ||
| 40 | #define KCAPI_TRACE_OFF			0 | ||
| 41 | #define KCAPI_TRACE_SHORT_NO_DATA	1 | ||
| 42 | #define KCAPI_TRACE_FULL_NO_DATA	2 | ||
| 43 | #define KCAPI_TRACE_SHORT		3 | ||
| 44 | #define KCAPI_TRACE_FULL		4 | ||
| 45 | |||
| 46 | |||
| 47 | |||
| 48 | #endif /* __KERNELCAPI_H__ */ | ||
| \ No newline at end of file | |||
lib/libc/include/any-linux-any/linux/keyboard.h+29| ... | @@ -41,6 +41,7 @@ | ... | @@ -41,6 +41,7 @@ |
| 41 | #define KT_SLOCK	12 | 41 | #define KT_SLOCK	12 |
| 42 | #define KT_DEAD2	13 | 42 | #define KT_DEAD2	13 |
| 43 | #define KT_BRL		14 | 43 | #define KT_BRL		14 |
| 44 | #define KT_CSI		15	/* CSI sequences with modifier support */ | ||
| 44 | 45 | ||
| 45 | #define K(t,v)		(((t)<<8)|(v)) | 46 | #define K(t,v)		(((t)<<8)|(v)) |
| 46 | #define KTYP(x)		((x) >> 8) | 47 | #define KTYP(x)		((x) >> 8) |
| ... | @@ -461,5 +462,33 @@ | ... | @@ -461,5 +462,33 @@ |
| 461 | 462 | ||
| 462 | #define NR_BRL		11 | 463 | #define NR_BRL		11 |
| 463 | 464 | ||
| 465 | /* KT_CSI keys: value is the CSI parameter number for ESC [ <value> ~ */ | ||
| 466 | #define K_CSI_HOME	K(KT_CSI, 1)	/* ESC [ 1 ~ */ | ||
| 467 | #define K_CSI_INSERT	K(KT_CSI, 2)	/* ESC [ 2 ~ */ | ||
| 468 | #define K_CSI_DELETE	K(KT_CSI, 3)	/* ESC [ 3 ~ */ | ||
| 469 | #define K_CSI_END	K(KT_CSI, 4)	/* ESC [ 4 ~ */ | ||
| 470 | #define K_CSI_PGUP	K(KT_CSI, 5)	/* ESC [ 5 ~ */ | ||
| 471 | #define K_CSI_PGDN	K(KT_CSI, 6)	/* ESC [ 6 ~ */ | ||
| 472 | #define K_CSI_F1	K(KT_CSI, 11)	/* ESC [ 11 ~ */ | ||
| 473 | #define K_CSI_F2	K(KT_CSI, 12)	/* ESC [ 12 ~ */ | ||
| 474 | #define K_CSI_F3	K(KT_CSI, 13)	/* ESC [ 13 ~ */ | ||
| 475 | #define K_CSI_F4	K(KT_CSI, 14)	/* ESC [ 14 ~ */ | ||
| 476 | #define K_CSI_F5	K(KT_CSI, 15)	/* ESC [ 15 ~ */ | ||
| 477 | #define K_CSI_F6	K(KT_CSI, 17)	/* ESC [ 17 ~ */ | ||
| 478 | #define K_CSI_F7	K(KT_CSI, 18)	/* ESC [ 18 ~ */ | ||
| 479 | #define K_CSI_F8	K(KT_CSI, 19)	/* ESC [ 19 ~ */ | ||
| 480 | #define K_CSI_F9	K(KT_CSI, 20)	/* ESC [ 20 ~ */ | ||
| 481 | #define K_CSI_F10	K(KT_CSI, 21)	/* ESC [ 21 ~ */ | ||
| 482 | #define K_CSI_F11	K(KT_CSI, 23)	/* ESC [ 23 ~ */ | ||
| 483 | #define K_CSI_F12	K(KT_CSI, 24)	/* ESC [ 24 ~ */ | ||
| 484 | #define K_CSI_F13	K(KT_CSI, 25)	/* ESC [ 25 ~ */ | ||
| 485 | #define K_CSI_F14	K(KT_CSI, 26)	/* ESC [ 26 ~ */ | ||
| 486 | #define K_CSI_F15	K(KT_CSI, 28)	/* ESC [ 28 ~ */ | ||
| 487 | #define K_CSI_F16	K(KT_CSI, 29)	/* ESC [ 29 ~ */ | ||
| 488 | #define K_CSI_F17	K(KT_CSI, 31)	/* ESC [ 31 ~ */ | ||
| 489 | #define K_CSI_F18	K(KT_CSI, 32)	/* ESC [ 32 ~ */ | ||
| 490 | #define K_CSI_F19	K(KT_CSI, 33)	/* ESC [ 33 ~ */ | ||
| 491 | #define K_CSI_F20	K(KT_CSI, 34)	/* ESC [ 34 ~ */ | ||
| 492 | |||
| 464 | #define MAX_DIACR	256 | 493 | #define MAX_DIACR	256 |
| 465 | #endif /* __LINUX_KEYBOARD_H */ | 494 | #endif /* __LINUX_KEYBOARD_H */ |
| \ No newline at end of file | |||
lib/libc/include/any-linux-any/linux/kvm.h+10| ... | @@ -693,6 +693,11 @@ struct kvm_enable_cap { | ... | @@ -693,6 +693,11 @@ struct kvm_enable_cap { |
| 693 | #define KVM_VM_TYPE_ARM_IPA_SIZE_MASK	0xffULL | 693 | #define KVM_VM_TYPE_ARM_IPA_SIZE_MASK	0xffULL |
| 694 | #define KVM_VM_TYPE_ARM_IPA_SIZE(x)		\ | 694 | #define KVM_VM_TYPE_ARM_IPA_SIZE(x)		\ |
| 695 | 	((x) & KVM_VM_TYPE_ARM_IPA_SIZE_MASK) | 695 | 	((x) & KVM_VM_TYPE_ARM_IPA_SIZE_MASK) |
| 696 | |||
| 697 | #define KVM_VM_TYPE_ARM_PROTECTED	(1UL << 31) | ||
| 698 | #define KVM_VM_TYPE_ARM_MASK		(KVM_VM_TYPE_ARM_IPA_SIZE_MASK | \ | ||
| 699 | 					 KVM_VM_TYPE_ARM_PROTECTED) | ||
| 700 | |||
| 696 | /* | 701 | /* |
| 697 | * ioctls for /dev/kvm fds: | 702 | * ioctls for /dev/kvm fds: |
| 698 | */ | 703 | */ |
| ... | @@ -979,6 +984,7 @@ struct kvm_enable_cap { | ... | @@ -979,6 +984,7 @@ struct kvm_enable_cap { |
| 979 | #define KVM_CAP_ARM_SEA_TO_USER 245 | 984 | #define KVM_CAP_ARM_SEA_TO_USER 245 |
| 980 | #define KVM_CAP_S390_USER_OPEREXEC 246 | 985 | #define KVM_CAP_S390_USER_OPEREXEC 246 |
| 981 | #define KVM_CAP_S390_KEYOP 247 | 986 | #define KVM_CAP_S390_KEYOP 247 |
| 987 | #define KVM_CAP_S390_VSIE_ESAMODE 248 | ||
| 982 | 988 | ||
| 983 | struct kvm_irq_routing_irqchip { | 989 | struct kvm_irq_routing_irqchip { |
| 984 | 	__u32 irqchip; | 990 | 	__u32 irqchip; |
| ... | @@ -1214,6 +1220,10 @@ enum kvm_device_type { | ... | @@ -1214,6 +1220,10 @@ enum kvm_device_type { |
| 1214 | #define KVM_DEV_TYPE_LOONGARCH_EIOINTC	KVM_DEV_TYPE_LOONGARCH_EIOINTC | 1220 | #define KVM_DEV_TYPE_LOONGARCH_EIOINTC	KVM_DEV_TYPE_LOONGARCH_EIOINTC |
| 1215 | 	KVM_DEV_TYPE_LOONGARCH_PCHPIC, | 1221 | 	KVM_DEV_TYPE_LOONGARCH_PCHPIC, |
| 1216 | #define KVM_DEV_TYPE_LOONGARCH_PCHPIC	KVM_DEV_TYPE_LOONGARCH_PCHPIC | 1222 | #define KVM_DEV_TYPE_LOONGARCH_PCHPIC	KVM_DEV_TYPE_LOONGARCH_PCHPIC |
| 1223 | 	KVM_DEV_TYPE_LOONGARCH_DMSINTC, | ||
| 1224 | #define KVM_DEV_TYPE_LOONGARCH_DMSINTC	KVM_DEV_TYPE_LOONGARCH_DMSINTC | ||
| 1225 | 	KVM_DEV_TYPE_ARM_VGIC_V5, | ||
| 1226 | #define KVM_DEV_TYPE_ARM_VGIC_V5	KVM_DEV_TYPE_ARM_VGIC_V5 | ||
| 1217 | 1227 | ||
| 1218 | 	KVM_DEV_TYPE_MAX, | 1228 | 	KVM_DEV_TYPE_MAX, |
| 1219 | 1229 |
lib/libc/include/any-linux-any/linux/landlock.h+24-1| ... | @@ -116,7 +116,9 @@ struct landlock_ruleset_attr { | ... | @@ -116,7 +116,9 @@ struct landlock_ruleset_attr { |
| 116 | * ``LANDLOCK_RESTRICT_SELF_LOG_SAME_EXEC_OFF``, this flag only affects | 116 | * ``LANDLOCK_RESTRICT_SELF_LOG_SAME_EXEC_OFF``, this flag only affects |
| 117 | * future nested domains, not the one being created. It can also be used | 117 | * future nested domains, not the one being created. It can also be used |
| 118 | * with a @ruleset_fd value of -1 to mute subdomain logs without creating a | 118 | * with a @ruleset_fd value of -1 to mute subdomain logs without creating a |
| 119 | * domain. | 119 | * domain. When combined with %LANDLOCK_RESTRICT_SELF_TSYNC and a |
| 120 | * @ruleset_fd value of -1, this configuration is propagated to all threads | ||
| 121 | * of the current process. | ||
| 120 | * | 122 | * |
| 121 | * The following flag supports policy enforcement in multithreaded processes: | 123 | * The following flag supports policy enforcement in multithreaded processes: |
| 122 | * | 124 | * |
| ... | @@ -248,6 +250,26 @@ struct landlock_net_port_attr { | ... | @@ -248,6 +250,26 @@ struct landlock_net_port_attr { |
| 248 | * | 250 | * |
| 249 | * This access right is available since the fifth version of the Landlock | 251 | * This access right is available since the fifth version of the Landlock |
| 250 | * ABI. | 252 | * ABI. |
| 253 | * - %LANDLOCK_ACCESS_FS_RESOLVE_UNIX: Look up pathname UNIX domain sockets | ||
| 254 | * (:manpage:`unix(7)`). On UNIX domain sockets, this restricts both calls to | ||
| 255 | * :manpage:`connect(2)` as well as calls to :manpage:`sendmsg(2)` with an | ||
| 256 | * explicit recipient address. | ||
| 257 | * | ||
| 258 | * This access right only applies to connections to UNIX server sockets which | ||
| 259 | * were created outside of the newly created Landlock domain (e.g. from within | ||
| 260 | * a parent domain or from an unrestricted process). Newly created UNIX | ||
| 261 | * servers within the same Landlock domain continue to be accessible. In this | ||
| 262 | * regard, %LANDLOCK_ACCESS_FS_RESOLVE_UNIX has the same semantics as the | ||
| 263 | * ``LANDLOCK_SCOPE_*`` flags. | ||
| 264 | * | ||
| 265 | * If a resolve attempt is denied, the operation returns an ``EACCES`` error, | ||
| 266 | * in line with other filesystem access rights (but different to denials for | ||
| 267 | * abstract UNIX domain sockets). | ||
| 268 | * | ||
| 269 | * This access right is available since the ninth version of the Landlock ABI. | ||
| 270 | * | ||
| 271 | * The rationale for this design is described in | ||
| 272 | * :ref:`Documentation/security/landlock.rst <scoped-flags-interaction>`. | ||
| 251 | * | 273 | * |
| 252 | * Whether an opened file can be truncated with :manpage:`ftruncate(2)` or used | 274 | * Whether an opened file can be truncated with :manpage:`ftruncate(2)` or used |
| 253 | * with `ioctl(2)` is determined during :manpage:`open(2)`, in the same way as | 275 | * with `ioctl(2)` is determined during :manpage:`open(2)`, in the same way as |
| ... | @@ -333,6 +355,7 @@ struct landlock_net_port_attr { | ... | @@ -333,6 +355,7 @@ struct landlock_net_port_attr { |
| 333 | #define LANDLOCK_ACCESS_FS_REFER			(1ULL << 13) | 355 | #define LANDLOCK_ACCESS_FS_REFER			(1ULL << 13) |
| 334 | #define LANDLOCK_ACCESS_FS_TRUNCATE			(1ULL << 14) | 356 | #define LANDLOCK_ACCESS_FS_TRUNCATE			(1ULL << 14) |
| 335 | #define LANDLOCK_ACCESS_FS_IOCTL_DEV			(1ULL << 15) | 357 | #define LANDLOCK_ACCESS_FS_IOCTL_DEV			(1ULL << 15) |
| 358 | #define LANDLOCK_ACCESS_FS_RESOLVE_UNIX			(1ULL << 16) | ||
| 336 | /* clang-format on */ | 359 | /* clang-format on */ |
| 337 | 360 | ||
| 338 | /** | 361 | /** |
lib/libc/include/any-linux-any/linux/map_benchmark.h+11-2| ... | @@ -17,6 +17,12 @@ | ... | @@ -17,6 +17,12 @@ |
| 17 | #define DMA_MAP_TO_DEVICE 1 | 17 | #define DMA_MAP_TO_DEVICE 1 |
| 18 | #define DMA_MAP_FROM_DEVICE 2 | 18 | #define DMA_MAP_FROM_DEVICE 2 |
| 19 | 19 | ||
| 20 | enum { | ||
| 21 | 	DMA_MAP_BENCH_SINGLE_MODE, | ||
| 22 | 	DMA_MAP_BENCH_SG_MODE, | ||
| 23 | 	DMA_MAP_BENCH_MODE_MAX | ||
| 24 | }; | ||
| 25 | |||
| 20 | struct map_benchmark { | 26 | struct map_benchmark { |
| 21 | 	__u64 avg_map_100ns; /* average map latency in 100ns */ | 27 | 	__u64 avg_map_100ns; /* average map latency in 100ns */ |
| 22 | 	__u64 map_stddev; /* standard deviation of map latency */ | 28 | 	__u64 map_stddev; /* standard deviation of map latency */ |
| ... | @@ -28,8 +34,11 @@ struct map_benchmark { | ... | @@ -28,8 +34,11 @@ struct map_benchmark { |
| 28 | 	__u32 dma_bits; /* DMA addressing capability */ | 34 | 	__u32 dma_bits; /* DMA addressing capability */ |
| 29 | 	__u32 dma_dir; /* DMA data direction */ | 35 | 	__u32 dma_dir; /* DMA data direction */ |
| 30 | 	__u32 dma_trans_ns; /* time for DMA transmission in ns */ | 36 | 	__u32 dma_trans_ns; /* time for DMA transmission in ns */ |
| 31 | 	__u32 granule; /* how many PAGE_SIZE will do map/unmap once a time */ | 37 | 	__u32 granule; /* - SINGLE_MODE: number of pages mapped/unmapped per operation |
| 32 | 	__u8 expansion[76]; /* For future use */ | 38 | 			 * - SG_MODE: number of scatterlist entries (each maps one page) |
| 39 | 			 */ | ||
| 40 | 	__u8 map_mode; /* the mode of dma map */ | ||
| 41 | 	__u8 expansion[75]; /* For future use */ | ||
| 33 | }; | 42 | }; |
| 34 | 43 | ||
| 35 | #endif /* _DMA_BENCHMARK_H */ | 44 | #endif /* _DMA_BENCHMARK_H */ |
| \ No newline at end of file | |||
lib/libc/include/any-linux-any/linux/mii.h+2-1| ... | @@ -82,7 +82,8 @@ | ... | @@ -82,7 +82,8 @@ |
| 82 | #define ADVERTISE_100BASE4	0x0200	/* Try for 100mbps 4k packets */ | 82 | #define ADVERTISE_100BASE4	0x0200	/* Try for 100mbps 4k packets */ |
| 83 | #define ADVERTISE_PAUSE_CAP	0x0400	/* Try for pause */ | 83 | #define ADVERTISE_PAUSE_CAP	0x0400	/* Try for pause */ |
| 84 | #define ADVERTISE_PAUSE_ASYM	0x0800	/* Try for asymetric pause */ | 84 | #define ADVERTISE_PAUSE_ASYM	0x0800	/* Try for asymetric pause */ |
| 85 | #define ADVERTISE_RESV		0x1000	/* Unused... */ | 85 | #define ADVERTISE_XNP		0x1000 /* Extended Next Page */ |
| 86 | #define ADVERTISE_RESV		ADVERTISE_XNP /* Used to be reserved */ | ||
| 86 | #define ADVERTISE_RFAULT	0x2000	/* Say we can detect faults */ | 87 | #define ADVERTISE_RFAULT	0x2000	/* Say we can detect faults */ |
| 87 | #define ADVERTISE_LPACK		0x4000	/* Ack link partners response */ | 88 | #define ADVERTISE_LPACK		0x4000	/* Ack link partners response */ |
| 88 | #define ADVERTISE_NPAGE		0x8000	/* Next page bit */ | 89 | #define ADVERTISE_NPAGE		0x8000	/* Next page bit */ |
lib/libc/include/any-linux-any/linux/module_signature.h created+41| ... | @@ -0,0 +1,41 @@ | ||
| 1 | /* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */ | ||
| 2 | /* | ||
| 3 | * Module signature handling. | ||
| 4 | * | ||
| 5 | * Copyright (C) 2012 Red Hat, Inc. All Rights Reserved. | ||
| 6 | * Written by David Howells (dhowells@redhat.com) | ||
| 7 | */ | ||
| 8 | |||
| 9 | #ifndef _LINUX_MODULE_SIGNATURE_H | ||
| 10 | #define _LINUX_MODULE_SIGNATURE_H | ||
| 11 | |||
| 12 | #include <linux/types.h> | ||
| 13 | |||
| 14 | /* In stripped ARM and x86-64 modules, ~ is surprisingly rare. */ | ||
| 15 | #define MODULE_SIGNATURE_MARKER "~Module signature appended~\n" | ||
| 16 | |||
| 17 | enum module_signature_type { | ||
| 18 | 	MODULE_SIGNATURE_TYPE_PKCS7 = 2,	/* Signature in PKCS#7 message */ | ||
| 19 | }; | ||
| 20 | |||
| 21 | /* | ||
| 22 | * Module signature information block. | ||
| 23 | * | ||
| 24 | * The constituents of the signature section are, in order: | ||
| 25 | * | ||
| 26 | *	- Signer's name | ||
| 27 | *	- Key identifier | ||
| 28 | *	- Signature data | ||
| 29 | *	- Information block | ||
| 30 | */ | ||
| 31 | struct module_signature { | ||
| 32 | 	__u8	algo;		/* Public-key crypto algorithm [0] */ | ||
| 33 | 	__u8	hash;		/* Digest algorithm [0] */ | ||
| 34 | 	__u8	id_type;	/* Key identifier type [enum module_signature_type] */ | ||
| 35 | 	__u8	signer_len;	/* Length of signer's name [0] */ | ||
| 36 | 	__u8	key_id_len;	/* Length of key identifier [0] */ | ||
| 37 | 	__u8	__pad[3]; | ||
| 38 | 	__be32	sig_len;	/* Length of signature data */ | ||
| 39 | }; | ||
| 40 | |||
| 41 | #endif /* _LINUX_MODULE_SIGNATURE_H */ | ||
| \ No newline at end of file | |||
lib/libc/include/any-linux-any/linux/mount.h+1| ... | @@ -110,6 +110,7 @@ enum fsconfig_command { | ... | @@ -110,6 +110,7 @@ enum fsconfig_command { |
| 110 | * fsmount() flags. | 110 | * fsmount() flags. |
| 111 | */ | 111 | */ |
| 112 | #define FSMOUNT_CLOEXEC		0x00000001 | 112 | #define FSMOUNT_CLOEXEC		0x00000001 |
| 113 | #define FSMOUNT_NAMESPACE	0x00000002	/* Create the mount in a new mount namespace */ | ||
| 113 | 114 | ||
| 114 | /* | 115 | /* |
| 115 | * Mount attributes. | 116 | * Mount attributes. |
lib/libc/include/any-linux-any/linux/mshv.h+1-1| ... | @@ -357,7 +357,7 @@ struct mshv_vtl_sint_post_msg { | ... | @@ -357,7 +357,7 @@ struct mshv_vtl_sint_post_msg { |
| 357 | 357 | ||
| 358 | struct mshv_vtl_ram_disposition { | 358 | struct mshv_vtl_ram_disposition { |
| 359 | 	__u64 start_pfn; | 359 | 	__u64 start_pfn; |
| 360 | 	__u64 last_pfn; | 360 | 	__u64 last_pfn; /* last_pfn is excluded from the range [start_pfn, last_pfn) */ |
| 361 | }; | 361 | }; |
| 362 | 362 | ||
| 363 | struct mshv_vtl_set_poll_file { | 363 | struct mshv_vtl_set_poll_file { |
lib/libc/include/any-linux-any/linux/netdev.h+11| ... | @@ -160,6 +160,7 @@ enum { | ... | @@ -160,6 +160,7 @@ enum { |
| 160 | 	NETDEV_A_QUEUE_DMABUF, | 160 | 	NETDEV_A_QUEUE_DMABUF, |
| 161 | 	NETDEV_A_QUEUE_IO_URING, | 161 | 	NETDEV_A_QUEUE_IO_URING, |
| 162 | 	NETDEV_A_QUEUE_XSK, | 162 | 	NETDEV_A_QUEUE_XSK, |
| 163 | 	NETDEV_A_QUEUE_LEASE, | ||
| 163 | 164 | ||
| 164 | 	__NETDEV_A_QUEUE_MAX, | 165 | 	__NETDEV_A_QUEUE_MAX, |
| 165 | 	NETDEV_A_QUEUE_MAX = (__NETDEV_A_QUEUE_MAX - 1) | 166 | 	NETDEV_A_QUEUE_MAX = (__NETDEV_A_QUEUE_MAX - 1) |
| ... | @@ -202,6 +203,15 @@ enum { | ... | @@ -202,6 +203,15 @@ enum { |
| 202 | 	NETDEV_A_QSTATS_MAX = (__NETDEV_A_QSTATS_MAX - 1) | 203 | 	NETDEV_A_QSTATS_MAX = (__NETDEV_A_QSTATS_MAX - 1) |
| 203 | }; | 204 | }; |
| 204 | 205 | ||
| 206 | enum { | ||
| 207 | 	NETDEV_A_LEASE_IFINDEX = 1, | ||
| 208 | 	NETDEV_A_LEASE_QUEUE, | ||
| 209 | 	NETDEV_A_LEASE_NETNS_ID, | ||
| 210 | |||
| 211 | 	__NETDEV_A_LEASE_MAX, | ||
| 212 | 	NETDEV_A_LEASE_MAX = (__NETDEV_A_LEASE_MAX - 1) | ||
| 213 | }; | ||
| 214 | |||
| 205 | enum { | 215 | enum { |
| 206 | 	NETDEV_A_DMABUF_IFINDEX = 1, | 216 | 	NETDEV_A_DMABUF_IFINDEX = 1, |
| 207 | 	NETDEV_A_DMABUF_QUEUES, | 217 | 	NETDEV_A_DMABUF_QUEUES, |
| ... | @@ -228,6 +238,7 @@ enum { | ... | @@ -228,6 +238,7 @@ enum { |
| 228 | 	NETDEV_CMD_BIND_RX, | 238 | 	NETDEV_CMD_BIND_RX, |
| 229 | 	NETDEV_CMD_NAPI_SET, | 239 | 	NETDEV_CMD_NAPI_SET, |
| 230 | 	NETDEV_CMD_BIND_TX, | 240 | 	NETDEV_CMD_BIND_TX, |
| 241 | 	NETDEV_CMD_QUEUE_CREATE, | ||
| 231 | 242 | ||
| 232 | 	__NETDEV_CMD_MAX, | 243 | 	__NETDEV_CMD_MAX, |
| 233 | 	NETDEV_CMD_MAX = (__NETDEV_CMD_MAX - 1) | 244 | 	NETDEV_CMD_MAX = (__NETDEV_CMD_MAX - 1) |
lib/libc/include/any-linux-any/linux/netfilter/nf_tables.h+2-1| ... | @@ -46,6 +46,7 @@ enum nft_registers { | ... | @@ -46,6 +46,7 @@ enum nft_registers { |
| 46 | }; | 46 | }; |
| 47 | #define NFT_REG_MAX	(__NFT_REG_MAX - 1) | 47 | #define NFT_REG_MAX	(__NFT_REG_MAX - 1) |
| 48 | 48 | ||
| 49 | |||
| 49 | #define NFT_REG_SIZE	16 | 50 | #define NFT_REG_SIZE	16 |
| 50 | #define NFT_REG32_SIZE	4 | 51 | #define NFT_REG32_SIZE	4 |
| 51 | #define NFT_REG32_COUNT	(NFT_REG32_15 - NFT_REG32_00 + 1) | 52 | #define NFT_REG32_COUNT	(NFT_REG32_15 - NFT_REG32_00 + 1) |
| ... | @@ -884,7 +885,7 @@ enum nft_exthdr_flags { | ... | @@ -884,7 +885,7 @@ enum nft_exthdr_flags { |
| 884 | * @NFT_EXTHDR_OP_TCPOPT: match against tcp options | 885 | * @NFT_EXTHDR_OP_TCPOPT: match against tcp options |
| 885 | * @NFT_EXTHDR_OP_IPV4: match against ipv4 options | 886 | * @NFT_EXTHDR_OP_IPV4: match against ipv4 options |
| 886 | * @NFT_EXTHDR_OP_SCTP: match against sctp chunks | 887 | * @NFT_EXTHDR_OP_SCTP: match against sctp chunks |
| 887 | * @NFT_EXTHDR_OP_DCCP: match against dccp otions | 888 | * @NFT_EXTHDR_OP_DCCP: match against dccp options |
| 888 | */ | 889 | */ |
| 889 | enum nft_exthdr_op { | 890 | enum nft_exthdr_op { |
| 890 | 	NFT_EXTHDR_OP_IPV6, | 891 | 	NFT_EXTHDR_OP_IPV6, |
lib/libc/include/any-linux-any/linux/netrom.h deleted-37| ... | @@ -1,37 +0,0 @@ | ||
| 1 | /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ | ||
| 2 | /* | ||
| 3 | * These are the public elements of the Linux kernel NET/ROM implementation. | ||
| 4 | * For kernel AX.25 see the file ax25.h. This file requires ax25.h for the | ||
| 5 | * definition of the ax25_address structure. | ||
| 6 | */ | ||
| 7 | |||
| 8 | #ifndef	NETROM_KERNEL_H | ||
| 9 | #define	NETROM_KERNEL_H | ||
| 10 | |||
| 11 | #include <linux/ax25.h> | ||
| 12 | |||
| 13 | #define NETROM_MTU	236 | ||
| 14 | |||
| 15 | #define NETROM_T1	1 | ||
| 16 | #define NETROM_T2	2 | ||
| 17 | #define NETROM_N2	3 | ||
| 18 | #define	NETROM_T4	6 | ||
| 19 | #define	NETROM_IDLE	7 | ||
| 20 | |||
| 21 | #define	SIOCNRDECOBS		(SIOCPROTOPRIVATE+2) | ||
| 22 | |||
| 23 | struct nr_route_struct { | ||
| 24 | #define	NETROM_NEIGH	0 | ||
| 25 | #define	NETROM_NODE	1 | ||
| 26 | 	int		type; | ||
| 27 | 	ax25_address	callsign; | ||
| 28 | 	char		device[16]; | ||
| 29 | 	unsigned int	quality; | ||
| 30 | 	char		mnemonic[7]; | ||
| 31 | 	ax25_address	neighbour; | ||
| 32 | 	unsigned int	obs_count; | ||
| 33 | 	unsigned int	ndigis; | ||
| 34 | 	ax25_address	digipeaters[AX25_MAX_DIGIS]; | ||
| 35 | }; | ||
| 36 | |||
| 37 | #endif | ||
| \ No newline at end of file | |||
lib/libc/include/any-linux-any/linux/nfc.h+3-3| ... | @@ -55,7 +55,7 @@ | ... | @@ -55,7 +55,7 @@ |
| 55 | *	(it sends %NFC_ATTR_DEVICE_INDEX) | 55 | *	(it sends %NFC_ATTR_DEVICE_INDEX) |
| 56 | * @NFC_EVENT_TM_ACTIVATED: event emitted when the adapter is activated in | 56 | * @NFC_EVENT_TM_ACTIVATED: event emitted when the adapter is activated in |
| 57 | * target mode. | 57 | * target mode. |
| 58 | * @NFC_EVENT_DEVICE_DEACTIVATED: event emitted when the adapter is deactivated | 58 | * @NFC_EVENT_TM_DEACTIVATED: event emitted when the adapter is deactivated |
| 59 | * from target mode. | 59 | * from target mode. |
| 60 | * @NFC_CMD_LLC_GET_PARAMS: request LTO, RW, and MIUX parameters for a device | 60 | * @NFC_CMD_LLC_GET_PARAMS: request LTO, RW, and MIUX parameters for a device |
| 61 | * @NFC_CMD_LLC_SET_PARAMS: set one or more of LTO, RW, and MIUX parameters for | 61 | * @NFC_CMD_LLC_SET_PARAMS: set one or more of LTO, RW, and MIUX parameters for |
| ... | @@ -156,7 +156,7 @@ enum nfc_commands { | ... | @@ -156,7 +156,7 @@ enum nfc_commands { |
| 156 | * @NFC_ATTR_SE_INDEX: Secure element index | 156 | * @NFC_ATTR_SE_INDEX: Secure element index |
| 157 | * @NFC_ATTR_SE_TYPE: Secure element type (UICC or EMBEDDED) | 157 | * @NFC_ATTR_SE_TYPE: Secure element type (UICC or EMBEDDED) |
| 158 | * @NFC_ATTR_FIRMWARE_DOWNLOAD_STATUS: Firmware download operation status | 158 | * @NFC_ATTR_FIRMWARE_DOWNLOAD_STATUS: Firmware download operation status |
| 159 | * @NFC_ATTR_APDU: Secure element APDU | 159 | * @NFC_ATTR_SE_APDU: Secure element APDU |
| 160 | * @NFC_ATTR_TARGET_ISO15693_DSFID: ISO 15693 Data Storage Format Identifier | 160 | * @NFC_ATTR_TARGET_ISO15693_DSFID: ISO 15693 Data Storage Format Identifier |
| 161 | * @NFC_ATTR_TARGET_ISO15693_UID: ISO 15693 Unique Identifier | 161 | * @NFC_ATTR_TARGET_ISO15693_UID: ISO 15693 Unique Identifier |
| 162 | * @NFC_ATTR_SE_PARAMS: Parameters data from an evt_transaction | 162 | * @NFC_ATTR_SE_PARAMS: Parameters data from an evt_transaction |
| ... | @@ -291,7 +291,7 @@ struct sockaddr_nfc_llcp { | ... | @@ -291,7 +291,7 @@ struct sockaddr_nfc_llcp { |
| 291 | 291 | ||
| 292 | #define NFC_HEADER_SIZE 1 | 292 | #define NFC_HEADER_SIZE 1 |
| 293 | 293 | ||
| 294 | /** | 294 | /* |
| 295 | * Pseudo-header info for raw socket packets | 295 | * Pseudo-header info for raw socket packets |
| 296 | * First byte is the adapter index | 296 | * First byte is the adapter index |
| 297 | * Second byte contains flags | 297 | * Second byte contains flags |
lib/libc/include/any-linux-any/linux/nfsd/export.h+2-2| ... | @@ -34,7 +34,7 @@ | ... | @@ -34,7 +34,7 @@ |
| 34 | #define NFSEXP_GATHERED_WRITES	0x0020 | 34 | #define NFSEXP_GATHERED_WRITES	0x0020 |
| 35 | #define NFSEXP_NOREADDIRPLUS 0x0040 | 35 | #define NFSEXP_NOREADDIRPLUS 0x0040 |
| 36 | #define NFSEXP_SECURITY_LABEL	0x0080 | 36 | #define NFSEXP_SECURITY_LABEL	0x0080 |
| 37 | /* 0x100 currently unused */ | 37 | #define NFSEXP_SIGN_FH		0x0100 |
| 38 | #define NFSEXP_NOHIDE		0x0200 | 38 | #define NFSEXP_NOHIDE		0x0200 |
| 39 | #define NFSEXP_NOSUBTREECHECK	0x0400 | 39 | #define NFSEXP_NOSUBTREECHECK	0x0400 |
| 40 | #define	NFSEXP_NOAUTHNLM	0x0800		/* Don't authenticate NLM requests - just trust */ | 40 | #define	NFSEXP_NOAUTHNLM	0x0800		/* Don't authenticate NLM requests - just trust */ |
| ... | @@ -55,7 +55,7 @@ | ... | @@ -55,7 +55,7 @@ |
| 55 | #define NFSEXP_PNFS		0x20000 | 55 | #define NFSEXP_PNFS		0x20000 |
| 56 | 56 | ||
| 57 | /* All flags that we claim to support. (Note we don't support NOACL.) */ | 57 | /* All flags that we claim to support. (Note we don't support NOACL.) */ |
| 58 | #define NFSEXP_ALLFLAGS		0x3FEFF | 58 | #define NFSEXP_ALLFLAGS		0x3FFFF |
| 59 | 59 | ||
| 60 | /* The flags that may vary depending on security flavor: */ | 60 | /* The flags that may vary depending on security flavor: */ |
| 61 | #define NFSEXP_SECINFO_FLAGS	(NFSEXP_READONLY | NFSEXP_ROOTSQUASH \ | 61 | #define NFSEXP_SECINFO_FLAGS	(NFSEXP_READONLY | NFSEXP_ROOTSQUASH \ |
lib/libc/include/any-linux-any/linux/nfsd_netlink.h+1| ... | @@ -36,6 +36,7 @@ enum { | ... | @@ -36,6 +36,7 @@ enum { |
| 36 | 	NFSD_A_SERVER_LEASETIME, | 36 | 	NFSD_A_SERVER_LEASETIME, |
| 37 | 	NFSD_A_SERVER_SCOPE, | 37 | 	NFSD_A_SERVER_SCOPE, |
| 38 | 	NFSD_A_SERVER_MIN_THREADS, | 38 | 	NFSD_A_SERVER_MIN_THREADS, |
| 39 | 	NFSD_A_SERVER_FH_KEY, | ||
| 39 | 40 | ||
| 40 | 	__NFSD_A_SERVER_MAX, | 41 | 	__NFSD_A_SERVER_MAX, |
| 41 | 	NFSD_A_SERVER_MAX = (__NFSD_A_SERVER_MAX - 1) | 42 | 	NFSD_A_SERVER_MAX = (__NFSD_A_SERVER_MAX - 1) |
lib/libc/include/any-linux-any/linux/nl80211.h+269-3| ... | @@ -906,8 +906,9 @@ | ... | @@ -906,8 +906,9 @@ |
| 906 | * @NL80211_CMD_UNEXPECTED_FRAME: Used by an application controlling an AP | 906 | * @NL80211_CMD_UNEXPECTED_FRAME: Used by an application controlling an AP |
| 907 | *	(or GO) interface (i.e. hostapd) to ask for unexpected frames to | 907 | *	(or GO) interface (i.e. hostapd) to ask for unexpected frames to |
| 908 | *	implement sending deauth to stations that send unexpected class 3 | 908 | *	implement sending deauth to stations that send unexpected class 3 |
| 909 | *	frames. Also used as the event sent by the kernel when such a frame | 909 | *	frames. For NAN_DATA interfaces, this is used to report frames from |
| 910 | *	is received. | 910 | *	unknown peers (A2 not assigned to any active NDP). |
| 911 | *	Also used as the event sent by the kernel when such a frame is received. | ||
| 911 | *	For the event, the %NL80211_ATTR_MAC attribute carries the TA and | 912 | *	For the event, the %NL80211_ATTR_MAC attribute carries the TA and |
| 912 | *	other attributes like the interface index are present. | 913 | *	other attributes like the interface index are present. |
| 913 | *	If used as the command it must have an interface index and you can | 914 | *	If used as the command it must have an interface index and you can |
| ... | @@ -1361,6 +1362,59 @@ | ... | @@ -1361,6 +1362,59 @@ |
| 1361 | *	user space that the NAN new cluster has been joined. The cluster ID is | 1362 | *	user space that the NAN new cluster has been joined. The cluster ID is |
| 1362 | *	indicated by %NL80211_ATTR_MAC. | 1363 | *	indicated by %NL80211_ATTR_MAC. |
| 1363 | * | 1364 | * |
| 1365 | * @NL80211_CMD_INCUMBENT_SIGNAL_DETECT: Once any incumbent signal is detected | ||
| 1366 | *	on the operating channel in 6 GHz band, userspace is notified with the | ||
| 1367 | *	signal interference bitmap using | ||
| 1368 | *	%NL80211_ATTR_INCUMBENT_SIGNAL_INTERFERENCE_BITMAP. The current channel | ||
| 1369 | *	definition is also sent. | ||
| 1370 | * | ||
| 1371 | * @NL80211_CMD_NAN_SET_LOCAL_SCHED: Set the local NAN schedule. NAN must be | ||
| 1372 | *	operational (%NL80211_CMD_START_NAN was executed). Must contain | ||
| 1373 | *	%NL80211_ATTR_NAN_TIME_SLOTS and %NL80211_ATTR_NAN_AVAIL_BLOB, but | ||
| 1374 | *	%NL80211_ATTR_NAN_CHANNEL is optional (for example in case of a channel | ||
| 1375 | *	removal, that channel won't be provided). | ||
| 1376 | *	If %NL80211_ATTR_NAN_SCHED_DEFERRED is set, the command is a request | ||
| 1377 | *	from the device to perform an announced schedule update. See | ||
| 1378 | *	%NL80211_ATTR_NAN_SCHED_DEFERRED for more details. | ||
| 1379 | *	If not set, the schedule should be applied immediately. | ||
| 1380 | * @NL80211_CMD_NAN_SCHED_UPDATE_DONE: Event sent to user space to notify that | ||
| 1381 | *	a deferred local NAN schedule update (requested with | ||
| 1382 | *	%NL80211_CMD_NAN_SET_LOCAL_SCHED and %NL80211_ATTR_NAN_SCHED_DEFERRED) | ||
| 1383 | *	has been completed. The presence of %NL80211_ATTR_NAN_SCHED_UPDATE_SUCCESS | ||
| 1384 | *	indicates that the update was successful. | ||
| 1385 | * @NL80211_CMD_NAN_SET_PEER_SCHED: Set the peer NAN schedule. NAN | ||
| 1386 | *	must be operational (%NL80211_CMD_START_NAN was executed). | ||
| 1387 | *	Required attributes: %NL80211_ATTR_MAC (peer NMI address) and | ||
| 1388 | *	%NL80211_ATTR_NAN_COMMITTED_DW. | ||
| 1389 | *	Optionally, the full schedule can be provided by including all of: | ||
| 1390 | *	%NL80211_ATTR_NAN_SEQ_ID, %NL80211_ATTR_NAN_CHANNEL (one or more), and | ||
| 1391 | *	%NL80211_ATTR_NAN_PEER_MAPS (see &enum nl80211_nan_peer_map_attrs). | ||
| 1392 | *	If any of these three optional attributes is provided, all three must | ||
| 1393 | *	be provided. | ||
| 1394 | *	Each peer channel must be compatible with at least one local channel | ||
| 1395 | *	set by %NL80211_CMD_SET_LOCAL_NAN_SCHED. Different maps must not | ||
| 1396 | *	contain compatible channels. | ||
| 1397 | *	For single-radio devices (n_radio <= 1), different maps must not | ||
| 1398 | *	schedule the same time slot, as the device cannot operate on multiple | ||
| 1399 | *	channels simultaneously. | ||
| 1400 | *	When updating an existing peer schedule, the full new schedule must be | ||
| 1401 | *	provided - partial updates are not supported. The new schedule will | ||
| 1402 | *	completely replace the previous one. | ||
| 1403 | *	The peer schedule is automatically removed when the NMI station is | ||
| 1404 | *	removed. | ||
| 1405 | * @NL80211_CMD_NAN_ULW_UPDATE: Notification from the driver to user space | ||
| 1406 | *	with the updated ULW blob of the device. User space can use this blob | ||
| 1407 | *	to attach to frames sent to peers. This notification contains | ||
| 1408 | *	%NL80211_ATTR_NAN_ULW with the ULW blob. | ||
| 1409 | * @NL80211_CMD_NAN_CHANNEL_EVAC: Notification to indicate that a NAN | ||
| 1410 | *	channel has been evacuated due to resource conflicts with other | ||
| 1411 | *	interfaces. This can happen when another interface sharing the channel | ||
| 1412 | *	resource with NAN needs to move to a different channel (e.g., channel | ||
| 1413 | *	switch or link switch on a BSS interface). | ||
| 1414 | *	The notification contains %NL80211_ATTR_NAN_CHANNEL attribute | ||
| 1415 | *	identifying the evacuated channel. | ||
| 1416 | *	User space may reconfigure the local schedule in response to this | ||
| 1417 | *	notification. | ||
| 1364 | * @NL80211_CMD_MAX: highest used command number | 1418 | * @NL80211_CMD_MAX: highest used command number |
| 1365 | * @__NL80211_CMD_AFTER_LAST: internal use | 1419 | * @__NL80211_CMD_AFTER_LAST: internal use |
| 1366 | */ | 1420 | */ |
| ... | @@ -1624,6 +1678,18 @@ enum nl80211_commands { | ... | @@ -1624,6 +1678,18 @@ enum nl80211_commands { |
| 1624 | 	NL80211_CMD_NAN_NEXT_DW_NOTIFICATION, | 1678 | 	NL80211_CMD_NAN_NEXT_DW_NOTIFICATION, |
| 1625 | 	NL80211_CMD_NAN_CLUSTER_JOINED, | 1679 | 	NL80211_CMD_NAN_CLUSTER_JOINED, |
| 1626 | 1680 | ||
| 1681 | 	NL80211_CMD_INCUMBENT_SIGNAL_DETECT, | ||
| 1682 | |||
| 1683 | 	NL80211_CMD_NAN_SET_LOCAL_SCHED, | ||
| 1684 | |||
| 1685 | 	NL80211_CMD_NAN_SCHED_UPDATE_DONE, | ||
| 1686 | |||
| 1687 | 	NL80211_CMD_NAN_SET_PEER_SCHED, | ||
| 1688 | |||
| 1689 | 	NL80211_CMD_NAN_ULW_UPDATE, | ||
| 1690 | |||
| 1691 | 	NL80211_CMD_NAN_CHANNEL_EVAC, | ||
| 1692 | |||
| 1627 | 	/* add new commands above here */ | 1693 | 	/* add new commands above here */ |
| 1628 | 1694 | ||
| 1629 | 	/* used to define NL80211_CMD_MAX below */ | 1695 | 	/* used to define NL80211_CMD_MAX below */ |
| ... | @@ -2651,7 +2717,8 @@ enum nl80211_commands { | ... | @@ -2651,7 +2717,8 @@ enum nl80211_commands { |
| 2651 | * a flow is assigned on each round of the DRR scheduler. | 2717 | * a flow is assigned on each round of the DRR scheduler. |
| 2652 | * @NL80211_ATTR_HE_CAPABILITY: HE Capability information element (from | 2718 | * @NL80211_ATTR_HE_CAPABILITY: HE Capability information element (from |
| 2653 | *	association request when used with NL80211_CMD_NEW_STATION). Can be set | 2719 | *	association request when used with NL80211_CMD_NEW_STATION). Can be set |
| 2654 | *	only if %NL80211_STA_FLAG_WME is set. | 2720 | *	only if %NL80211_STA_FLAG_WME is set (except for NAN, which uses WME |
| 2721 | *	anyway). | ||
| 2655 | * | 2722 | * |
| 2656 | * @NL80211_ATTR_FTM_RESPONDER: nested attribute which user-space can include | 2723 | * @NL80211_ATTR_FTM_RESPONDER: nested attribute which user-space can include |
| 2657 | *	in %NL80211_CMD_START_AP or %NL80211_CMD_SET_BEACON for fine timing | 2724 | *	in %NL80211_CMD_START_AP or %NL80211_CMD_SET_BEACON for fine timing |
| ... | @@ -2983,6 +3050,95 @@ enum nl80211_commands { | ... | @@ -2983,6 +3050,95 @@ enum nl80211_commands { |
| 2983 | * @NL80211_ATTR_DISABLE_UHR: Force UHR capable interfaces to disable | 3050 | * @NL80211_ATTR_DISABLE_UHR: Force UHR capable interfaces to disable |
| 2984 | *	this feature during association. This is a flag attribute. | 3051 | *	this feature during association. This is a flag attribute. |
| 2985 | *	Currently only supported in mac80211 drivers. | 3052 | *	Currently only supported in mac80211 drivers. |
| 3053 | * @NL80211_ATTR_NAN_CHANNEL: This is a nested attribute. There can be multiple | ||
| 3054 | *	attributes of this type, each one represents a channel definition and | ||
| 3055 | *	consists of top-level attributes like %NL80211_ATTR_WIPHY_FREQ. | ||
| 3056 | *	When used with %NL80211_CMD_NAN_SET_LOCAL_SCHED, it specifies | ||
| 3057 | *	the channel definitions on which the radio needs to operate during | ||
| 3058 | *	specific time slots. All of the channel definitions should be mutually | ||
| 3059 | *	incompatible. With this command, %NL80211_ATTR_NAN_CHANNEL_ENTRY and | ||
| 3060 | *	%NL80211_ATTR_NAN_RX_NSS are mandatory. | ||
| 3061 | *	When used with %NL80211_CMD_NAN_SET_PEER_SCHED, it configures the | ||
| 3062 | *	peer NAN channels. In that case, the channel definitions can be | ||
| 3063 | *	compatible to each other, or even identical just with different RX NSS. | ||
| 3064 | *	With this command, %NL80211_ATTR_NAN_CHANNEL_ENTRY and | ||
| 3065 | *	%NL80211_ATTR_NAN_RX_NSS are mandatory. | ||
| 3066 | *	The number of channels should fit the current configuration of channels | ||
| 3067 | *	and the possible interface combinations. | ||
| 3068 | *	If an existing NAN channel is changed but the chandef isn't, the | ||
| 3069 | *	channel entry must also remain unchanged. | ||
| 3070 | *	When used with %NL80211_CMD_NAN_CHANNEL_EVAC, this identifies the | ||
| 3071 | *	channels that were evacuated. | ||
| 3072 | * @NL80211_ATTR_NAN_CHANNEL_ENTRY: a byte array of 6 bytes. contains the | ||
| 3073 | *	Channel Entry as defined in Wi-Fi Aware (TM) 4.0 specification Table | ||
| 3074 | *	100 (Channel Entry format for the NAN Availability attribute). | ||
| 3075 | * @NL80211_ATTR_NAN_RX_NSS: (u8) RX NSS used for a NAN channel. This is | ||
| 3076 | *	used with %NL80211_ATTR_NAN_CHANNEL when configuring NAN channels with | ||
| 3077 | *	%NL80211_CMD_NAN_SET_LOCAL_SCHED or %NL80211_CMD_NAN_SET_PEER_SCHED. | ||
| 3078 | * @NL80211_ATTR_NAN_TIME_SLOTS: an array of u8 values and 32 cells. each value | ||
| 3079 | *	maps a time slot to the chandef on which the radio should operate on in | ||
| 3080 | *	that time. %NL80211_NAN_SCHED_NOT_AVAIL_SLOT indicates unscheduled. | ||
| 3081 | *	The chandef is represented using its index, where the index is the | ||
| 3082 | *	sequential number of the %NL80211_ATTR_NAN_CHANNEL attribute within all | ||
| 3083 | *	the attributes of this type. | ||
| 3084 | *	Each slots spans over 16TUs, hence the entire schedule spans over | ||
| 3085 | *	512TUs. Other slot durations and periods are currently not supported. | ||
| 3086 | * @NL80211_ATTR_NAN_AVAIL_BLOB: (Binary) The NAN Availability attribute blob, | ||
| 3087 | *	including the attribute header, as defined in Wi-Fi Aware (TM) 4.0 | ||
| 3088 | *	specification Table 93 (NAN Availability attribute format). Required with | ||
| 3089 | *	%NL80211_CMD_NAN_SET_LOCAL_SCHED to provide the raw NAN Availability | ||
| 3090 | *	attribute. Used by the device to publish Schedule Update NAFs. | ||
| 3091 | * @NL80211_ATTR_NAN_SCHED_DEFERRED: Flag attribute used with | ||
| 3092 | *	%NL80211_CMD_NAN_SET_LOCAL_SCHED. When present, the command is a | ||
| 3093 | *	request from the device to perform an announced schedule update. This | ||
| 3094 | *	means that it needs to send the updated NAN availability to the peers, | ||
| 3095 | *	and do the actual switch on the right time (i.e. at the end of the slot | ||
| 3096 | *	after the slot in which the updated NAN Availability was sent). Since | ||
| 3097 | *	the slots management is done in the device, the update to the peers | ||
| 3098 | *	needs to be sent by the device, so it knows the actual switch time. | ||
| 3099 | *	If the flag is not set, the schedule should be applied immediately. | ||
| 3100 | *	When this flag is set, the total number of NAN channels from both the | ||
| 3101 | *	old and new schedules must not exceed the allowed number of local NAN | ||
| 3102 | *	channels, because with deferred scheduling the old channels cannot be | ||
| 3103 | *	removed before adding the new ones to free up space. | ||
| 3104 | * @NL80211_ATTR_NAN_SCHED_UPDATE_SUCCESS: flag attribute used with | ||
| 3105 | *	%NL80211_CMD_NAN_SCHED_UPDATE_DONE to indicate that the deferred | ||
| 3106 | *	schedule update completed successfully. If this flag is not present, | ||
| 3107 | *	the update failed. | ||
| 3108 | * @NL80211_ATTR_NAN_NMI_MAC: The address of the NMI station to which this NDI | ||
| 3109 | *	station belongs. Used with %NL80211_CMD_NEW_STATION when adding an NDI | ||
| 3110 | *	station. | ||
| 3111 | * @NL80211_ATTR_NAN_ULW: (Binary) The initial ULW(s) as published by the | ||
| 3112 | *	peer, as defined in the Wi-Fi Aware (TM) 4.0 specification Table 109 | ||
| 3113 | *	(Unaligned Schedule attribute format). Used to configure the device | ||
| 3114 | *	with the initial ULW(s) of a peer, before the device starts tracking it. | ||
| 3115 | * @NL80211_ATTR_NAN_COMMITTED_DW: (u16) The committed DW as published by the | ||
| 3116 | *	peer, as defined in the Wi-Fi Aware (TM) 4.0 specification Table 80 | ||
| 3117 | *	(Committed DW Information field format). | ||
| 3118 | * @NL80211_ATTR_NAN_SEQ_ID: (u8) The sequence ID of the peer schedule that | ||
| 3119 | *	%NL80211_CMD_NAN_SET_PEER_SCHED defines. The device follows the | ||
| 3120 | *	sequence ID in the frames to identify newer schedules. Once a schedule | ||
| 3121 | *	with a higher sequence ID is received, the device may stop communicating | ||
| 3122 | *	with that peer until a new peer schedule with a matching sequence ID is | ||
| 3123 | *	received. | ||
| 3124 | * @NL80211_ATTR_NAN_MAX_CHAN_SWITCH_TIME: (u16) The maximum channel switch | ||
| 3125 | *	time, in microseconds. | ||
| 3126 | * @NL80211_ATTR_NAN_PEER_MAPS: Nested array of peer schedule maps. | ||
| 3127 | *	Used with %NL80211_CMD_NAN_SET_PEER_SCHED. Contains up to 2 entries, | ||
| 3128 | *	each containing nested attributes from &enum nl80211_nan_peer_map_attrs. | ||
| 3129 | * | ||
| 3130 | * @NL80211_ATTR_INCUMBENT_SIGNAL_INTERFERENCE_BITMAP: u32 attribute specifying | ||
| 3131 | *	the signal interference bitmap detected on the operating bandwidth for | ||
| 3132 | *	%NL80211_CMD_INCUMBENT_SIGNAL_DETECT. Each bit represents a 20 MHz | ||
| 3133 | *	segment, lowest bit corresponds to the lowest 20 MHz segment, in the | ||
| 3134 | *	operating bandwidth where the interference is detected. Punctured | ||
| 3135 | *	sub-channels are included in the bitmap structure; however, since | ||
| 3136 | *	interference detection is not performed on these sub-channels, their | ||
| 3137 | *	corresponding bits are consistently set to zero. | ||
| 3138 | * | ||
| 3139 | * @NL80211_ATTR_UHR_OPERATION: Full UHR Operation element, as it appears in | ||
| 3140 | *	association response etc., since it's abridged in the beacon. Used | ||
| 3141 | *	for START_AP etc. | ||
| 2986 | * | 3142 | * |
| 2987 | * @NUM_NL80211_ATTR: total number of nl80211_attrs available | 3143 | * @NUM_NL80211_ATTR: total number of nl80211_attrs available |
| 2988 | * @NL80211_ATTR_MAX: highest attribute number currently defined | 3144 | * @NL80211_ATTR_MAX: highest attribute number currently defined |
| ... | @@ -3557,6 +3713,26 @@ enum nl80211_attrs { | ... | @@ -3557,6 +3713,26 @@ enum nl80211_attrs { |
| 3557 | 	NL80211_ATTR_UHR_CAPABILITY, | 3713 | 	NL80211_ATTR_UHR_CAPABILITY, |
| 3558 | 	NL80211_ATTR_DISABLE_UHR, | 3714 | 	NL80211_ATTR_DISABLE_UHR, |
| 3559 | 3715 | ||
| 3716 | 	NL80211_ATTR_INCUMBENT_SIGNAL_INTERFERENCE_BITMAP, | ||
| 3717 | |||
| 3718 | 	NL80211_ATTR_UHR_OPERATION, | ||
| 3719 | |||
| 3720 | 	NL80211_ATTR_NAN_CHANNEL, | ||
| 3721 | 	NL80211_ATTR_NAN_CHANNEL_ENTRY, | ||
| 3722 | 	NL80211_ATTR_NAN_TIME_SLOTS, | ||
| 3723 | 	NL80211_ATTR_NAN_RX_NSS, | ||
| 3724 | 	NL80211_ATTR_NAN_AVAIL_BLOB, | ||
| 3725 | 	NL80211_ATTR_NAN_SCHED_DEFERRED, | ||
| 3726 | 	NL80211_ATTR_NAN_SCHED_UPDATE_SUCCESS, | ||
| 3727 | |||
| 3728 | 	NL80211_ATTR_NAN_NMI_MAC, | ||
| 3729 | |||
| 3730 | 	NL80211_ATTR_NAN_ULW, | ||
| 3731 | 	NL80211_ATTR_NAN_COMMITTED_DW, | ||
| 3732 | 	NL80211_ATTR_NAN_SEQ_ID, | ||
| 3733 | 	NL80211_ATTR_NAN_MAX_CHAN_SWITCH_TIME, | ||
| 3734 | 	NL80211_ATTR_NAN_PEER_MAPS, | ||
| 3735 | |||
| 3560 | 	/* add attributes here, update the policy in nl80211.c */ | 3736 | 	/* add attributes here, update the policy in nl80211.c */ |
| 3561 | 3737 | ||
| 3562 | 	__NL80211_ATTR_AFTER_LAST, | 3738 | 	__NL80211_ATTR_AFTER_LAST, |
| ... | @@ -3650,6 +3826,9 @@ enum nl80211_attrs { | ... | @@ -3650,6 +3826,9 @@ enum nl80211_attrs { |
| 3650 | * @NL80211_IFTYPE_OCB: Outside Context of a BSS | 3826 | * @NL80211_IFTYPE_OCB: Outside Context of a BSS |
| 3651 | *	This mode corresponds to the MIB variable dot11OCBActivated=true | 3827 | *	This mode corresponds to the MIB variable dot11OCBActivated=true |
| 3652 | * @NL80211_IFTYPE_NAN: NAN device interface type (not a netdev) | 3828 | * @NL80211_IFTYPE_NAN: NAN device interface type (not a netdev) |
| 3829 | * @NL80211_IFTYPE_NAN_DATA: NAN data interface type (netdev); NAN data | ||
| 3830 | *	interfaces can only be brought up (IFF_UP) when a NAN interface | ||
| 3831 | *	already exists and NAN has been started (using %NL80211_CMD_START_NAN). | ||
| 3653 | * @NL80211_IFTYPE_MAX: highest interface type number currently defined | 3832 | * @NL80211_IFTYPE_MAX: highest interface type number currently defined |
| 3654 | * @NUM_NL80211_IFTYPES: number of defined interface types | 3833 | * @NUM_NL80211_IFTYPES: number of defined interface types |
| 3655 | * | 3834 | * |
| ... | @@ -3671,6 +3850,7 @@ enum nl80211_iftype { | ... | @@ -3671,6 +3850,7 @@ enum nl80211_iftype { |
| 3671 | 	NL80211_IFTYPE_P2P_DEVICE, | 3850 | 	NL80211_IFTYPE_P2P_DEVICE, |
| 3672 | 	NL80211_IFTYPE_OCB, | 3851 | 	NL80211_IFTYPE_OCB, |
| 3673 | 	NL80211_IFTYPE_NAN, | 3852 | 	NL80211_IFTYPE_NAN, |
| 3853 | 	NL80211_IFTYPE_NAN_DATA, | ||
| 3674 | 3854 | ||
| 3675 | 	/* keep last */ | 3855 | 	/* keep last */ |
| 3676 | 	NUM_NL80211_IFTYPES, | 3856 | 	NUM_NL80211_IFTYPES, |
| ... | @@ -4359,6 +4539,46 @@ enum nl80211_band_attr { | ... | @@ -4359,6 +4539,46 @@ enum nl80211_band_attr { |
| 4359 | 4539 | ||
| 4360 | #define NL80211_BAND_ATTR_HT_CAPA NL80211_BAND_ATTR_HT_CAPA | 4540 | #define NL80211_BAND_ATTR_HT_CAPA NL80211_BAND_ATTR_HT_CAPA |
| 4361 | 4541 | ||
| 4542 | /** | ||
| 4543 | * enum nl80211_nan_phy_cap_attr - NAN PHY capabilities attributes | ||
| 4544 | * @__NL80211_NAN_PHY_CAP_ATTR_INVALID: attribute number 0 is reserved | ||
| 4545 | * @NL80211_NAN_PHY_CAP_ATTR_HT_MCS_SET: 16-byte attribute containing HT MCS set | ||
| 4546 | * @NL80211_NAN_PHY_CAP_ATTR_HT_CAPA: HT capabilities (u16) | ||
| 4547 | * @NL80211_NAN_PHY_CAP_ATTR_HT_AMPDU_FACTOR: HT A-MPDU factor (u8) | ||
| 4548 | * @NL80211_NAN_PHY_CAP_ATTR_HT_AMPDU_DENSITY: HT A-MPDU density (u8) | ||
| 4549 | * @NL80211_NAN_PHY_CAP_ATTR_VHT_MCS_SET: 8-byte attribute containing VHT MCS set | ||
| 4550 | * @NL80211_NAN_PHY_CAP_ATTR_VHT_CAPA: VHT capabilities (u32) | ||
| 4551 | * @NL80211_NAN_PHY_CAP_ATTR_HE_MAC: HE MAC capabilities | ||
| 4552 | * @NL80211_NAN_PHY_CAP_ATTR_HE_PHY: HE PHY capabilities | ||
| 4553 | * @NL80211_NAN_PHY_CAP_ATTR_HE_MCS_SET: HE supported NSS/MCS combinations | ||
| 4554 | * @NL80211_NAN_PHY_CAP_ATTR_HE_PPE: HE PPE thresholds | ||
| 4555 | * @NL80211_NAN_PHY_CAP_ATTR_MAX: highest NAN PHY cap attribute number | ||
| 4556 | * @__NL80211_NAN_PHY_CAP_ATTR_AFTER_LAST: internal use | ||
| 4557 | */ | ||
| 4558 | enum nl80211_nan_phy_cap_attr { | ||
| 4559 | 	__NL80211_NAN_PHY_CAP_ATTR_INVALID, | ||
| 4560 | |||
| 4561 | 	/* HT capabilities */ | ||
| 4562 | 	NL80211_NAN_PHY_CAP_ATTR_HT_MCS_SET, | ||
| 4563 | 	NL80211_NAN_PHY_CAP_ATTR_HT_CAPA, | ||
| 4564 | 	NL80211_NAN_PHY_CAP_ATTR_HT_AMPDU_FACTOR, | ||
| 4565 | 	NL80211_NAN_PHY_CAP_ATTR_HT_AMPDU_DENSITY, | ||
| 4566 | |||
| 4567 | 	/* VHT capabilities */ | ||
| 4568 | 	NL80211_NAN_PHY_CAP_ATTR_VHT_MCS_SET, | ||
| 4569 | 	NL80211_NAN_PHY_CAP_ATTR_VHT_CAPA, | ||
| 4570 | |||
| 4571 | 	/* HE capabilities */ | ||
| 4572 | 	NL80211_NAN_PHY_CAP_ATTR_HE_MAC, | ||
| 4573 | 	NL80211_NAN_PHY_CAP_ATTR_HE_PHY, | ||
| 4574 | 	NL80211_NAN_PHY_CAP_ATTR_HE_MCS_SET, | ||
| 4575 | 	NL80211_NAN_PHY_CAP_ATTR_HE_PPE, | ||
| 4576 | |||
| 4577 | 	/* keep last */ | ||
| 4578 | 	__NL80211_NAN_PHY_CAP_ATTR_AFTER_LAST, | ||
| 4579 | 	NL80211_NAN_PHY_CAP_ATTR_MAX = __NL80211_NAN_PHY_CAP_ATTR_AFTER_LAST - 1 | ||
| 4580 | }; | ||
| 4581 | |||
| 4362 | /** | 4582 | /** |
| 4363 | * enum nl80211_wmm_rule - regulatory wmm rule | 4583 | * enum nl80211_wmm_rule - regulatory wmm rule |
| 4364 | * | 4584 | * |
| ... | @@ -4480,6 +4700,10 @@ enum nl80211_wmm_rule { | ... | @@ -4480,6 +4700,10 @@ enum nl80211_wmm_rule { |
| 4480 | *	as a non-primary subchannel. Only applicable to S1G channels. | 4700 | *	as a non-primary subchannel. Only applicable to S1G channels. |
| 4481 | * @NL80211_FREQUENCY_ATTR_NO_UHR: UHR operation is not allowed on this channel | 4701 | * @NL80211_FREQUENCY_ATTR_NO_UHR: UHR operation is not allowed on this channel |
| 4482 | *	in current regulatory domain. | 4702 | *	in current regulatory domain. |
| 4703 | * @NL80211_FREQUENCY_ATTR_CAC_START_TIME: Channel Availability Check (CAC) | ||
| 4704 | *	start time (CLOCK_BOOTTIME, nanoseconds). Only present when CAC is | ||
| 4705 | *	currently in progress on this channel. | ||
| 4706 | * @NL80211_FREQUENCY_ATTR_PAD: attribute used for padding for 64-bit alignment | ||
| 4483 | * @NL80211_FREQUENCY_ATTR_MAX: highest frequency attribute number | 4707 | * @NL80211_FREQUENCY_ATTR_MAX: highest frequency attribute number |
| 4484 | *	currently defined | 4708 | *	currently defined |
| 4485 | * @__NL80211_FREQUENCY_ATTR_AFTER_LAST: internal use | 4709 | * @__NL80211_FREQUENCY_ATTR_AFTER_LAST: internal use |
| ... | @@ -4530,6 +4754,8 @@ enum nl80211_frequency_attr { | ... | @@ -4530,6 +4754,8 @@ enum nl80211_frequency_attr { |
| 4530 | 	NL80211_FREQUENCY_ATTR_NO_16MHZ, | 4754 | 	NL80211_FREQUENCY_ATTR_NO_16MHZ, |
| 4531 | 	NL80211_FREQUENCY_ATTR_S1G_NO_PRIMARY, | 4755 | 	NL80211_FREQUENCY_ATTR_S1G_NO_PRIMARY, |
| 4532 | 	NL80211_FREQUENCY_ATTR_NO_UHR, | 4756 | 	NL80211_FREQUENCY_ATTR_NO_UHR, |
| 4757 | 	NL80211_FREQUENCY_ATTR_CAC_START_TIME, | ||
| 4758 | 	NL80211_FREQUENCY_ATTR_PAD, | ||
| 4533 | 4759 | ||
| 4534 | 	/* keep last */ | 4760 | 	/* keep last */ |
| 4535 | 	__NL80211_FREQUENCY_ATTR_AFTER_LAST, | 4761 | 	__NL80211_FREQUENCY_ATTR_AFTER_LAST, |
| ... | @@ -5466,6 +5692,8 @@ enum nl80211_bss_status { | ... | @@ -5466,6 +5692,8 @@ enum nl80211_bss_status { |
| 5466 | * @NL80211_AUTHTYPE_FILS_SK_PFS: Fast Initial Link Setup shared key with PFS | 5692 | * @NL80211_AUTHTYPE_FILS_SK_PFS: Fast Initial Link Setup shared key with PFS |
| 5467 | * @NL80211_AUTHTYPE_FILS_PK: Fast Initial Link Setup public key | 5693 | * @NL80211_AUTHTYPE_FILS_PK: Fast Initial Link Setup public key |
| 5468 | * @NL80211_AUTHTYPE_EPPKE: Enhanced Privacy Protection Key Exchange | 5694 | * @NL80211_AUTHTYPE_EPPKE: Enhanced Privacy Protection Key Exchange |
| 5695 | * @NL80211_AUTHTYPE_IEEE8021X: IEEE 802.1X authentication utilizing | ||
| 5696 | *	Authentication frames | ||
| 5469 | * @__NL80211_AUTHTYPE_NUM: internal | 5697 | * @__NL80211_AUTHTYPE_NUM: internal |
| 5470 | * @NL80211_AUTHTYPE_MAX: maximum valid auth algorithm | 5698 | * @NL80211_AUTHTYPE_MAX: maximum valid auth algorithm |
| 5471 | * @NL80211_AUTHTYPE_AUTOMATIC: determine automatically (if necessary by | 5699 | * @NL80211_AUTHTYPE_AUTOMATIC: determine automatically (if necessary by |
| ... | @@ -5482,6 +5710,7 @@ enum nl80211_auth_type { | ... | @@ -5482,6 +5710,7 @@ enum nl80211_auth_type { |
| 5482 | 	NL80211_AUTHTYPE_FILS_SK_PFS, | 5710 | 	NL80211_AUTHTYPE_FILS_SK_PFS, |
| 5483 | 	NL80211_AUTHTYPE_FILS_PK, | 5711 | 	NL80211_AUTHTYPE_FILS_PK, |
| 5484 | 	NL80211_AUTHTYPE_EPPKE, | 5712 | 	NL80211_AUTHTYPE_EPPKE, |
| 5713 | 	NL80211_AUTHTYPE_IEEE8021X, | ||
| 5485 | 5714 | ||
| 5486 | 	/* keep last */ | 5715 | 	/* keep last */ |
| 5487 | 	__NL80211_AUTHTYPE_NUM, | 5716 | 	__NL80211_AUTHTYPE_NUM, |
| ... | @@ -6795,6 +7024,11 @@ enum nl80211_feature_flags { | ... | @@ -6795,6 +7024,11 @@ enum nl80211_feature_flags { |
| 6795 | *	frames in both non‑AP STA and AP mode as specified in | 7024 | *	frames in both non‑AP STA and AP mode as specified in |
| 6796 | *	"IEEE P802.11bi/D3.0, 12.16.6". | 7025 | *	"IEEE P802.11bi/D3.0, 12.16.6". |
| 6797 | * | 7026 | * |
| 7027 | * @NL80211_EXT_FEATURE_IEEE8021X_AUTH: Driver supports IEEE 802.1X | ||
| 7028 | *	authentication utilizing Authentication frames with user space SME | ||
| 7029 | *	(NL80211_CMD_AUTHENTICATE) in non-AP STA mode, as specified in | ||
| 7030 | *	"IEEE P802.11bi/D4.0, 12.16.5". | ||
| 7031 | * | ||
| 6798 | * @NUM_NL80211_EXT_FEATURES: number of extended features. | 7032 | * @NUM_NL80211_EXT_FEATURES: number of extended features. |
| 6799 | * @MAX_NL80211_EXT_FEATURES: highest extended feature index. | 7033 | * @MAX_NL80211_EXT_FEATURES: highest extended feature index. |
| 6800 | */ | 7034 | */ |
| ... | @@ -6873,6 +7107,7 @@ enum nl80211_ext_feature_index { | ... | @@ -6873,6 +7107,7 @@ enum nl80211_ext_feature_index { |
| 6873 | 	NL80211_EXT_FEATURE_BEACON_RATE_EHT, | 7107 | 	NL80211_EXT_FEATURE_BEACON_RATE_EHT, |
| 6874 | 	NL80211_EXT_FEATURE_EPPKE, | 7108 | 	NL80211_EXT_FEATURE_EPPKE, |
| 6875 | 	NL80211_EXT_FEATURE_ASSOC_FRAME_ENCRYPTION, | 7109 | 	NL80211_EXT_FEATURE_ASSOC_FRAME_ENCRYPTION, |
| 7110 | 	NL80211_EXT_FEATURE_IEEE8021X_AUTH, | ||
| 6876 | 7111 | ||
| 6877 | 	/* add new features before the definition below */ | 7112 | 	/* add new features before the definition below */ |
| 6878 | 	NUM_NL80211_EXT_FEATURES, | 7113 | 	NUM_NL80211_EXT_FEATURES, |
| ... | @@ -8517,6 +8752,8 @@ enum nl80211_s1g_short_beacon_attrs { | ... | @@ -8517,6 +8752,8 @@ enum nl80211_s1g_short_beacon_attrs { |
| 8517 | * @NL80211_NAN_CAPA_CAPABILITIES: u8 attribute containing the | 8752 | * @NL80211_NAN_CAPA_CAPABILITIES: u8 attribute containing the |
| 8518 | *	capabilities of the device as defined in Wi-Fi Aware (TM) | 8753 | *	capabilities of the device as defined in Wi-Fi Aware (TM) |
| 8519 | *	specification Table 79 (Capabilities field). | 8754 | *	specification Table 79 (Capabilities field). |
| 8755 | * @NL80211_NAN_CAPA_PHY: nested attribute containing band-agnostic | ||
| 8756 | *	capabilities for NAN data path. See &enum nl80211_nan_phy_cap_attr. | ||
| 8520 | * @__NL80211_NAN_CAPABILITIES_LAST: Internal | 8757 | * @__NL80211_NAN_CAPABILITIES_LAST: Internal |
| 8521 | * @NL80211_NAN_CAPABILITIES_MAX: Highest NAN capability attribute. | 8758 | * @NL80211_NAN_CAPABILITIES_MAX: Highest NAN capability attribute. |
| 8522 | */ | 8759 | */ |
| ... | @@ -8529,9 +8766,38 @@ enum nl80211_nan_capabilities { | ... | @@ -8529,9 +8766,38 @@ enum nl80211_nan_capabilities { |
| 8529 | 	NL80211_NAN_CAPA_NUM_ANTENNAS, | 8766 | 	NL80211_NAN_CAPA_NUM_ANTENNAS, |
| 8530 | 	NL80211_NAN_CAPA_MAX_CHANNEL_SWITCH_TIME, | 8767 | 	NL80211_NAN_CAPA_MAX_CHANNEL_SWITCH_TIME, |
| 8531 | 	NL80211_NAN_CAPA_CAPABILITIES, | 8768 | 	NL80211_NAN_CAPA_CAPABILITIES, |
| 8769 | 	NL80211_NAN_CAPA_PHY, | ||
| 8532 | 	/* keep last */ | 8770 | 	/* keep last */ |
| 8533 | 	__NL80211_NAN_CAPABILITIES_LAST, | 8771 | 	__NL80211_NAN_CAPABILITIES_LAST, |
| 8534 | 	NL80211_NAN_CAPABILITIES_MAX = __NL80211_NAN_CAPABILITIES_LAST - 1, | 8772 | 	NL80211_NAN_CAPABILITIES_MAX = __NL80211_NAN_CAPABILITIES_LAST - 1, |
| 8535 | }; | 8773 | }; |
| 8536 | 8774 | ||
| 8775 | /** | ||
| 8776 | * enum nl80211_nan_peer_map_attrs - NAN peer schedule map attributes | ||
| 8777 | * | ||
| 8778 | * Nested attributes used within %NL80211_ATTR_NAN_PEER_MAPS to define | ||
| 8779 | * individual peer schedule maps. | ||
| 8780 | * | ||
| 8781 | * @__NL80211_NAN_PEER_MAP_ATTR_INVALID: Invalid | ||
| 8782 | * @NL80211_NAN_PEER_MAP_ATTR_MAP_ID: (u8) The map ID for this schedule map. | ||
| 8783 | * @NL80211_NAN_PEER_MAP_ATTR_TIME_SLOTS: An array of u8 values with 32 cells. | ||
| 8784 | *	Each value maps a time slot to a channel index within the schedule's | ||
| 8785 | *	channel list (%NL80211_ATTR_NAN_CHANNEL attributes). | ||
| 8786 | *	%NL80211_NAN_SCHED_NOT_AVAIL_SLOT indicates unscheduled. | ||
| 8787 | * @__NL80211_NAN_PEER_MAP_ATTR_LAST: Internal | ||
| 8788 | * @NL80211_NAN_PEER_MAP_ATTR_MAX: Highest peer map attribute | ||
| 8789 | */ | ||
| 8790 | enum nl80211_nan_peer_map_attrs { | ||
| 8791 | 	__NL80211_NAN_PEER_MAP_ATTR_INVALID, | ||
| 8792 | |||
| 8793 | 	NL80211_NAN_PEER_MAP_ATTR_MAP_ID, | ||
| 8794 | 	NL80211_NAN_PEER_MAP_ATTR_TIME_SLOTS, | ||
| 8795 | |||
| 8796 | 	/* keep last */ | ||
| 8797 | 	__NL80211_NAN_PEER_MAP_ATTR_LAST, | ||
| 8798 | 	NL80211_NAN_PEER_MAP_ATTR_MAX = __NL80211_NAN_PEER_MAP_ATTR_LAST - 1, | ||
| 8799 | }; | ||
| 8800 | |||
| 8801 | #define NL80211_NAN_SCHED_NOT_AVAIL_SLOT 0xff | ||
| 8802 | |||
| 8537 | #endif /* __LINUX_NL80211_H */ | 8803 | #endif /* __LINUX_NL80211_H */ |
| \ No newline at end of file | |||
lib/libc/include/any-linux-any/linux/openvswitch.h+68-8| ... | @@ -70,12 +70,15 @@ enum ovs_datapath_cmd { | ... | @@ -70,12 +70,15 @@ enum ovs_datapath_cmd { |
| 70 | * set on the datapath port (for OVS_ACTION_ATTR_MISS). Only valid on | 70 | * set on the datapath port (for OVS_ACTION_ATTR_MISS). Only valid on |
| 71 | * %OVS_DP_CMD_NEW requests. A value of zero indicates that upcalls should | 71 | * %OVS_DP_CMD_NEW requests. A value of zero indicates that upcalls should |
| 72 | * not be sent. | 72 | * not be sent. |
| 73 | * @OVS_DP_ATTR_MASKS_CACHE_SIZE: Number of the entries in the flow table | ||
| 74 | * masks cache. | ||
| 73 | * @OVS_DP_ATTR_PER_CPU_PIDS: Per-cpu array of PIDs for upcalls when | 75 | * @OVS_DP_ATTR_PER_CPU_PIDS: Per-cpu array of PIDs for upcalls when |
| 74 | * OVS_DP_F_DISPATCH_UPCALL_PER_CPU feature is set. | 76 | * OVS_DP_F_DISPATCH_UPCALL_PER_CPU feature is set. |
| 75 | * @OVS_DP_ATTR_STATS: Statistics about packets that have passed through the | 77 | * @OVS_DP_ATTR_STATS: Statistics about packets that have passed through the |
| 76 | * datapath. Always present in notifications. | 78 | * datapath. Always present in notifications. |
| 77 | * @OVS_DP_ATTR_MEGAFLOW_STATS: Statistics about mega flow masks usage for the | 79 | * @OVS_DP_ATTR_MEGAFLOW_STATS: Statistics about mega flow masks usage for the |
| 78 | * datapath. Always present in notifications. | 80 | * datapath. Always present in notifications. |
| 81 | * @OVS_DP_ATTR_USER_FEATURES: OVS_DP_F_* flags. | ||
| 79 | * @OVS_DP_ATTR_IFINDEX: Interface index for a new datapath netdev. Only | 82 | * @OVS_DP_ATTR_IFINDEX: Interface index for a new datapath netdev. Only |
| 80 | * valid for %OVS_DP_CMD_NEW requests. | 83 | * valid for %OVS_DP_CMD_NEW requests. |
| 81 | * | 84 | * |
| ... | @@ -83,18 +86,23 @@ enum ovs_datapath_cmd { | ... | @@ -83,18 +86,23 @@ enum ovs_datapath_cmd { |
| 83 | * payload for %OVS_DP_* commands. | 86 | * payload for %OVS_DP_* commands. |
| 84 | */ | 87 | */ |
| 85 | enum ovs_datapath_attr { | 88 | enum ovs_datapath_attr { |
| 89 | 	/* private: */ | ||
| 86 | 	OVS_DP_ATTR_UNSPEC, | 90 | 	OVS_DP_ATTR_UNSPEC, |
| 91 | 	/* public: */ | ||
| 87 | 	OVS_DP_ATTR_NAME,		/* name of dp_ifindex netdev */ | 92 | 	OVS_DP_ATTR_NAME,		/* name of dp_ifindex netdev */ |
| 88 | 	OVS_DP_ATTR_UPCALL_PID,		/* Netlink PID to receive upcalls */ | 93 | 	OVS_DP_ATTR_UPCALL_PID,		/* Netlink PID to receive upcalls */ |
| 89 | 	OVS_DP_ATTR_STATS,		/* struct ovs_dp_stats */ | 94 | 	OVS_DP_ATTR_STATS,		/* struct ovs_dp_stats */ |
| 90 | 	OVS_DP_ATTR_MEGAFLOW_STATS,	/* struct ovs_dp_megaflow_stats */ | 95 | 	OVS_DP_ATTR_MEGAFLOW_STATS,	/* struct ovs_dp_megaflow_stats */ |
| 91 | 	OVS_DP_ATTR_USER_FEATURES,	/* OVS_DP_F_* */ | 96 | 	OVS_DP_ATTR_USER_FEATURES,	/* OVS_DP_F_* */ |
| 97 | 	/* private: */ | ||
| 92 | 	OVS_DP_ATTR_PAD, | 98 | 	OVS_DP_ATTR_PAD, |
| 99 | 	/* public: */ | ||
| 93 | 	OVS_DP_ATTR_MASKS_CACHE_SIZE, | 100 | 	OVS_DP_ATTR_MASKS_CACHE_SIZE, |
| 94 | 	OVS_DP_ATTR_PER_CPU_PIDS, /* Netlink PIDS to receive upcalls in | 101 | 	OVS_DP_ATTR_PER_CPU_PIDS, /* Netlink PIDS to receive upcalls in |
| 95 | 				 * per-cpu dispatch mode | 102 | 				 * per-cpu dispatch mode |
| 96 | 				 */ | 103 | 				 */ |
| 97 | 	OVS_DP_ATTR_IFINDEX, | 104 | 	OVS_DP_ATTR_IFINDEX, |
| 105 | 	/* private: */ | ||
| 98 | 	__OVS_DP_ATTR_MAX | 106 | 	__OVS_DP_ATTR_MAX |
| 99 | }; | 107 | }; |
| 100 | 108 | ||
| ... | @@ -181,6 +189,7 @@ enum ovs_packet_cmd { | ... | @@ -181,6 +189,7 @@ enum ovs_packet_cmd { |
| 181 | * %OVS_USERSPACE_ATTR_EGRESS_TUN_PORT attribute, which is sent only if the | 189 | * %OVS_USERSPACE_ATTR_EGRESS_TUN_PORT attribute, which is sent only if the |
| 182 | * output port is actually a tunnel port. Contains the output tunnel key | 190 | * output port is actually a tunnel port. Contains the output tunnel key |
| 183 | * extracted from the packet as nested %OVS_TUNNEL_KEY_ATTR_* attributes. | 191 | * extracted from the packet as nested %OVS_TUNNEL_KEY_ATTR_* attributes. |
| 192 | * @OVS_PACKET_ATTR_PROBE: Packet operation is a feature probe. | ||
| 184 | * @OVS_PACKET_ATTR_MRU: Present for an %OVS_PACKET_CMD_ACTION and | 193 | * @OVS_PACKET_ATTR_MRU: Present for an %OVS_PACKET_CMD_ACTION and |
| 185 | * @OVS_PACKET_ATTR_LEN: Packet size before truncation. | 194 | * @OVS_PACKET_ATTR_LEN: Packet size before truncation. |
| 186 | * %OVS_PACKET_ATTR_USERSPACE action specify the Maximum received fragment | 195 | * %OVS_PACKET_ATTR_USERSPACE action specify the Maximum received fragment |
| ... | @@ -196,21 +205,26 @@ enum ovs_packet_cmd { | ... | @@ -196,21 +205,26 @@ enum ovs_packet_cmd { |
| 196 | * payload for %OVS_PACKET_* commands. | 205 | * payload for %OVS_PACKET_* commands. |
| 197 | */ | 206 | */ |
| 198 | enum ovs_packet_attr { | 207 | enum ovs_packet_attr { |
| 208 | 	/* private: */ | ||
| 199 | 	OVS_PACKET_ATTR_UNSPEC, | 209 | 	OVS_PACKET_ATTR_UNSPEC, |
| 210 | 	/* public: */ | ||
| 200 | 	OVS_PACKET_ATTR_PACKET, /* Packet data. */ | 211 | 	OVS_PACKET_ATTR_PACKET, /* Packet data. */ |
| 201 | 	OVS_PACKET_ATTR_KEY, /* Nested OVS_KEY_ATTR_* attributes. */ | 212 | 	OVS_PACKET_ATTR_KEY, /* Nested OVS_KEY_ATTR_* attributes. */ |
| 202 | 	OVS_PACKET_ATTR_ACTIONS, /* Nested OVS_ACTION_ATTR_* attributes. */ | 213 | 	OVS_PACKET_ATTR_ACTIONS, /* Nested OVS_ACTION_ATTR_* attributes. */ |
| 203 | 	OVS_PACKET_ATTR_USERDATA, /* OVS_ACTION_ATTR_USERSPACE arg. */ | 214 | 	OVS_PACKET_ATTR_USERDATA, /* OVS_ACTION_ATTR_USERSPACE arg. */ |
| 204 | 	OVS_PACKET_ATTR_EGRESS_TUN_KEY, /* Nested OVS_TUNNEL_KEY_ATTR_* | 215 | 	OVS_PACKET_ATTR_EGRESS_TUN_KEY, /* Nested OVS_TUNNEL_KEY_ATTR_* |
| 205 | 					 attributes. */ | 216 | 					 attributes. */ |
| 217 | 	/* private: */ | ||
| 206 | 	OVS_PACKET_ATTR_UNUSED1, | 218 | 	OVS_PACKET_ATTR_UNUSED1, |
| 207 | 	OVS_PACKET_ATTR_UNUSED2, | 219 | 	OVS_PACKET_ATTR_UNUSED2, |
| 220 | 	/* public: */ | ||
| 208 | 	OVS_PACKET_ATTR_PROBE, /* Packet operation is a feature probe, | 221 | 	OVS_PACKET_ATTR_PROBE, /* Packet operation is a feature probe, |
| 209 | 				 error logging should be suppressed. */ | 222 | 				 error logging should be suppressed. */ |
| 210 | 	OVS_PACKET_ATTR_MRU,	 /* Maximum received IP fragment size. */ | 223 | 	OVS_PACKET_ATTR_MRU,	 /* Maximum received IP fragment size. */ |
| 211 | 	OVS_PACKET_ATTR_LEN,	 /* Packet size before truncation. */ | 224 | 	OVS_PACKET_ATTR_LEN,	 /* Packet size before truncation. */ |
| 212 | 	OVS_PACKET_ATTR_HASH,	 /* Packet hash. */ | 225 | 	OVS_PACKET_ATTR_HASH,	 /* Packet hash. */ |
| 213 | 	OVS_PACKET_ATTR_UPCALL_PID, /* u32 Netlink PID. */ | 226 | 	OVS_PACKET_ATTR_UPCALL_PID, /* u32 Netlink PID. */ |
| 227 | 	/* private: */ | ||
| 214 | 	__OVS_PACKET_ATTR_MAX | 228 | 	__OVS_PACKET_ATTR_MAX |
| 215 | }; | 229 | }; |
| 216 | 230 | ||
| ... | @@ -257,6 +271,11 @@ enum ovs_vport_type { | ... | @@ -257,6 +271,11 @@ enum ovs_vport_type { |
| 257 | * upcalls should not be sent. | 271 | * upcalls should not be sent. |
| 258 | * @OVS_VPORT_ATTR_STATS: A &struct ovs_vport_stats giving statistics for | 272 | * @OVS_VPORT_ATTR_STATS: A &struct ovs_vport_stats giving statistics for |
| 259 | * packets sent or received through the vport. | 273 | * packets sent or received through the vport. |
| 274 | * @OVS_VPORT_ATTR_IFINDEX: Provides the ifindex of a vport, or sets the desired | ||
| 275 | * ifindex while creating a new vport with type %OVS_VPORT_TYPE_INTERNAL. | ||
| 276 | * @OVS_VPORT_ATTR_NETNSID: Provides the netns id of the vport if it's not local. | ||
| 277 | * @OVS_VPORT_ATTR_UPCALL_STATS: Provides upcall statistics for a vport. | ||
| 278 | * Contains nested %OVS_VPORT_UPCALL_ATTR_* attributes. | ||
| 260 | * | 279 | * |
| 261 | * These attributes follow the &struct ovs_header within the Generic Netlink | 280 | * These attributes follow the &struct ovs_header within the Generic Netlink |
| 262 | * payload for %OVS_VPORT_* commands. | 281 | * payload for %OVS_VPORT_* commands. |
| ... | @@ -272,7 +291,9 @@ enum ovs_vport_type { | ... | @@ -272,7 +291,9 @@ enum ovs_vport_type { |
| 272 | * ovs_header plus %OVS_VPORT_ATTR_PORT_NO determine the vport. | 291 | * ovs_header plus %OVS_VPORT_ATTR_PORT_NO determine the vport. |
| 273 | */ | 292 | */ |
| 274 | enum ovs_vport_attr { | 293 | enum ovs_vport_attr { |
| 294 | 	/* private: */ | ||
| 275 | 	OVS_VPORT_ATTR_UNSPEC, | 295 | 	OVS_VPORT_ATTR_UNSPEC, |
| 296 | 	/* public: */ | ||
| 276 | 	OVS_VPORT_ATTR_PORT_NO,	/* u32 port number within datapath */ | 297 | 	OVS_VPORT_ATTR_PORT_NO,	/* u32 port number within datapath */ |
| 277 | 	OVS_VPORT_ATTR_TYPE,	/* u32 OVS_VPORT_TYPE_* constant. */ | 298 | 	OVS_VPORT_ATTR_TYPE,	/* u32 OVS_VPORT_TYPE_* constant. */ |
| 278 | 	OVS_VPORT_ATTR_NAME,	/* string name, up to IFNAMSIZ bytes long */ | 299 | 	OVS_VPORT_ATTR_NAME,	/* string name, up to IFNAMSIZ bytes long */ |
| ... | @@ -280,23 +301,27 @@ enum ovs_vport_attr { | ... | @@ -280,23 +301,27 @@ enum ovs_vport_attr { |
| 280 | 	OVS_VPORT_ATTR_UPCALL_PID, /* array of u32 Netlink socket PIDs for */ | 301 | 	OVS_VPORT_ATTR_UPCALL_PID, /* array of u32 Netlink socket PIDs for */ |
| 281 | 				/* receiving upcalls */ | 302 | 				/* receiving upcalls */ |
| 282 | 	OVS_VPORT_ATTR_STATS,	/* struct ovs_vport_stats */ | 303 | 	OVS_VPORT_ATTR_STATS,	/* struct ovs_vport_stats */ |
| 304 | 	/* private: */ | ||
| 283 | 	OVS_VPORT_ATTR_PAD, | 305 | 	OVS_VPORT_ATTR_PAD, |
| 306 | 	/* public: */ | ||
| 284 | 	OVS_VPORT_ATTR_IFINDEX, | 307 | 	OVS_VPORT_ATTR_IFINDEX, |
| 285 | 	OVS_VPORT_ATTR_NETNSID, | 308 | 	OVS_VPORT_ATTR_NETNSID, |
| 286 | 	OVS_VPORT_ATTR_UPCALL_STATS, | 309 | 	OVS_VPORT_ATTR_UPCALL_STATS, |
| 310 | 	/* private: */ | ||
| 287 | 	__OVS_VPORT_ATTR_MAX | 311 | 	__OVS_VPORT_ATTR_MAX |
| 288 | }; | 312 | }; |
| 289 | 313 | ||
| 290 | #define OVS_VPORT_ATTR_MAX (__OVS_VPORT_ATTR_MAX - 1) | 314 | #define OVS_VPORT_ATTR_MAX (__OVS_VPORT_ATTR_MAX - 1) |
| 291 | 315 | ||
| 292 | /** | 316 | /** |
| 293 | * enum ovs_vport_upcall_attr - attributes for %OVS_VPORT_UPCALL* commands | 317 | * enum ovs_vport_upcall_attr - attributes for %OVS_VPORT_ATTR_UPCALL_STATS |
| 294 | * @OVS_VPORT_UPCALL_SUCCESS: 64-bit upcall success packets. | 318 | * @OVS_VPORT_UPCALL_ATTR_SUCCESS: 64-bit upcall success packets. |
| 295 | * @OVS_VPORT_UPCALL_FAIL: 64-bit upcall fail packets. | 319 | * @OVS_VPORT_UPCALL_ATTR_FAIL: 64-bit upcall fail packets. |
| 296 | */ | 320 | */ |
| 297 | enum ovs_vport_upcall_attr { | 321 | enum ovs_vport_upcall_attr { |
| 298 | 	OVS_VPORT_UPCALL_ATTR_SUCCESS, | 322 | 	OVS_VPORT_UPCALL_ATTR_SUCCESS, |
| 299 | 	OVS_VPORT_UPCALL_ATTR_FAIL, | 323 | 	OVS_VPORT_UPCALL_ATTR_FAIL, |
| 324 | 	/* private: */ | ||
| 300 | 	__OVS_VPORT_UPCALL_ATTR_MAX | 325 | 	__OVS_VPORT_UPCALL_ATTR_MAX |
| 301 | }; | 326 | }; |
| 302 | 327 | ||
| ... | @@ -431,6 +456,7 @@ enum ovs_frag_type { | ... | @@ -431,6 +456,7 @@ enum ovs_frag_type { |
| 431 | 	OVS_FRAG_TYPE_NONE, | 456 | 	OVS_FRAG_TYPE_NONE, |
| 432 | 	OVS_FRAG_TYPE_FIRST, | 457 | 	OVS_FRAG_TYPE_FIRST, |
| 433 | 	OVS_FRAG_TYPE_LATER, | 458 | 	OVS_FRAG_TYPE_LATER, |
| 459 | 	/* private: */ | ||
| 434 | 	__OVS_FRAG_TYPE_MAX | 460 | 	__OVS_FRAG_TYPE_MAX |
| 435 | }; | 461 | }; |
| 436 | 462 | ||
| ... | @@ -604,6 +630,8 @@ struct ovs_nsh_key_md1 { | ... | @@ -604,6 +630,8 @@ struct ovs_nsh_key_md1 { |
| 604 | * a wildcarded match. Omitting attribute is treated as wildcarding all | 630 | * a wildcarded match. Omitting attribute is treated as wildcarding all |
| 605 | * corresponding fields. Optional for all requests. If not present, | 631 | * corresponding fields. Optional for all requests. If not present, |
| 606 | * all flow key bits are exact match bits. | 632 | * all flow key bits are exact match bits. |
| 633 | * @OVS_FLOW_ATTR_PROBE: Flow operation is a feature probe, error logging | ||
| 634 | * should be suppressed. | ||
| 607 | * @OVS_FLOW_ATTR_UFID: A value between 1-16 octets specifying a unique | 635 | * @OVS_FLOW_ATTR_UFID: A value between 1-16 octets specifying a unique |
| 608 | * identifier for the flow. Causes the flow to be indexed by this value rather | 636 | * identifier for the flow. Causes the flow to be indexed by this value rather |
| 609 | * than the value of the %OVS_FLOW_ATTR_KEY attribute. Optional for all | 637 | * than the value of the %OVS_FLOW_ATTR_KEY attribute. Optional for all |
| ... | @@ -617,7 +645,9 @@ struct ovs_nsh_key_md1 { | ... | @@ -617,7 +645,9 @@ struct ovs_nsh_key_md1 { |
| 617 | * payload for %OVS_FLOW_* commands. | 645 | * payload for %OVS_FLOW_* commands. |
| 618 | */ | 646 | */ |
| 619 | enum ovs_flow_attr { | 647 | enum ovs_flow_attr { |
| 648 | 	/* private: */ | ||
| 620 | 	OVS_FLOW_ATTR_UNSPEC, | 649 | 	OVS_FLOW_ATTR_UNSPEC, |
| 650 | 	/* public: */ | ||
| 621 | 	OVS_FLOW_ATTR_KEY, /* Sequence of OVS_KEY_ATTR_* attributes. */ | 651 | 	OVS_FLOW_ATTR_KEY, /* Sequence of OVS_KEY_ATTR_* attributes. */ |
| 622 | 	OVS_FLOW_ATTR_ACTIONS, /* Nested OVS_ACTION_ATTR_* attributes. */ | 652 | 	OVS_FLOW_ATTR_ACTIONS, /* Nested OVS_ACTION_ATTR_* attributes. */ |
| 623 | 	OVS_FLOW_ATTR_STATS, /* struct ovs_flow_stats. */ | 653 | 	OVS_FLOW_ATTR_STATS, /* struct ovs_flow_stats. */ |
| ... | @@ -629,13 +659,14 @@ enum ovs_flow_attr { | ... | @@ -629,13 +659,14 @@ enum ovs_flow_attr { |
| 629 | 				 * logging should be suppressed. */ | 659 | 				 * logging should be suppressed. */ |
| 630 | 	OVS_FLOW_ATTR_UFID, /* Variable length unique flow identifier. */ | 660 | 	OVS_FLOW_ATTR_UFID, /* Variable length unique flow identifier. */ |
| 631 | 	OVS_FLOW_ATTR_UFID_FLAGS,/* u32 of OVS_UFID_F_*. */ | 661 | 	OVS_FLOW_ATTR_UFID_FLAGS,/* u32 of OVS_UFID_F_*. */ |
| 662 | 	/* private: */ | ||
| 632 | 	OVS_FLOW_ATTR_PAD, | 663 | 	OVS_FLOW_ATTR_PAD, |
| 633 | 	__OVS_FLOW_ATTR_MAX | 664 | 	__OVS_FLOW_ATTR_MAX |
| 634 | }; | 665 | }; |
| 635 | 666 | ||
| 636 | #define OVS_FLOW_ATTR_MAX (__OVS_FLOW_ATTR_MAX - 1) | 667 | #define OVS_FLOW_ATTR_MAX (__OVS_FLOW_ATTR_MAX - 1) |
| 637 | 668 | ||
| 638 | /** | 669 | /* |
| 639 | * Omit attributes for notifications. | 670 | * Omit attributes for notifications. |
| 640 | * | 671 | * |
| 641 | * If a datapath request contains an %OVS_UFID_F_OMIT_* flag, then the datapath | 672 | * If a datapath request contains an %OVS_UFID_F_OMIT_* flag, then the datapath |
| ... | @@ -653,17 +684,23 @@ enum ovs_flow_attr { | ... | @@ -653,17 +684,23 @@ enum ovs_flow_attr { |
| 653 | * fractions of packets. | 684 | * fractions of packets. |
| 654 | * @OVS_SAMPLE_ATTR_ACTIONS: Set of actions to execute in sampling event. | 685 | * @OVS_SAMPLE_ATTR_ACTIONS: Set of actions to execute in sampling event. |
| 655 | * Actions are passed as nested attributes. | 686 | * Actions are passed as nested attributes. |
| 687 | * @OVS_SAMPLE_ATTR_ARG: For in-kernel use, passing &struct sample_arg | ||
| 688 | * derived from other attributes. | ||
| 656 | * | 689 | * |
| 657 | * Executes the specified actions with the given probability on a per-packet | 690 | * Executes the specified actions with the given probability on a per-packet |
| 658 | * basis. Nested actions will be able to access the probability value of the | 691 | * basis. Nested actions will be able to access the probability value of the |
| 659 | * parent @OVS_ACTION_ATTR_SAMPLE. | 692 | * parent @OVS_ACTION_ATTR_SAMPLE. |
| 660 | */ | 693 | */ |
| 661 | enum ovs_sample_attr { | 694 | enum ovs_sample_attr { |
| 695 | 	/* private: */ | ||
| 662 | 	OVS_SAMPLE_ATTR_UNSPEC, | 696 | 	OVS_SAMPLE_ATTR_UNSPEC, |
| 697 | 	/* public: */ | ||
| 663 | 	OVS_SAMPLE_ATTR_PROBABILITY, /* u32 number */ | 698 | 	OVS_SAMPLE_ATTR_PROBABILITY, /* u32 number */ |
| 664 | 	OVS_SAMPLE_ATTR_ACTIONS, /* Nested OVS_ACTION_ATTR_* attributes. */ | 699 | 	OVS_SAMPLE_ATTR_ACTIONS, /* Nested OVS_ACTION_ATTR_* attributes. */ |
| 700 | 	/* private: */ | ||
| 665 | 	__OVS_SAMPLE_ATTR_MAX, | 701 | 	__OVS_SAMPLE_ATTR_MAX, |
| 666 | 702 | ||
| 703 | 	/* public: */ | ||
| 667 | }; | 704 | }; |
| 668 | 705 | ||
| 669 | #define OVS_SAMPLE_ATTR_MAX (__OVS_SAMPLE_ATTR_MAX - 1) | 706 | #define OVS_SAMPLE_ATTR_MAX (__OVS_SAMPLE_ATTR_MAX - 1) |
| ... | @@ -680,12 +717,15 @@ enum ovs_sample_attr { | ... | @@ -680,12 +717,15 @@ enum ovs_sample_attr { |
| 680 | * @OVS_USERSPACE_ATTR_ACTIONS: If present, send actions with upcall. | 717 | * @OVS_USERSPACE_ATTR_ACTIONS: If present, send actions with upcall. |
| 681 | */ | 718 | */ |
| 682 | enum ovs_userspace_attr { | 719 | enum ovs_userspace_attr { |
| 720 | 	/* private: */ | ||
| 683 | 	OVS_USERSPACE_ATTR_UNSPEC, | 721 | 	OVS_USERSPACE_ATTR_UNSPEC, |
| 722 | 	/* public: */ | ||
| 684 | 	OVS_USERSPACE_ATTR_PID,	 /* u32 Netlink PID to receive upcalls. */ | 723 | 	OVS_USERSPACE_ATTR_PID,	 /* u32 Netlink PID to receive upcalls. */ |
| 685 | 	OVS_USERSPACE_ATTR_USERDATA, /* Optional user-specified cookie. */ | 724 | 	OVS_USERSPACE_ATTR_USERDATA, /* Optional user-specified cookie. */ |
| 686 | 	OVS_USERSPACE_ATTR_EGRESS_TUN_PORT, /* Optional, u32 output port | 725 | 	OVS_USERSPACE_ATTR_EGRESS_TUN_PORT, /* Optional, u32 output port |
| 687 | 					 * to get tunnel info. */ | 726 | 					 * to get tunnel info. */ |
| 688 | 	OVS_USERSPACE_ATTR_ACTIONS, /* Optional flag to get actions. */ | 727 | 	OVS_USERSPACE_ATTR_ACTIONS, /* Optional flag to get actions. */ |
| 728 | 	/* private: */ | ||
| 689 | 	__OVS_USERSPACE_ATTR_MAX | 729 | 	__OVS_USERSPACE_ATTR_MAX |
| 690 | }; | 730 | }; |
| 691 | 731 | ||
| ... | @@ -806,7 +846,9 @@ struct ovs_action_hash { | ... | @@ -806,7 +846,9 @@ struct ovs_action_hash { |
| 806 | * @OVS_CT_ATTR_TIMEOUT: Variable length string defining conntrack timeout. | 846 | * @OVS_CT_ATTR_TIMEOUT: Variable length string defining conntrack timeout. |
| 807 | */ | 847 | */ |
| 808 | enum ovs_ct_attr { | 848 | enum ovs_ct_attr { |
| 849 | 	/* private: */ | ||
| 809 | 	OVS_CT_ATTR_UNSPEC, | 850 | 	OVS_CT_ATTR_UNSPEC, |
| 851 | 	/* public: */ | ||
| 810 | 	OVS_CT_ATTR_COMMIT, /* No argument, commits connection. */ | 852 | 	OVS_CT_ATTR_COMMIT, /* No argument, commits connection. */ |
| 811 | 	OVS_CT_ATTR_ZONE, /* u16 zone id. */ | 853 | 	OVS_CT_ATTR_ZONE, /* u16 zone id. */ |
| 812 | 	OVS_CT_ATTR_MARK, /* mark to associate with this connection. */ | 854 | 	OVS_CT_ATTR_MARK, /* mark to associate with this connection. */ |
| ... | @@ -818,6 +860,7 @@ enum ovs_ct_attr { | ... | @@ -818,6 +860,7 @@ enum ovs_ct_attr { |
| 818 | 	OVS_CT_ATTR_EVENTMASK, /* u32 mask of IPCT_* events. */ | 860 | 	OVS_CT_ATTR_EVENTMASK, /* u32 mask of IPCT_* events. */ |
| 819 | 	OVS_CT_ATTR_TIMEOUT,	/* Associate timeout with this connection for | 861 | 	OVS_CT_ATTR_TIMEOUT,	/* Associate timeout with this connection for |
| 820 | 				 * fine-grain timeout tuning. */ | 862 | 				 * fine-grain timeout tuning. */ |
| 863 | 	/* private: */ | ||
| 821 | 	__OVS_CT_ATTR_MAX | 864 | 	__OVS_CT_ATTR_MAX |
| 822 | }; | 865 | }; |
| 823 | 866 | ||
| ... | @@ -846,7 +889,9 @@ enum ovs_ct_attr { | ... | @@ -846,7 +889,9 @@ enum ovs_ct_attr { |
| 846 | * @OVS_NAT_ATTR_PROTO_RANDOM: Flag for fully randomized L4 port mapping | 889 | * @OVS_NAT_ATTR_PROTO_RANDOM: Flag for fully randomized L4 port mapping |
| 847 | */ | 890 | */ |
| 848 | enum ovs_nat_attr { | 891 | enum ovs_nat_attr { |
| 892 | 	/* private: */ | ||
| 849 | 	OVS_NAT_ATTR_UNSPEC, | 893 | 	OVS_NAT_ATTR_UNSPEC, |
| 894 | 	/* public: */ | ||
| 850 | 	OVS_NAT_ATTR_SRC, | 895 | 	OVS_NAT_ATTR_SRC, |
| 851 | 	OVS_NAT_ATTR_DST, | 896 | 	OVS_NAT_ATTR_DST, |
| 852 | 	OVS_NAT_ATTR_IP_MIN, | 897 | 	OVS_NAT_ATTR_IP_MIN, |
| ... | @@ -856,38 +901,44 @@ enum ovs_nat_attr { | ... | @@ -856,38 +901,44 @@ enum ovs_nat_attr { |
| 856 | 	OVS_NAT_ATTR_PERSISTENT, | 901 | 	OVS_NAT_ATTR_PERSISTENT, |
| 857 | 	OVS_NAT_ATTR_PROTO_HASH, | 902 | 	OVS_NAT_ATTR_PROTO_HASH, |
| 858 | 	OVS_NAT_ATTR_PROTO_RANDOM, | 903 | 	OVS_NAT_ATTR_PROTO_RANDOM, |
| 904 | 	/* private: */ | ||
| 859 | 	__OVS_NAT_ATTR_MAX, | 905 | 	__OVS_NAT_ATTR_MAX, |
| 860 | }; | 906 | }; |
| 861 | 907 | ||
| 862 | #define OVS_NAT_ATTR_MAX (__OVS_NAT_ATTR_MAX - 1) | 908 | #define OVS_NAT_ATTR_MAX (__OVS_NAT_ATTR_MAX - 1) |
| 863 | 909 | ||
| 864 | /* | 910 | /** |
| 865 | * struct ovs_action_push_eth - %OVS_ACTION_ATTR_PUSH_ETH action argument. | 911 | * struct ovs_action_push_eth - %OVS_ACTION_ATTR_PUSH_ETH action argument. |
| 866 | * @addresses: Source and destination MAC addresses. | 912 | * @addresses: Source and destination MAC addresses. |
| 867 | * @eth_type: Ethernet type | ||
| 868 | */ | 913 | */ |
| 869 | struct ovs_action_push_eth { | 914 | struct ovs_action_push_eth { |
| 870 | 	struct ovs_key_ethernet addresses; | 915 | 	struct ovs_key_ethernet addresses; |
| 871 | }; | 916 | }; |
| 872 | 917 | ||
| 873 | /* | 918 | /** |
| 874 | * enum ovs_check_pkt_len_attr - Attributes for %OVS_ACTION_ATTR_CHECK_PKT_LEN. | 919 | * enum ovs_check_pkt_len_attr - Attributes for %OVS_ACTION_ATTR_CHECK_PKT_LEN. |
| 875 | * | 920 | * |
| 876 | * @OVS_CHECK_PKT_LEN_ATTR_PKT_LEN: u16 Packet length to check for. | 921 | * @OVS_CHECK_PKT_LEN_ATTR_PKT_LEN: u16 Packet length to check for. |
| 877 | * @OVS_CHECK_PKT_LEN_ATTR_ACTIONS_IF_GREATER: Nested OVS_ACTION_ATTR_* | 922 | * @OVS_CHECK_PKT_LEN_ATTR_ACTIONS_IF_GREATER: Nested OVS_ACTION_ATTR_* |
| 878 | * actions to apply if the packer length is greater than the specified | 923 | * actions to apply if the packer length is greater than the specified |
| 879 | * length in the attr - OVS_CHECK_PKT_LEN_ATTR_PKT_LEN. | 924 | * length in the attr - OVS_CHECK_PKT_LEN_ATTR_PKT_LEN. |
| 880 | * @OVS_CHECK_PKT_LEN_ATTR_ACTIONS_IF_LESS_EQUAL - Nested OVS_ACTION_ATTR_* | 925 | * @OVS_CHECK_PKT_LEN_ATTR_ACTIONS_IF_LESS_EQUAL: Nested OVS_ACTION_ATTR_* |
| 881 | * actions to apply if the packer length is lesser or equal to the specified | 926 | * actions to apply if the packer length is lesser or equal to the specified |
| 882 | * length in the attr - OVS_CHECK_PKT_LEN_ATTR_PKT_LEN. | 927 | * length in the attr - OVS_CHECK_PKT_LEN_ATTR_PKT_LEN. |
| 928 | * @OVS_CHECK_PKT_LEN_ATTR_ARG: For in-kernel use, passing &struct | ||
| 929 | * check_pkt_len_arg derived from other attributes. | ||
| 883 | */ | 930 | */ |
| 884 | enum ovs_check_pkt_len_attr { | 931 | enum ovs_check_pkt_len_attr { |
| 932 | 	/* private: */ | ||
| 885 | 	OVS_CHECK_PKT_LEN_ATTR_UNSPEC, | 933 | 	OVS_CHECK_PKT_LEN_ATTR_UNSPEC, |
| 934 | 	/* public: */ | ||
| 886 | 	OVS_CHECK_PKT_LEN_ATTR_PKT_LEN, | 935 | 	OVS_CHECK_PKT_LEN_ATTR_PKT_LEN, |
| 887 | 	OVS_CHECK_PKT_LEN_ATTR_ACTIONS_IF_GREATER, | 936 | 	OVS_CHECK_PKT_LEN_ATTR_ACTIONS_IF_GREATER, |
| 888 | 	OVS_CHECK_PKT_LEN_ATTR_ACTIONS_IF_LESS_EQUAL, | 937 | 	OVS_CHECK_PKT_LEN_ATTR_ACTIONS_IF_LESS_EQUAL, |
| 938 | 	/* private: */ | ||
| 889 | 	__OVS_CHECK_PKT_LEN_ATTR_MAX, | 939 | 	__OVS_CHECK_PKT_LEN_ATTR_MAX, |
| 890 | 940 | ||
| 941 | 	/* public: */ | ||
| 891 | }; | 942 | }; |
| 892 | 943 | ||
| 893 | #define OVS_CHECK_PKT_LEN_ATTR_MAX (__OVS_CHECK_PKT_LEN_ATTR_MAX - 1) | 944 | #define OVS_CHECK_PKT_LEN_ATTR_MAX (__OVS_CHECK_PKT_LEN_ATTR_MAX - 1) |
| ... | @@ -940,6 +991,9 @@ enum ovs_psample_attr { | ... | @@ -940,6 +991,9 @@ enum ovs_psample_attr { |
| 940 | * from the packet. | 991 | * from the packet. |
| 941 | * @OVS_ACTION_ATTR_SAMPLE: Probabilitically executes actions, as specified in | 992 | * @OVS_ACTION_ATTR_SAMPLE: Probabilitically executes actions, as specified in |
| 942 | * the nested %OVS_SAMPLE_ATTR_* attributes. | 993 | * the nested %OVS_SAMPLE_ATTR_* attributes. |
| 994 | * @OVS_ACTION_ATTR_RECIRC: Recirculate the clone of the packet through the | ||
| 995 | * datapath with the new id (u32 recirc_id). | ||
| 996 | * @OVS_ACTION_ATTR_HASH: Compute the packet hash, using &struct ovs_action_hash. | ||
| 943 | * @OVS_ACTION_ATTR_PUSH_MPLS: Push a new MPLS label stack entry onto the | 997 | * @OVS_ACTION_ATTR_PUSH_MPLS: Push a new MPLS label stack entry onto the |
| 944 | * top of the packets MPLS label stack. Set the ethertype of the | 998 | * top of the packets MPLS label stack. Set the ethertype of the |
| 945 | * encapsulating frame to either %ETH_P_MPLS_UC or %ETH_P_MPLS_MC to | 999 | * encapsulating frame to either %ETH_P_MPLS_UC or %ETH_P_MPLS_MC to |
| ... | @@ -969,6 +1023,8 @@ enum ovs_psample_attr { | ... | @@ -969,6 +1023,8 @@ enum ovs_psample_attr { |
| 969 | * start of the packet or at the start of the l3 header depending on the value | 1023 | * start of the packet or at the start of the l3 header depending on the value |
| 970 | * of l3 tunnel flag in the tun_flags field of OVS_ACTION_ATTR_ADD_MPLS | 1024 | * of l3 tunnel flag in the tun_flags field of OVS_ACTION_ATTR_ADD_MPLS |
| 971 | * argument. | 1025 | * argument. |
| 1026 | * @OVS_ACTION_ATTR_DEC_TTL: Decrement TTL or hop limit of the packet. Execute | ||
| 1027 | * nested %OVS_DEC_TTL_ATTR_* actions if the value is less or equal to 1. | ||
| 972 | * @OVS_ACTION_ATTR_DROP: Explicit drop action. | 1028 | * @OVS_ACTION_ATTR_DROP: Explicit drop action. |
| 973 | * @OVS_ACTION_ATTR_PSAMPLE: Send a sample of the packet to external observers | 1029 | * @OVS_ACTION_ATTR_PSAMPLE: Send a sample of the packet to external observers |
| 974 | * via psample. | 1030 | * via psample. |
| ... | @@ -982,7 +1038,9 @@ enum ovs_psample_attr { | ... | @@ -982,7 +1038,9 @@ enum ovs_psample_attr { |
| 982 | */ | 1038 | */ |
| 983 | 1039 | ||
| 984 | enum ovs_action_attr { | 1040 | enum ovs_action_attr { |
| 1041 | 	/* private: */ | ||
| 985 | 	OVS_ACTION_ATTR_UNSPEC, | 1042 | 	OVS_ACTION_ATTR_UNSPEC, |
| 1043 | 	/* public: */ | ||
| 986 | 	OVS_ACTION_ATTR_OUTPUT,	 /* u32 port number. */ | 1044 | 	OVS_ACTION_ATTR_OUTPUT,	 /* u32 port number. */ |
| 987 | 	OVS_ACTION_ATTR_USERSPACE, /* Nested OVS_USERSPACE_ATTR_*. */ | 1045 | 	OVS_ACTION_ATTR_USERSPACE, /* Nested OVS_USERSPACE_ATTR_*. */ |
| 988 | 	OVS_ACTION_ATTR_SET, /* One nested OVS_KEY_ATTR_*. */ | 1046 | 	OVS_ACTION_ATTR_SET, /* One nested OVS_KEY_ATTR_*. */ |
| ... | @@ -1012,9 +1070,11 @@ enum ovs_action_attr { | ... | @@ -1012,9 +1070,11 @@ enum ovs_action_attr { |
| 1012 | 	OVS_ACTION_ATTR_DROP, /* u32 error code. */ | 1070 | 	OVS_ACTION_ATTR_DROP, /* u32 error code. */ |
| 1013 | 	OVS_ACTION_ATTR_PSAMPLE, /* Nested OVS_PSAMPLE_ATTR_*. */ | 1071 | 	OVS_ACTION_ATTR_PSAMPLE, /* Nested OVS_PSAMPLE_ATTR_*. */ |
| 1014 | 1072 | ||
| 1073 | 	/* private: */ | ||
| 1015 | 	__OVS_ACTION_ATTR_MAX,	 /* Nothing past this will be accepted | 1074 | 	__OVS_ACTION_ATTR_MAX,	 /* Nothing past this will be accepted |
| 1016 | 				 * from userspace. */ | 1075 | 				 * from userspace. */ |
| 1017 | 1076 | ||
| 1077 | 	/* public: */ | ||
| 1018 | }; | 1078 | }; |
| 1019 | 1079 | ||
| 1020 | #define OVS_ACTION_ATTR_MAX (__OVS_ACTION_ATTR_MAX - 1) | 1080 | #define OVS_ACTION_ATTR_MAX (__OVS_ACTION_ATTR_MAX - 1) |
lib/libc/include/any-linux-any/linux/ovpn.h+2| ... | @@ -55,6 +55,7 @@ enum { | ... | @@ -55,6 +55,7 @@ enum { |
| 55 | 	OVPN_A_PEER_LINK_TX_BYTES, | 55 | 	OVPN_A_PEER_LINK_TX_BYTES, |
| 56 | 	OVPN_A_PEER_LINK_RX_PACKETS, | 56 | 	OVPN_A_PEER_LINK_RX_PACKETS, |
| 57 | 	OVPN_A_PEER_LINK_TX_PACKETS, | 57 | 	OVPN_A_PEER_LINK_TX_PACKETS, |
| 58 | 	OVPN_A_PEER_TX_ID, | ||
| 58 | 59 | ||
| 59 | 	__OVPN_A_PEER_MAX, | 60 | 	__OVPN_A_PEER_MAX, |
| 60 | 	OVPN_A_PEER_MAX = (__OVPN_A_PEER_MAX - 1) | 61 | 	OVPN_A_PEER_MAX = (__OVPN_A_PEER_MAX - 1) |
| ... | @@ -100,6 +101,7 @@ enum { | ... | @@ -100,6 +101,7 @@ enum { |
| 100 | 	OVPN_CMD_KEY_SWAP, | 101 | 	OVPN_CMD_KEY_SWAP, |
| 101 | 	OVPN_CMD_KEY_SWAP_NTF, | 102 | 	OVPN_CMD_KEY_SWAP_NTF, |
| 102 | 	OVPN_CMD_KEY_DEL, | 103 | 	OVPN_CMD_KEY_DEL, |
| 104 | 	OVPN_CMD_PEER_FLOAT_NTF, | ||
| 103 | 105 | ||
| 104 | 	__OVPN_CMD_MAX, | 106 | 	__OVPN_CMD_MAX, |
| 105 | 	OVPN_CMD_MAX = (__OVPN_CMD_MAX - 1) | 107 | 	OVPN_CMD_MAX = (__OVPN_CMD_MAX - 1) |
lib/libc/include/any-linux-any/linux/pidfd.h+4| ... | @@ -24,10 +24,12 @@ | ... | @@ -24,10 +24,12 @@ |
| 24 | #define PIDFD_INFO_COREDUMP		(1UL << 4) /* Only returned if requested. */ | 24 | #define PIDFD_INFO_COREDUMP		(1UL << 4) /* Only returned if requested. */ |
| 25 | #define PIDFD_INFO_SUPPORTED_MASK	(1UL << 5) /* Want/got supported mask flags */ | 25 | #define PIDFD_INFO_SUPPORTED_MASK	(1UL << 5) /* Want/got supported mask flags */ |
| 26 | #define PIDFD_INFO_COREDUMP_SIGNAL	(1UL << 6) /* Always returned if PIDFD_INFO_COREDUMP is requested. */ | 26 | #define PIDFD_INFO_COREDUMP_SIGNAL	(1UL << 6) /* Always returned if PIDFD_INFO_COREDUMP is requested. */ |
| 27 | #define PIDFD_INFO_COREDUMP_CODE	(1UL << 7) /* Always returned if PIDFD_INFO_COREDUMP is requested. */ | ||
| 27 | 28 | ||
| 28 | #define PIDFD_INFO_SIZE_VER0		64 /* sizeof first published struct */ | 29 | #define PIDFD_INFO_SIZE_VER0		64 /* sizeof first published struct */ |
| 29 | #define PIDFD_INFO_SIZE_VER1		72 /* sizeof second published struct */ | 30 | #define PIDFD_INFO_SIZE_VER1		72 /* sizeof second published struct */ |
| 30 | #define PIDFD_INFO_SIZE_VER2		80 /* sizeof third published struct */ | 31 | #define PIDFD_INFO_SIZE_VER2		80 /* sizeof third published struct */ |
| 32 | #define PIDFD_INFO_SIZE_VER3		88 /* sizeof fourth published struct */ | ||
| 31 | 33 | ||
| 32 | /* | 34 | /* |
| 33 | * Values for @coredump_mask in pidfd_info. | 35 | * Values for @coredump_mask in pidfd_info. |
| ... | @@ -94,6 +96,8 @@ struct pidfd_info { | ... | @@ -94,6 +96,8 @@ struct pidfd_info { |
| 94 | 	struct /* coredump info */ { | 96 | 	struct /* coredump info */ { |
| 95 | 		__u32 coredump_mask; | 97 | 		__u32 coredump_mask; |
| 96 | 		__u32 coredump_signal; | 98 | 		__u32 coredump_signal; |
| 99 | 		__u32 coredump_code; | ||
| 100 | 		__u32 coredump_pad; /* align supported_mask to 8 bytes */ | ||
| 97 | 	}; | 101 | 	}; |
| 98 | 	__u64 supported_mask;	/* Mask flags that this kernel supports */ | 102 | 	__u64 supported_mask;	/* Mask flags that this kernel supports */ |
| 99 | }; | 103 | }; |
lib/libc/include/any-linux-any/linux/psp-sev.h+1-1| ... | @@ -277,7 +277,7 @@ struct sev_user_data_snp_wrapped_vlek_hashstick { | ... | @@ -277,7 +277,7 @@ struct sev_user_data_snp_wrapped_vlek_hashstick { |
| 277 | * struct sev_issue_cmd - SEV ioctl parameters | 277 | * struct sev_issue_cmd - SEV ioctl parameters |
| 278 | * | 278 | * |
| 279 | * @cmd: SEV commands to execute | 279 | * @cmd: SEV commands to execute |
| 280 | * @opaque: pointer to the command structure | 280 | * @data: pointer to the command structure |
| 281 | * @error: SEV FW return code on failure | 281 | * @error: SEV FW return code on failure |
| 282 | */ | 282 | */ |
| 283 | struct sev_issue_cmd { | 283 | struct sev_issue_cmd { |
lib/libc/include/any-linux-any/linux/rose.h deleted-91| ... | @@ -1,91 +0,0 @@ | ||
| 1 | /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ | ||
| 2 | /* | ||
| 3 | * These are the public elements of the Linux kernel Rose implementation. | ||
| 4 | * For kernel AX.25 see the file ax25.h. This file requires ax25.h for the | ||
| 5 | * definition of the ax25_address structure. | ||
| 6 | */ | ||
| 7 | |||
| 8 | #ifndef	ROSE_KERNEL_H | ||
| 9 | #define	ROSE_KERNEL_H | ||
| 10 | |||
| 11 | #include <linux/socket.h> | ||
| 12 | #include <linux/ax25.h> | ||
| 13 | |||
| 14 | #define ROSE_MTU	251 | ||
| 15 | |||
| 16 | #define ROSE_MAX_DIGIS 6 | ||
| 17 | |||
| 18 | #define	ROSE_DEFER	1 | ||
| 19 | #define ROSE_T1		2 | ||
| 20 | #define	ROSE_T2		3 | ||
| 21 | #define	ROSE_T3		4 | ||
| 22 | #define	ROSE_IDLE	5 | ||
| 23 | #define	ROSE_QBITINCL	6 | ||
| 24 | #define	ROSE_HOLDBACK	7 | ||
| 25 | |||
| 26 | #define	SIOCRSGCAUSE		(SIOCPROTOPRIVATE+0) | ||
| 27 | #define	SIOCRSSCAUSE		(SIOCPROTOPRIVATE+1) | ||
| 28 | #define	SIOCRSL2CALL		(SIOCPROTOPRIVATE+2) | ||
| 29 | #define	SIOCRSSL2CALL		(SIOCPROTOPRIVATE+2) | ||
| 30 | #define	SIOCRSACCEPT		(SIOCPROTOPRIVATE+3) | ||
| 31 | #define	SIOCRSCLRRT		(SIOCPROTOPRIVATE+4) | ||
| 32 | #define	SIOCRSGL2CALL		(SIOCPROTOPRIVATE+5) | ||
| 33 | #define	SIOCRSGFACILITIES	(SIOCPROTOPRIVATE+6) | ||
| 34 | |||
| 35 | #define	ROSE_DTE_ORIGINATED	0x00 | ||
| 36 | #define	ROSE_NUMBER_BUSY	0x01 | ||
| 37 | #define	ROSE_INVALID_FACILITY	0x03 | ||
| 38 | #define	ROSE_NETWORK_CONGESTION	0x05 | ||
| 39 | #define	ROSE_OUT_OF_ORDER	0x09 | ||
| 40 | #define	ROSE_ACCESS_BARRED	0x0B | ||
| 41 | #define	ROSE_NOT_OBTAINABLE	0x0D | ||
| 42 | #define	ROSE_REMOTE_PROCEDURE	0x11 | ||
| 43 | #define	ROSE_LOCAL_PROCEDURE	0x13 | ||
| 44 | #define	ROSE_SHIP_ABSENT	0x39 | ||
| 45 | |||
| 46 | typedef struct { | ||
| 47 | 	char		rose_addr[5]; | ||
| 48 | } rose_address; | ||
| 49 | |||
| 50 | struct sockaddr_rose { | ||
| 51 | 	__kernel_sa_family_t srose_family; | ||
| 52 | 	rose_address	srose_addr; | ||
| 53 | 	ax25_address	srose_call; | ||
| 54 | 	int		srose_ndigis; | ||
| 55 | 	ax25_address	srose_digi; | ||
| 56 | }; | ||
| 57 | |||
| 58 | struct full_sockaddr_rose { | ||
| 59 | 	__kernel_sa_family_t srose_family; | ||
| 60 | 	rose_address	srose_addr; | ||
| 61 | 	ax25_address	srose_call; | ||
| 62 | 	unsigned int	srose_ndigis; | ||
| 63 | 	ax25_address	srose_digis[ROSE_MAX_DIGIS]; | ||
| 64 | }; | ||
| 65 | |||
| 66 | struct rose_route_struct { | ||
| 67 | 	rose_address	address; | ||
| 68 | 	unsigned short	mask; | ||
| 69 | 	ax25_address	neighbour; | ||
| 70 | 	char		device[16]; | ||
| 71 | 	unsigned char	ndigis; | ||
| 72 | 	ax25_address	digipeaters[AX25_MAX_DIGIS]; | ||
| 73 | }; | ||
| 74 | |||
| 75 | struct rose_cause_struct { | ||
| 76 | 	unsigned char	cause; | ||
| 77 | 	unsigned char	diagnostic; | ||
| 78 | }; | ||
| 79 | |||
| 80 | struct rose_facilities_struct { | ||
| 81 | 	rose_address	source_addr, dest_addr; | ||
| 82 | 	ax25_address	source_call, dest_call; | ||
| 83 | 	unsigned char	source_ndigis, dest_ndigis; | ||
| 84 | 	ax25_address	source_digis[ROSE_MAX_DIGIS]; | ||
| 85 | 	ax25_address	dest_digis[ROSE_MAX_DIGIS]; | ||
| 86 | 	unsigned int	rand; | ||
| 87 | 	rose_address	fail_addr; | ||
| 88 | 	ax25_address	fail_call; | ||
| 89 | }; | ||
| 90 | |||
| 91 | #endif | ||
| \ No newline at end of file | |||
lib/libc/include/any-linux-any/linux/rseq.h+4-1| ... | @@ -28,7 +28,7 @@ enum rseq_cs_flags_bit { | ... | @@ -28,7 +28,7 @@ enum rseq_cs_flags_bit { |
| 28 | 	RSEQ_CS_FLAG_NO_RESTART_ON_PREEMPT_BIT	= 0, | 28 | 	RSEQ_CS_FLAG_NO_RESTART_ON_PREEMPT_BIT	= 0, |
| 29 | 	RSEQ_CS_FLAG_NO_RESTART_ON_SIGNAL_BIT	= 1, | 29 | 	RSEQ_CS_FLAG_NO_RESTART_ON_SIGNAL_BIT	= 1, |
| 30 | 	RSEQ_CS_FLAG_NO_RESTART_ON_MIGRATE_BIT	= 2, | 30 | 	RSEQ_CS_FLAG_NO_RESTART_ON_MIGRATE_BIT	= 2, |
| 31 | 	/* (3) Intentional gap to put new bits into a separate byte */ | 31 | 	/* (3) Intentional gap to keep new bits separate */ |
| 32 | 32 | ||
| 33 | 	/* User read only feature flags */ | 33 | 	/* User read only feature flags */ |
| 34 | 	RSEQ_CS_FLAG_SLICE_EXT_AVAILABLE_BIT	= 4, | 34 | 	RSEQ_CS_FLAG_SLICE_EXT_AVAILABLE_BIT	= 4, |
| ... | @@ -161,6 +161,9 @@ struct rseq { | ... | @@ -161,6 +161,9 @@ struct rseq { |
| 161 | 	 *	- RSEQ_CS_FLAG_NO_RESTART_ON_PREEMPT | 161 | 	 *	- RSEQ_CS_FLAG_NO_RESTART_ON_PREEMPT |
| 162 | 	 *	- RSEQ_CS_FLAG_NO_RESTART_ON_SIGNAL | 162 | 	 *	- RSEQ_CS_FLAG_NO_RESTART_ON_SIGNAL |
| 163 | 	 *	- RSEQ_CS_FLAG_NO_RESTART_ON_MIGRATE | 163 | 	 *	- RSEQ_CS_FLAG_NO_RESTART_ON_MIGRATE |
| 164 | 	 * | ||
| 165 | 	 * It is now used for feature status advertisement by the kernel. | ||
| 166 | 	 * See: enum rseq_cs_flags_bit for further information. | ||
| 164 | 	 */ | 167 | 	 */ |
| 165 | 	__u32 flags; | 168 | 	__u32 flags; |
| 166 | 169 |
lib/libc/include/any-linux-any/linux/scc.h deleted-174| ... | @@ -1,174 +0,0 @@ | ||
| 1 | /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ | ||
| 2 | /* $Id: scc.h,v 1.29 1997/04/02 14:56:45 jreuter Exp jreuter $ */ | ||
| 3 | |||
| 4 | #ifndef _SCC_H | ||
| 5 | #define _SCC_H | ||
| 6 | |||
| 7 | #include <linux/sockios.h> | ||
| 8 | |||
| 9 | /* selection of hardware types */ | ||
| 10 | |||
| 11 | #define PA0HZP		0x00	/* hardware type for PA0HZP SCC card and compatible */ | ||
| 12 | #define EAGLE		0x01 /* hardware type for EAGLE card */ | ||
| 13 | #define PC100		0x02	/* hardware type for PC100 card */ | ||
| 14 | #define PRIMUS		0x04	/* hardware type for PRIMUS-PC (DG9BL) card */ | ||
| 15 | #define DRSI		0x08	/* hardware type for DRSI PC*Packet card */ | ||
| 16 | #define BAYCOM		0x10	/* hardware type for BayCom (U)SCC */ | ||
| 17 | |||
| 18 | /* DEV ioctl() commands */ | ||
| 19 | |||
| 20 | enum SCC_ioctl_cmds { | ||
| 21 | 	SIOCSCCRESERVED = SIOCDEVPRIVATE, | ||
| 22 | 	SIOCSCCCFG, | ||
| 23 | 	SIOCSCCINI, | ||
| 24 | 	SIOCSCCCHANINI, | ||
| 25 | 	SIOCSCCSMEM, | ||
| 26 | 	SIOCSCCGKISS, | ||
| 27 | 	SIOCSCCSKISS, | ||
| 28 | 	SIOCSCCGSTAT, | ||
| 29 | 	SIOCSCCCAL | ||
| 30 | }; | ||
| 31 | |||
| 32 | /* Device parameter control (from WAMPES) */ | ||
| 33 | |||
| 34 | enum L1_params { | ||
| 35 | 	PARAM_DATA, | ||
| 36 | 	PARAM_TXDELAY, | ||
| 37 | 	PARAM_PERSIST, | ||
| 38 | 	PARAM_SLOTTIME, | ||
| 39 | 	PARAM_TXTAIL, | ||
| 40 | 	PARAM_FULLDUP, | ||
| 41 | 	PARAM_SOFTDCD,		/* was: PARAM_HW */ | ||
| 42 | 	PARAM_MUTE,		/* ??? */ | ||
| 43 | 	PARAM_DTR, | ||
| 44 | 	PARAM_RTS, | ||
| 45 | 	PARAM_SPEED, | ||
| 46 | 	PARAM_ENDDELAY,		/* ??? */ | ||
| 47 | 	PARAM_GROUP, | ||
| 48 | 	PARAM_IDLE, | ||
| 49 | 	PARAM_MIN, | ||
| 50 | 	PARAM_MAXKEY, | ||
| 51 | 	PARAM_WAIT, | ||
| 52 | 	PARAM_MAXDEFER, | ||
| 53 | 	PARAM_TX, | ||
| 54 | 	PARAM_HWEVENT = 31, | ||
| 55 | 	PARAM_RETURN = 255	/* reset kiss mode */ | ||
| 56 | }; | ||
| 57 | |||
| 58 | /* fulldup parameter */ | ||
| 59 | |||
| 60 | enum FULLDUP_modes { | ||
| 61 | 	KISS_DUPLEX_HALF,	/* normal CSMA operation */ | ||
| 62 | 	KISS_DUPLEX_FULL,	/* fullduplex, key down trx after transmission */ | ||
| 63 | 	KISS_DUPLEX_LINK,	/* fullduplex, key down trx after 'idletime' sec */ | ||
| 64 | 	KISS_DUPLEX_OPTIMA	/* fullduplex, let the protocol layer control the hw */ | ||
| 65 | }; | ||
| 66 | |||
| 67 | /* misc. parameters */ | ||
| 68 | |||
| 69 | #define TIMER_OFF	65535U	/* to switch off timers */ | ||
| 70 | #define NO_SUCH_PARAM	65534U	/* param not implemented */ | ||
| 71 | |||
| 72 | /* HWEVENT parameter */ | ||
| 73 | |||
| 74 | enum HWEVENT_opts { | ||
| 75 | 	HWEV_DCD_ON, | ||
| 76 | 	HWEV_DCD_OFF, | ||
| 77 | 	HWEV_ALL_SENT | ||
| 78 | }; | ||
| 79 | |||
| 80 | /* channel grouping */ | ||
| 81 | |||
| 82 | #define RXGROUP		0100	/* if set, only tx when all channels clear */ | ||
| 83 | #define TXGROUP		0200	/* if set, don't transmit simultaneously */ | ||
| 84 | |||
| 85 | /* Tx/Rx clock sources */ | ||
| 86 | |||
| 87 | enum CLOCK_sources { | ||
| 88 | 	CLK_DPLL,	/* normal halfduplex operation */ | ||
| 89 | 	CLK_EXTERNAL,	/* external clocking (G3RUH/DF9IC modems) */ | ||
| 90 | 	CLK_DIVIDER,	/* Rx = DPLL, Tx = divider (fullduplex with */ | ||
| 91 | 			/* modems without clock regeneration */ | ||
| 92 | 	CLK_BRG		/* experimental fullduplex mode with DPLL/BRG for */ | ||
| 93 | 			/* MODEMs without clock recovery */ | ||
| 94 | }; | ||
| 95 | |||
| 96 | /* Tx state */ | ||
| 97 | |||
| 98 | enum TX_state { | ||
| 99 | 	TXS_IDLE,	/* Transmitter off, no data pending */ | ||
| 100 | 	TXS_BUSY,	/* waiting for permission to send / tailtime */ | ||
| 101 | 	TXS_ACTIVE,	/* Transmitter on, sending data */ | ||
| 102 | 	TXS_NEWFRAME,	/* reset CRC and send (next) frame */ | ||
| 103 | 	TXS_IDLE2,	/* Transmitter on, no data pending */ | ||
| 104 | 	TXS_WAIT,	/* Waiting for Mintime to expire */ | ||
| 105 | 	TXS_TIMEOUT	/* We had a transmission timeout */ | ||
| 106 | }; | ||
| 107 | |||
| 108 | typedef unsigned long io_port;	/* type definition for an 'io port address' */ | ||
| 109 | |||
| 110 | /* SCC statistical information */ | ||
| 111 | |||
| 112 | struct scc_stat { | ||
| 113 | long rxints; /* Receiver interrupts */ | ||
| 114 | long txints; /* Transmitter interrupts */ | ||
| 115 | long exints; /* External/status interrupts */ | ||
| 116 | long spints; /* Special receiver interrupts */ | ||
| 117 | |||
| 118 | long txframes; /* Packets sent */ | ||
| 119 | long rxframes; /* Number of Frames Actually Received */ | ||
| 120 | long rxerrs; /* CRC Errors */ | ||
| 121 | long txerrs;		/* KISS errors */ | ||
| 122 | |||
| 123 | 	unsigned int nospace;	/* "Out of buffers" */ | ||
| 124 | 	unsigned int rx_over;	/* Receiver Overruns */ | ||
| 125 | 	unsigned int tx_under;	/* Transmitter Underruns */ | ||
| 126 | |||
| 127 | 	unsigned int tx_state;	/* Transmitter state */ | ||
| 128 | 	int tx_queued;		/* tx frames enqueued */ | ||
| 129 | |||
| 130 | 	unsigned int maxqueue;	/* allocated tx_buffers */ | ||
| 131 | 	unsigned int bufsize;	/* used buffersize */ | ||
| 132 | }; | ||
| 133 | |||
| 134 | struct scc_modem { | ||
| 135 | 	long speed;		/* Line speed, bps */ | ||
| 136 | 	char clocksrc;		/* 0 = DPLL, 1 = external, 2 = divider */ | ||
| 137 | 	char nrz;		/* NRZ instead of NRZI */	 | ||
| 138 | }; | ||
| 139 | |||
| 140 | struct scc_kiss_cmd { | ||
| 141 | 	int 	 command;	/* one of the KISS-Commands defined above */ | ||
| 142 | 	unsigned param;		/* KISS-Param */ | ||
| 143 | }; | ||
| 144 | |||
| 145 | struct scc_hw_config { | ||
| 146 | 	io_port data_a;		/* data port channel A */ | ||
| 147 | 	io_port ctrl_a;		/* control port channel A */ | ||
| 148 | 	io_port data_b;		/* data port channel B */ | ||
| 149 | 	io_port ctrl_b;		/* control port channel B */ | ||
| 150 | 	io_port vector_latch;	/* INTACK-Latch (#) */ | ||
| 151 | 	io_port	special;	/* special function port */ | ||
| 152 | |||
| 153 | 	int	irq;		/* irq */ | ||
| 154 | 	long	clock;		/* clock */ | ||
| 155 | 	char	option;		/* command for function port */ | ||
| 156 | |||
| 157 | 	char brand;		/* hardware type */ | ||
| 158 | 	char escc;		/* use ext. features of a 8580/85180/85280 */ | ||
| 159 | }; | ||
| 160 | |||
| 161 | /* (#) only one INTACK latch allowed. */ | ||
| 162 | |||
| 163 | |||
| 164 | struct scc_mem_config { | ||
| 165 | 	unsigned int dummy; | ||
| 166 | 	unsigned int bufsize; | ||
| 167 | }; | ||
| 168 | |||
| 169 | struct scc_calibrate { | ||
| 170 | 	unsigned int time; | ||
| 171 | 	unsigned char pattern; | ||
| 172 | }; | ||
| 173 | |||
| 174 | #endif /* _SCC_H */ | ||
| \ No newline at end of file | |||
lib/libc/include/any-linux-any/linux/sched.h+15-2| ... | @@ -34,8 +34,12 @@ | ... | @@ -34,8 +34,12 @@ |
| 34 | #define CLONE_IO		0x80000000	/* Clone io context */ | 34 | #define CLONE_IO		0x80000000	/* Clone io context */ |
| 35 | 35 | ||
| 36 | /* Flags for the clone3() syscall. */ | 36 | /* Flags for the clone3() syscall. */ |
| 37 | #define CLONE_CLEAR_SIGHAND 0x100000000ULL /* Clear any signal handler and reset to SIG_DFL. */ | 37 | #define CLONE_CLEAR_SIGHAND	(1ULL << 32) /* Clear any signal handler and reset to SIG_DFL. */ |
| 38 | #define CLONE_INTO_CGROUP 0x200000000ULL /* Clone into a specific cgroup given the right permissions. */ | 38 | #define CLONE_INTO_CGROUP	(1ULL << 33) /* Clone into a specific cgroup given the right permissions. */ |
| 39 | #define CLONE_AUTOREAP		(1ULL << 34) /* Auto-reap child on exit. */ | ||
| 40 | #define CLONE_NNP		(1ULL << 35) /* Set no_new_privs on child. */ | ||
| 41 | #define CLONE_PIDFD_AUTOKILL	(1ULL << 36) /* Kill child when clone pidfd closes. */ | ||
| 42 | #define CLONE_EMPTY_MNTNS	(1ULL << 37) /* Create an empty mount namespace. */ | ||
| 39 | 43 | ||
| 40 | /* | 44 | /* |
| 41 | * cloning flags intersect with CSIGNAL so can be used with unshare and clone3 | 45 | * cloning flags intersect with CSIGNAL so can be used with unshare and clone3 |
| ... | @@ -43,6 +47,12 @@ | ... | @@ -43,6 +47,12 @@ |
| 43 | */ | 47 | */ |
| 44 | #define CLONE_NEWTIME	0x00000080	/* New time namespace */ | 48 | #define CLONE_NEWTIME	0x00000080	/* New time namespace */ |
| 45 | 49 | ||
| 50 | /* | ||
| 51 | * unshare flags share the bit space with clone flags but only apply to the | ||
| 52 | * unshare syscall: | ||
| 53 | */ | ||
| 54 | #define UNSHARE_EMPTY_MNTNS 0x00100000 /* Unshare an empty mount namespace. */ | ||
| 55 | |||
| 46 | #ifndef __ASSEMBLY__ | 56 | #ifndef __ASSEMBLY__ |
| 47 | /** | 57 | /** |
| 48 | * struct clone_args - arguments for the clone3 syscall | 58 | * struct clone_args - arguments for the clone3 syscall |
| ... | @@ -146,4 +156,7 @@ struct clone_args { | ... | @@ -146,4 +156,7 @@ struct clone_args { |
| 146 | 			 SCHED_FLAG_KEEP_ALL		| \ | 156 | 			 SCHED_FLAG_KEEP_ALL		| \ |
| 147 | 			 SCHED_FLAG_UTIL_CLAMP) | 157 | 			 SCHED_FLAG_UTIL_CLAMP) |
| 148 | 158 | ||
| 159 | /* Only for sched_getattr() own flag param, if task is SCHED_DEADLINE */ | ||
| 160 | #define SCHED_GETATTR_FLAG_DL_DYNAMIC	0x01 | ||
| 161 | |||
| 149 | #endif /* _LINUX_SCHED_H */ | 162 | #endif /* _LINUX_SCHED_H */ |
| \ No newline at end of file | |||
lib/libc/include/any-linux-any/linux/sed-opal.h+30| ... | @@ -74,6 +74,19 @@ struct opal_lr_act { | ... | @@ -74,6 +74,19 @@ struct opal_lr_act { |
| 74 | 	__u8 align[2]; /* Align to 8 byte boundary */ | 74 | 	__u8 align[2]; /* Align to 8 byte boundary */ |
| 75 | }; | 75 | }; |
| 76 | 76 | ||
| 77 | struct opal_lr_react { | ||
| 78 | 	struct opal_key key; | ||
| 79 | 	struct opal_key new_admin_key; /* Set new Admin1 PIN if key_len is > 0 */ | ||
| 80 | 	__u8 num_lrs; /* | ||
| 81 | 		 * Configure selected ranges (from lr[]) in SUM. | ||
| 82 | 		 * If num_lrs > 0 the 'entire_table' must be 0 | ||
| 83 | 		 */ | ||
| 84 | 	__u8 lr[OPAL_MAX_LRS]; | ||
| 85 | 	__u8 range_policy; /* Set RangeStartRangeLengthPolicy parameter */ | ||
| 86 | 	__u8 entire_table; /* Set all locking objects in SUM */ | ||
| 87 | 	__u8 align[4]; /* Align to 8 byte boundary */ | ||
| 88 | }; | ||
| 89 | |||
| 77 | struct opal_session_info { | 90 | struct opal_session_info { |
| 78 | 	__u32 sum; | 91 | 	__u32 sum; |
| 79 | 	__u32 who; | 92 | 	__u32 who; |
| ... | @@ -98,6 +111,18 @@ struct opal_lr_status { | ... | @@ -98,6 +111,18 @@ struct opal_lr_status { |
| 98 | 	__u8 align[4]; | 111 | 	__u8 align[4]; |
| 99 | }; | 112 | }; |
| 100 | 113 | ||
| 114 | struct opal_sum_ranges { | ||
| 115 | 	/* | ||
| 116 | 	 * Initiate Admin1 session if key_len > 0, | ||
| 117 | 	 * use Anybody session otherwise. | ||
| 118 | 	 */ | ||
| 119 | 	struct opal_key key; | ||
| 120 | 	__u8 num_lrs; | ||
| 121 | 	__u8 lr[OPAL_MAX_LRS]; | ||
| 122 | 	__u8 range_policy; | ||
| 123 | 	__u8 align[5]; /* Align to 8 byte boundary */ | ||
| 124 | }; | ||
| 125 | |||
| 101 | struct opal_lock_unlock { | 126 | struct opal_lock_unlock { |
| 102 | 	struct opal_session_info session; | 127 | 	struct opal_session_info session; |
| 103 | 	__u32 l_state; | 128 | 	__u32 l_state; |
| ... | @@ -216,5 +241,10 @@ struct opal_revert_lsp { | ... | @@ -216,5 +241,10 @@ struct opal_revert_lsp { |
| 216 | #define IOC_OPAL_DISCOVERY _IOW('p', 239, struct opal_discovery) | 241 | #define IOC_OPAL_DISCOVERY _IOW('p', 239, struct opal_discovery) |
| 217 | #define IOC_OPAL_REVERT_LSP _IOW('p', 240, struct opal_revert_lsp) | 242 | #define IOC_OPAL_REVERT_LSP _IOW('p', 240, struct opal_revert_lsp) |
| 218 | #define IOC_OPAL_SET_SID_PW _IOW('p', 241, struct opal_new_pw) | 243 | #define IOC_OPAL_SET_SID_PW _IOW('p', 241, struct opal_new_pw) |
| 244 | #define IOC_OPAL_REACTIVATE_LSP _IOW('p', 242, struct opal_lr_react) | ||
| 245 | #define IOC_OPAL_LR_SET_START_LEN _IOW('p', 243, struct opal_user_lr_setup) | ||
| 246 | #define IOC_OPAL_ENABLE_DISABLE_LR _IOW('p', 244, struct opal_user_lr_setup) | ||
| 247 | #define IOC_OPAL_GET_SUM_STATUS _IOW('p', 245, struct opal_sum_ranges) | ||
| 248 | #define IOC_OPAL_STACK_RESET _IO('p', 246) | ||
| 219 | 249 | ||
| 220 | #endif /* _SED_OPAL_H */ | 250 | #endif /* _SED_OPAL_H */ |
| \ No newline at end of file | |||
lib/libc/include/any-linux-any/linux/seg6_iptunnel.h+1| ... | @@ -20,6 +20,7 @@ | ... | @@ -20,6 +20,7 @@ |
| 20 | enum { | 20 | enum { |
| 21 | 	SEG6_IPTUNNEL_UNSPEC, | 21 | 	SEG6_IPTUNNEL_UNSPEC, |
| 22 | 	SEG6_IPTUNNEL_SRH, | 22 | 	SEG6_IPTUNNEL_SRH, |
| 23 | 	SEG6_IPTUNNEL_SRC,	/* struct in6_addr */ | ||
| 23 | 	__SEG6_IPTUNNEL_MAX, | 24 | 	__SEG6_IPTUNNEL_MAX, |
| 24 | }; | 25 | }; |
| 25 | #define SEG6_IPTUNNEL_MAX (__SEG6_IPTUNNEL_MAX - 1) | 26 | #define SEG6_IPTUNNEL_MAX (__SEG6_IPTUNNEL_MAX - 1) |
lib/libc/include/any-linux-any/linux/tee.h+1| ... | @@ -470,6 +470,7 @@ struct tee_ioctl_object_invoke_arg { | ... | @@ -470,6 +470,7 @@ struct tee_ioctl_object_invoke_arg { |
| 470 | 	__u32 op; | 470 | 	__u32 op; |
| 471 | 	__u32 ret; | 471 | 	__u32 ret; |
| 472 | 	__u32 num_params; | 472 | 	__u32 num_params; |
| 473 | 	__u32 :32; | ||
| 473 | 	/* num_params tells the actual number of element in params */ | 474 | 	/* num_params tells the actual number of element in params */ |
| 474 | 	struct tee_ioctl_param params[]; | 475 | 	struct tee_ioctl_param params[]; |
| 475 | }; | 476 | }; |
lib/libc/include/any-linux-any/linux/trace_mmap.h+5-4| ... | @@ -10,6 +10,7 @@ | ... | @@ -10,6 +10,7 @@ |
| 10 | * @meta_struct_len:	Size of this structure. | 10 | * @meta_struct_len:	Size of this structure. |
| 11 | * @subbuf_size:	Size of each sub-buffer. | 11 | * @subbuf_size:	Size of each sub-buffer. |
| 12 | * @nr_subbufs:		Number of subbfs in the ring-buffer, including the reader. | 12 | * @nr_subbufs:		Number of subbfs in the ring-buffer, including the reader. |
| 13 | * @reader:		The reader composite info structure | ||
| 13 | * @reader.lost_events:	Number of events lost at the time of the reader swap. | 14 | * @reader.lost_events:	Number of events lost at the time of the reader swap. |
| 14 | * @reader.id:		subbuf ID of the current reader. ID range [0 : @nr_subbufs - 1] | 15 | * @reader.id:		subbuf ID of the current reader. ID range [0 : @nr_subbufs - 1] |
| 15 | * @reader.read:	Number of bytes read on the reader subbuf. | 16 | * @reader.read:	Number of bytes read on the reader subbuf. |
| ... | @@ -17,8 +18,8 @@ | ... | @@ -17,8 +18,8 @@ |
| 17 | * @entries:		Number of entries in the ring-buffer. | 18 | * @entries:		Number of entries in the ring-buffer. |
| 18 | * @overrun:		Number of entries lost in the ring-buffer. | 19 | * @overrun:		Number of entries lost in the ring-buffer. |
| 19 | * @read:		Number of entries that have been read. | 20 | * @read:		Number of entries that have been read. |
| 20 | * @Reserved1:		Internal use only. | 21 | * @pages_lost:		Number of pages overwritten by the writer. |
| 21 | * @Reserved2:		Internal use only. | 22 | * @pages_touched:	Number of pages written by the writer. |
| 22 | */ | 23 | */ |
| 23 | struct trace_buffer_meta { | 24 | struct trace_buffer_meta { |
| 24 | 	__u32		meta_page_size; | 25 | 	__u32		meta_page_size; |
| ... | @@ -39,8 +40,8 @@ struct trace_buffer_meta { | ... | @@ -39,8 +40,8 @@ struct trace_buffer_meta { |
| 39 | 	__u64	overrun; | 40 | 	__u64	overrun; |
| 40 | 	__u64	read; | 41 | 	__u64	read; |
| 41 | 42 | ||
| 42 | 	__u64	Reserved1; | 43 | 	__u64	pages_lost; |
| 43 | 	__u64	Reserved2; | 44 | 	__u64	pages_touched; |
| 44 | }; | 45 | }; |
| 45 | 46 | ||
| 46 | #define TRACE_MMAP_IOCTL_GET_READER		_IO('R', 0x20) | 47 | #define TRACE_MMAP_IOCTL_GET_READER		_IO('R', 0x20) |
lib/libc/include/any-linux-any/linux/ublk_cmd.h+80| ... | @@ -57,6 +57,45 @@ | ... | @@ -57,6 +57,45 @@ |
| 57 | 	_IOWR('u', 0x16, struct ublksrv_ctrl_cmd) | 57 | 	_IOWR('u', 0x16, struct ublksrv_ctrl_cmd) |
| 58 | #define UBLK_U_CMD_TRY_STOP_DEV		\ | 58 | #define UBLK_U_CMD_TRY_STOP_DEV		\ |
| 59 | 	_IOWR('u', 0x17, struct ublksrv_ctrl_cmd) | 59 | 	_IOWR('u', 0x17, struct ublksrv_ctrl_cmd) |
| 60 | /* | ||
| 61 | * Register a shared memory buffer for zero-copy I/O. | ||
| 62 | * Input: ctrl_cmd.addr points to struct ublk_shmem_buf_reg (buffer VA + size) | ||
| 63 | * ctrl_cmd.len = sizeof(struct ublk_shmem_buf_reg) | ||
| 64 | * Result: >= 0 is the assigned buffer index, < 0 is error | ||
| 65 | * | ||
| 66 | * The kernel pins pages from the calling process's address space | ||
| 67 | * and inserts PFN ranges into a per-device maple tree. When a block | ||
| 68 | * request's pages match registered pages, the driver sets | ||
| 69 | * UBLK_IO_F_SHMEM_ZC and encodes the buffer index + offset in addr, | ||
| 70 | * allowing the server to access the data via its own mapping of the | ||
| 71 | * same shared memory — true zero copy. | ||
| 72 | * | ||
| 73 | * The memory can be backed by memfd, hugetlbfs, or any GUP-compatible | ||
| 74 | * shared mapping. Queue freeze is handled internally. | ||
| 75 | * | ||
| 76 | * The buffer VA and size are passed via a user buffer (not __inline__ in | ||
| 77 | * ctrl_cmd) so that unprivileged devices can prepend the device path | ||
| 78 | * to ctrl_cmd.addr without corrupting the VA. | ||
| 79 | */ | ||
| 80 | #define UBLK_U_CMD_REG_BUF		\ | ||
| 81 | 	_IOWR('u', 0x18, struct ublksrv_ctrl_cmd) | ||
| 82 | /* | ||
| 83 | * Unregister a shared memory buffer. | ||
| 84 | * Input: ctrl_cmd.data[0] = buffer index | ||
| 85 | */ | ||
| 86 | #define UBLK_U_CMD_UNREG_BUF		\ | ||
| 87 | 	_IOWR('u', 0x19, struct ublksrv_ctrl_cmd) | ||
| 88 | |||
| 89 | /* Parameter buffer for UBLK_U_CMD_REG_BUF, pointed to by ctrl_cmd.addr */ | ||
| 90 | struct ublk_shmem_buf_reg { | ||
| 91 | 	__u64	addr;	/* userspace virtual address of shared memory */ | ||
| 92 | 	__u64	len;	/* buffer size in bytes, page-aligned, default max 4GB */ | ||
| 93 | 	__u32	flags; | ||
| 94 | 	__u32	reserved; | ||
| 95 | }; | ||
| 96 | |||
| 97 | /* Pin pages without FOLL_WRITE; usable with write-sealed memfd */ | ||
| 98 | #define UBLK_SHMEM_BUF_READ_ONLY	(1U << 0) | ||
| 60 | /* | 99 | /* |
| 61 | * 64bits are enough now, and it should be easy to extend in case of | 100 | * 64bits are enough now, and it should be easy to extend in case of |
| 62 | * running out of feature flags | 101 | * running out of feature flags |
| ... | @@ -370,6 +409,14 @@ | ... | @@ -370,6 +409,14 @@ |
| 370 | /* Disable automatic partition scanning when device is started */ | 409 | /* Disable automatic partition scanning when device is started */ |
| 371 | #define UBLK_F_NO_AUTO_PART_SCAN (1ULL << 18) | 410 | #define UBLK_F_NO_AUTO_PART_SCAN (1ULL << 18) |
| 372 | 411 | ||
| 412 | /* | ||
| 413 | * Enable shared memory zero copy. When enabled, the server can register | ||
| 414 | * shared memory buffers via UBLK_U_CMD_REG_BUF. If a block request's | ||
| 415 | * pages match a registered buffer, UBLK_IO_F_SHMEM_ZC is set and addr | ||
| 416 | * encodes the buffer index + offset instead of a userspace buffer address. | ||
| 417 | */ | ||
| 418 | #define UBLK_F_SHMEM_ZC	(1ULL << 19) | ||
| 419 | |||
| 373 | /* device state */ | 420 | /* device state */ |
| 374 | #define UBLK_S_DEV_DEAD	0 | 421 | #define UBLK_S_DEV_DEAD	0 |
| 375 | #define UBLK_S_DEV_LIVE	1 | 422 | #define UBLK_S_DEV_LIVE	1 |
| ... | @@ -469,6 +516,12 @@ struct ublksrv_ctrl_dev_info { | ... | @@ -469,6 +516,12 @@ struct ublksrv_ctrl_dev_info { |
| 469 | #define		UBLK_IO_F_NEED_REG_BUF		(1U << 17) | 516 | #define		UBLK_IO_F_NEED_REG_BUF		(1U << 17) |
| 470 | /* Request has an integrity data buffer */ | 517 | /* Request has an integrity data buffer */ |
| 471 | #define		UBLK_IO_F_INTEGRITY		(1UL << 18) | 518 | #define		UBLK_IO_F_INTEGRITY		(1UL << 18) |
| 519 | /* | ||
| 520 | * I/O buffer is in a registered shared memory buffer. When set, the addr | ||
| 521 | * field in ublksrv_io_desc encodes buffer index and byte offset instead | ||
| 522 | * of a userspace virtual address. | ||
| 523 | */ | ||
| 524 | #define		UBLK_IO_F_SHMEM_ZC		(1U << 19) | ||
| 472 | 525 | ||
| 473 | /* | 526 | /* |
| 474 | * io cmd is described by this structure, and stored in share memory, indexed | 527 | * io cmd is described by this structure, and stored in share memory, indexed |
| ... | @@ -743,4 +796,31 @@ struct ublk_params { | ... | @@ -743,4 +796,31 @@ struct ublk_params { |
| 743 | 	struct ublk_param_integrity	integrity; | 796 | 	struct ublk_param_integrity	integrity; |
| 744 | }; | 797 | }; |
| 745 | 798 | ||
| 799 | /* | ||
| 800 | * Shared memory zero-copy addr encoding for UBLK_IO_F_SHMEM_ZC. | ||
| 801 | * | ||
| 802 | * When UBLK_IO_F_SHMEM_ZC is set, ublksrv_io_desc.addr is encoded as: | ||
| 803 | * bits [0:31] = byte offset within the buffer (up to 4GB) | ||
| 804 | * bits [32:47] = buffer index (up to 65536) | ||
| 805 | * bits [48:63] = reserved (must be zero) | ||
| 806 | */ | ||
| 807 | #define UBLK_SHMEM_ZC_OFF_MASK		0xffffffffULL | ||
| 808 | #define UBLK_SHMEM_ZC_IDX_OFF		32 | ||
| 809 | #define UBLK_SHMEM_ZC_IDX_MASK		0xffffULL | ||
| 810 | |||
| 811 | static __inline__ __u64 ublk_shmem_zc_addr(__u16 index, __u32 offset) | ||
| 812 | { | ||
| 813 | 	return ((__u64)index << UBLK_SHMEM_ZC_IDX_OFF) | offset; | ||
| 814 | } | ||
| 815 | |||
| 816 | static __inline__ __u16 ublk_shmem_zc_index(__u64 addr) | ||
| 817 | { | ||
| 818 | 	return (addr >> UBLK_SHMEM_ZC_IDX_OFF) & UBLK_SHMEM_ZC_IDX_MASK; | ||
| 819 | } | ||
| 820 | |||
| 821 | static __inline__ __u32 ublk_shmem_zc_offset(__u64 addr) | ||
| 822 | { | ||
| 823 | 	return (__u32)(addr & UBLK_SHMEM_ZC_OFF_MASK); | ||
| 824 | } | ||
| 825 | |||
| 746 | #endif | 826 | #endif |
| \ No newline at end of file | |||
lib/libc/include/any-linux-any/linux/udp.h+2| ... | @@ -29,6 +29,8 @@ struct udphdr { | ... | @@ -29,6 +29,8 @@ struct udphdr { |
| 29 | 29 | ||
| 30 | /* UDP socket options */ | 30 | /* UDP socket options */ |
| 31 | #define UDP_CORK	1	/* Never send partially complete segments */ | 31 | #define UDP_CORK	1	/* Never send partially complete segments */ |
| 32 | /* Deprecated, reserved for UDPLITE_SEND_CSCOV 10 */ | ||
| 33 | /* Deprecated, reserved for UDPLITE_RECV_CSCOV 11 */ | ||
| 32 | #define UDP_ENCAP	100	/* Set the socket to accept encapsulated packets */ | 34 | #define UDP_ENCAP	100	/* Set the socket to accept encapsulated packets */ |
| 33 | #define UDP_NO_CHECK6_TX 101	/* Disable sending checksum for UDP6X */ | 35 | #define UDP_NO_CHECK6_TX 101	/* Disable sending checksum for UDP6X */ |
| 34 | #define UDP_NO_CHECK6_RX 102	/* Disable accepting checksum for UDP6 */ | 36 | #define UDP_NO_CHECK6_RX 102	/* Disable accepting checksum for UDP6 */ |
lib/libc/include/any-linux-any/linux/um_timetravel.h+5-1| ... | @@ -56,6 +56,9 @@ enum um_timetravel_shared_mem_fds { | ... | @@ -56,6 +56,9 @@ enum um_timetravel_shared_mem_fds { |
| 56 | 	 *	in the control message | 56 | 	 *	in the control message |
| 57 | 	 */ | 57 | 	 */ |
| 58 | 	UM_TIMETRAVEL_SHARED_LOGFD, | 58 | 	UM_TIMETRAVEL_SHARED_LOGFD, |
| 59 | 	/** | ||
| 60 | 	 * @UM_TIMETRAVEL_SHARED_MAX_FDS: number of fds listed here | ||
| 61 | 	 */ | ||
| 59 | 	UM_TIMETRAVEL_SHARED_MAX_FDS, | 62 | 	UM_TIMETRAVEL_SHARED_MAX_FDS, |
| 60 | }; | 63 | }; |
| 61 | 64 | ||
| ... | @@ -242,6 +245,7 @@ union um_timetravel_schedshm_client { | ... | @@ -242,6 +245,7 @@ union um_timetravel_schedshm_client { |
| 242 | 		__u64 req_time; | 245 | 		__u64 req_time; |
| 243 | 		__u64 name; | 246 | 		__u64 name; |
| 244 | 	}; | 247 | 	}; |
| 248 | 	/* private: */ | ||
| 245 | 	char reserve[128]; /* reserved for future usage */ | 249 | 	char reserve[128]; /* reserved for future usage */ |
| 246 | }; | 250 | }; |
| 247 | 251 | ||
| ... | @@ -264,7 +268,7 @@ union um_timetravel_schedshm_client { | ... | @@ -264,7 +268,7 @@ union um_timetravel_schedshm_client { |
| 264 | *	is made by any client. Clients also must update this value when they | 268 | *	is made by any client. Clients also must update this value when they |
| 265 | *	insert/update an own request into the shared memory while not running | 269 | *	insert/update an own request into the shared memory while not running |
| 266 | *	themselves, and the new request is before than the current value. | 270 | *	themselves, and the new request is before than the current value. |
| 267 | * current_time: Current time, can only be set by the client in running state | 271 | * @current_time: Current time, can only be set by the client in running state |
| 268 | *	(indicated by @running_id), though that client may only run until @free_until, | 272 | *	(indicated by @running_id), though that client may only run until @free_until, |
| 269 | *	so it must remain smaller than @free_until. | 273 | *	so it must remain smaller than @free_until. |
| 270 | * @running_id: The current client in state running, set before a client is | 274 | * @running_id: The current client in state running, set before a client is |
lib/libc/include/any-linux-any/linux/usb/ch9.h+24-9| ... | @@ -102,6 +102,8 @@ | ... | @@ -102,6 +102,8 @@ |
| 102 | #define USB_REQ_LOOPBACK_DATA_WRITE	0x15 | 102 | #define USB_REQ_LOOPBACK_DATA_WRITE	0x15 |
| 103 | #define USB_REQ_LOOPBACK_DATA_READ	0x16 | 103 | #define USB_REQ_LOOPBACK_DATA_READ	0x16 |
| 104 | #define USB_REQ_SET_INTERFACE_DS	0x17 | 104 | #define USB_REQ_SET_INTERFACE_DS	0x17 |
| 105 | #define USB_REQ_AUTH_IN			0x18 | ||
| 106 | #define USB_REQ_AUTH_OUT		0x19 | ||
| 105 | 107 | ||
| 106 | /* specific requests for USB Power Delivery */ | 108 | /* specific requests for USB Power Delivery */ |
| 107 | #define USB_REQ_GET_PARTNER_PDO		20 | 109 | #define USB_REQ_GET_PARTNER_PDO		20 |
| ... | @@ -121,15 +123,17 @@ | ... | @@ -121,15 +123,17 @@ |
| 121 | * are at most sixteen features of each type.) Hubs may also support a | 123 | * are at most sixteen features of each type.) Hubs may also support a |
| 122 | * new USB_REQ_TEST_AND_SET_FEATURE to put ports into L1 suspend. | 124 | * new USB_REQ_TEST_AND_SET_FEATURE to put ports into L1 suspend. |
| 123 | */ | 125 | */ |
| 124 | #define USB_DEVICE_SELF_POWERED		0	/* (read only) */ | 126 | #define USB_DEVICE_SELF_POWERED				0	/* (read only) */ |
| 125 | #define USB_DEVICE_REMOTE_WAKEUP	1	/* dev may initiate wakeup */ | 127 | #define USB_DEVICE_REMOTE_WAKEUP			1	/* dev may initiate wakeup */ |
| 126 | #define USB_DEVICE_TEST_MODE		2	/* (wired high speed only) */ | 128 | #define USB_DEVICE_TEST_MODE				2	/* (wired high speed only) */ |
| 127 | #define USB_DEVICE_BATTERY		2	/* (wireless) */ | 129 | #define USB_DEVICE_BATTERY				2	/* (wireless) */ |
| 128 | #define USB_DEVICE_B_HNP_ENABLE		3	/* (otg) dev may initiate HNP */ | 130 | #define USB_DEVICE_B_HNP_ENABLE				3	/* (otg) dev may initiate HNP */ |
| 129 | #define USB_DEVICE_WUSB_DEVICE		3	/* (wireless)*/ | 131 | #define USB_DEVICE_WUSB_DEVICE				3	/* (wireless)*/ |
| 130 | #define USB_DEVICE_A_HNP_SUPPORT	4	/* (otg) RH port supports HNP */ | 132 | #define USB_DEVICE_A_HNP_SUPPORT			4	/* (otg) RH port supports HNP */ |
| 131 | #define USB_DEVICE_A_ALT_HNP_SUPPORT	5	/* (otg) other RH port does */ | 133 | #define USB_DEVICE_A_ALT_HNP_SUPPORT			5	/* (otg) other RH port does */ |
| 132 | #define USB_DEVICE_DEBUG_MODE		6	/* (special devices only) */ | 134 | #define USB_DEVICE_DEBUG_MODE				6	/* (special devices only) */ |
| 135 | |||
| 136 | #define USB_DEVICE_BULK_MAX_PACKET_UPDATE		8	/* (eUSB2v2) bump maxpacket to 1024 */ | ||
| 133 | 137 | ||
| 134 | /* | 138 | /* |
| 135 | * Test Mode Selectors | 139 | * Test Mode Selectors |
| ... | @@ -1147,6 +1151,17 @@ struct usb_ptm_cap_descriptor { | ... | @@ -1147,6 +1151,17 @@ struct usb_ptm_cap_descriptor { |
| 1147 | 1151 | ||
| 1148 | /*-------------------------------------------------------------------------*/ | 1152 | /*-------------------------------------------------------------------------*/ |
| 1149 | 1153 | ||
| 1154 | struct usb_authentication_capability_descriptor { | ||
| 1155 | 	__u8 bLength; | ||
| 1156 | 	__u8 bDescriptorType; /* set to USB_DT_DEVICE_CAPABILITY */ | ||
| 1157 | 	__u8 bmAttributes; | ||
| 1158 | |||
| 1159 | 	__u8 bcdProtocolVersion; | ||
| 1160 | 	__u8 bcdCapability; | ||
| 1161 | } __attribute__((packed)); | ||
| 1162 | |||
| 1163 | /*-------------------------------------------------------------------------*/ | ||
| 1164 | |||
| 1150 | /* USB_DT_WIRELESS_ENDPOINT_COMP: companion descriptor associated with | 1165 | /* USB_DT_WIRELESS_ENDPOINT_COMP: companion descriptor associated with |
| 1151 | * each endpoint descriptor for a wireless device | 1166 | * each endpoint descriptor for a wireless device |
| 1152 | */ | 1167 | */ |
lib/libc/include/any-linux-any/linux/version.h+2-2| ... | @@ -1,5 +1,5 @@ | ... | @@ -1,5 +1,5 @@ |
| 1 | #define LINUX_VERSION_CODE 458752 | 1 | #define LINUX_VERSION_CODE 459008 |
| 2 | #define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + ((c) > 255 ? 255 : (c))) | 2 | #define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + ((c) > 255 ? 255 : (c))) |
| 3 | #define LINUX_VERSION_MAJOR 7 | 3 | #define LINUX_VERSION_MAJOR 7 |
| 4 | #define LINUX_VERSION_PATCHLEVEL 0 | 4 | #define LINUX_VERSION_PATCHLEVEL 1 |
| 5 | #define LINUX_VERSION_SUBLEVEL 0 | 5 | #define LINUX_VERSION_SUBLEVEL 0 |
| \ No newline at end of file | |||
lib/libc/include/any-linux-any/linux/vfio.h+25-1| ... | @@ -141,7 +141,7 @@ struct vfio_info_cap_header { | ... | @@ -141,7 +141,7 @@ struct vfio_info_cap_header { |
| 141 | * | 141 | * |
| 142 | * Retrieve information about the group. Fills in provided | 142 | * Retrieve information about the group. Fills in provided |
| 143 | * struct vfio_group_info. Caller sets argsz. | 143 | * struct vfio_group_info. Caller sets argsz. |
| 144 | * Return: 0 on succes, -errno on failure. | 144 | * Return: 0 on success, -errno on failure. |
| 145 | * Availability: Always | 145 | * Availability: Always |
| 146 | */ | 146 | */ |
| 147 | struct vfio_group_status { | 147 | struct vfio_group_status { |
| ... | @@ -1266,6 +1266,19 @@ enum vfio_device_mig_state { | ... | @@ -1266,6 +1266,19 @@ enum vfio_device_mig_state { |
| 1266 | * The initial_bytes field indicates the amount of initial precopy | 1266 | * The initial_bytes field indicates the amount of initial precopy |
| 1267 | * data available from the device. This field should have a non-zero initial | 1267 | * data available from the device. This field should have a non-zero initial |
| 1268 | * value and decrease as migration data is read from the device. | 1268 | * value and decrease as migration data is read from the device. |
| 1269 | * The presence of the VFIO_PRECOPY_INFO_REINIT output flag indicates | ||
| 1270 | * that new initial data is present on the stream. | ||
| 1271 | * The new initial data may result, for example, from device reconfiguration | ||
| 1272 | * during migration that requires additional initialization data. | ||
| 1273 | * In that case initial_bytes may report a non-zero value irrespective of | ||
| 1274 | * any previously reported values, which progresses towards zero as precopy | ||
| 1275 | * data is read from the data stream. dirty_bytes is also reset | ||
| 1276 | * to zero and represents the state change of the device relative to the new | ||
| 1277 | * initial_bytes. | ||
| 1278 | * VFIO_PRECOPY_INFO_REINIT can be reported only after userspace opts in to | ||
| 1279 | * VFIO_DEVICE_FEATURE_MIG_PRECOPY_INFOv2. Without this opt-in, the flags field | ||
| 1280 | * of struct vfio_precopy_info is reserved for bug-compatibility reasons. | ||
| 1281 | * | ||
| 1269 | * It is recommended to leave PRE_COPY for STOP_COPY only after this field | 1282 | * It is recommended to leave PRE_COPY for STOP_COPY only after this field |
| 1270 | * reaches zero. Leaving PRE_COPY earlier might make things slower. | 1283 | * reaches zero. Leaving PRE_COPY earlier might make things slower. |
| 1271 | * | 1284 | * |
| ... | @@ -1301,6 +1314,7 @@ enum vfio_device_mig_state { | ... | @@ -1301,6 +1314,7 @@ enum vfio_device_mig_state { |
| 1301 | struct vfio_precopy_info { | 1314 | struct vfio_precopy_info { |
| 1302 | 	__u32 argsz; | 1315 | 	__u32 argsz; |
| 1303 | 	__u32 flags; | 1316 | 	__u32 flags; |
| 1317 | #define VFIO_PRECOPY_INFO_REINIT (1 << 0) /* output - new initial data is present */ | ||
| 1304 | 	__aligned_u64 initial_bytes; | 1318 | 	__aligned_u64 initial_bytes; |
| 1305 | 	__aligned_u64 dirty_bytes; | 1319 | 	__aligned_u64 dirty_bytes; |
| 1306 | }; | 1320 | }; |
| ... | @@ -1510,6 +1524,16 @@ struct vfio_device_feature_dma_buf { | ... | @@ -1510,6 +1524,16 @@ struct vfio_device_feature_dma_buf { |
| 1510 | 	struct vfio_region_dma_range dma_ranges[] __counted_by(nr_ranges); | 1524 | 	struct vfio_region_dma_range dma_ranges[] __counted_by(nr_ranges); |
| 1511 | }; | 1525 | }; |
| 1512 | 1526 | ||
| 1527 | /* | ||
| 1528 | * Enables the migration precopy_info_v2 behaviour. | ||
| 1529 | * | ||
| 1530 | * VFIO_DEVICE_FEATURE_MIG_PRECOPY_INFOv2. | ||
| 1531 | * | ||
| 1532 | * On SET, enables the v2 pre_copy_info behaviour, where the | ||
| 1533 | * vfio_precopy_info.flags is a valid output field. | ||
| 1534 | */ | ||
| 1535 | #define VFIO_DEVICE_FEATURE_MIG_PRECOPY_INFOv2 12 | ||
| 1536 | |||
| 1513 | /* -------- API for Type1 VFIO IOMMU -------- */ | 1537 | /* -------- API for Type1 VFIO IOMMU -------- */ |
| 1514 | 1538 | ||
| 1515 | /** | 1539 | /** |
lib/libc/include/any-linux-any/rdma/bnxt_re-abi.h+35-1| ... | @@ -102,12 +102,17 @@ struct bnxt_re_pd_resp { | ... | @@ -102,12 +102,17 @@ struct bnxt_re_pd_resp { |
| 102 | struct bnxt_re_cq_req { | 102 | struct bnxt_re_cq_req { |
| 103 | 	__aligned_u64 cq_va; | 103 | 	__aligned_u64 cq_va; |
| 104 | 	__aligned_u64 cq_handle; | 104 | 	__aligned_u64 cq_handle; |
| 105 | 	__aligned_u64 comp_mask; | ||
| 105 | }; | 106 | }; |
| 106 | 107 | ||
| 107 | enum bnxt_re_cq_mask { | 108 | enum bnxt_re_resp_cq_mask { |
| 108 | 	BNXT_RE_CQ_TOGGLE_PAGE_SUPPORT = 0x1, | 109 | 	BNXT_RE_CQ_TOGGLE_PAGE_SUPPORT = 0x1, |
| 109 | }; | 110 | }; |
| 110 | 111 | ||
| 112 | enum bnxt_re_req_cq_mask { | ||
| 113 | 	BNXT_RE_CQ_FIXED_NUM_CQE_ENABLE = 0x1, | ||
| 114 | }; | ||
| 115 | |||
| 111 | struct bnxt_re_cq_resp { | 116 | struct bnxt_re_cq_resp { |
| 112 | 	__u32 cqid; | 117 | 	__u32 cqid; |
| 113 | 	__u32 tail; | 118 | 	__u32 tail; |
| ... | @@ -163,6 +168,8 @@ enum bnxt_re_objects { | ... | @@ -163,6 +168,8 @@ enum bnxt_re_objects { |
| 163 | 	BNXT_RE_OBJECT_ALLOC_PAGE = (1U << UVERBS_ID_NS_SHIFT), | 168 | 	BNXT_RE_OBJECT_ALLOC_PAGE = (1U << UVERBS_ID_NS_SHIFT), |
| 164 | 	BNXT_RE_OBJECT_NOTIFY_DRV, | 169 | 	BNXT_RE_OBJECT_NOTIFY_DRV, |
| 165 | 	BNXT_RE_OBJECT_GET_TOGGLE_MEM, | 170 | 	BNXT_RE_OBJECT_GET_TOGGLE_MEM, |
| 171 | 	BNXT_RE_OBJECT_DBR, | ||
| 172 | 	BNXT_RE_OBJECT_DEFAULT_DBR, | ||
| 166 | }; | 173 | }; |
| 167 | 174 | ||
| 168 | enum bnxt_re_alloc_page_type { | 175 | enum bnxt_re_alloc_page_type { |
| ... | @@ -231,4 +238,31 @@ struct bnxt_re_packet_pacing_caps { | ... | @@ -231,4 +238,31 @@ struct bnxt_re_packet_pacing_caps { |
| 231 | struct bnxt_re_query_device_ex_resp { | 238 | struct bnxt_re_query_device_ex_resp { |
| 232 | 	struct bnxt_re_packet_pacing_caps packet_pacing_caps; | 239 | 	struct bnxt_re_packet_pacing_caps packet_pacing_caps; |
| 233 | }; | 240 | }; |
| 241 | |||
| 242 | struct bnxt_re_db_region { | ||
| 243 | 	__u32 dpi; | ||
| 244 | 	__u32 reserved; | ||
| 245 | 	__aligned_u64 umdbr; | ||
| 246 | }; | ||
| 247 | |||
| 248 | enum bnxt_re_obj_dbr_alloc_attrs { | ||
| 249 | 	BNXT_RE_ALLOC_DBR_HANDLE = (1U << UVERBS_ID_NS_SHIFT), | ||
| 250 | 	BNXT_RE_ALLOC_DBR_ATTR, | ||
| 251 | 	BNXT_RE_ALLOC_DBR_OFFSET, | ||
| 252 | }; | ||
| 253 | |||
| 254 | enum bnxt_re_obj_dbr_free_attrs { | ||
| 255 | 	BNXT_RE_FREE_DBR_HANDLE = (1U << UVERBS_ID_NS_SHIFT), | ||
| 256 | }; | ||
| 257 | |||
| 258 | enum bnxt_re_obj_default_dbr_attrs { | ||
| 259 | 	BNXT_RE_DEFAULT_DBR_ATTR = (1U << UVERBS_ID_NS_SHIFT), | ||
| 260 | }; | ||
| 261 | |||
| 262 | enum bnxt_re_obj_dpi_methods { | ||
| 263 | 	BNXT_RE_METHOD_DBR_ALLOC = (1U << UVERBS_ID_NS_SHIFT), | ||
| 264 | 	BNXT_RE_METHOD_DBR_FREE, | ||
| 265 | 	BNXT_RE_METHOD_GET_DEFAULT_DBR, | ||
| 266 | }; | ||
| 267 | |||
| 234 | #endif /* __BNXT_RE_UVERBS_ABI_H__*/ | 268 | #endif /* __BNXT_RE_UVERBS_ABI_H__*/ |
| \ No newline at end of file | |||
lib/libc/include/any-linux-any/rdma/efa-abi.h+6-5| ... | @@ -1,6 +1,6 @@ | ... | @@ -1,6 +1,6 @@ |
| 1 | /* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-2-Clause) */ | 1 | /* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-2-Clause) */ |
| 2 | /* | 2 | /* |
| 3 | * Copyright 2018-2025 Amazon.com, Inc. or its affiliates. All rights reserved. | 3 | * Copyright 2018-2026 Amazon.com, Inc. or its affiliates. All rights reserved. |
| 4 | */ | 4 | */ |
| 5 | 5 | ||
| 6 | #ifndef EFA_ABI_USER_H | 6 | #ifndef EFA_ABI_USER_H |
| ... | @@ -22,12 +22,12 @@ | ... | @@ -22,12 +22,12 @@ |
| 22 | */ | 22 | */ |
| 23 | 23 | ||
| 24 | enum { | 24 | enum { |
| 25 | 	EFA_ALLOC_UCONTEXT_CMD_COMP_TX_BATCH = 1 << 0, | 25 | 	EFA_ALLOC_UCONTEXT_CMD_SUPP_CAPS_TX_BATCH = 1 << 0, |
| 26 | 	EFA_ALLOC_UCONTEXT_CMD_COMP_MIN_SQ_WR = 1 << 1, | 26 | 	EFA_ALLOC_UCONTEXT_CMD_SUPP_CAPS_MIN_SQ_WR = 1 << 1, |
| 27 | }; | 27 | }; |
| 28 | 28 | ||
| 29 | struct efa_ibv_alloc_ucontext_cmd { | 29 | struct efa_ibv_alloc_ucontext_cmd { |
| 30 | 	__u32 comp_mask; | 30 | 	__u32 supported_caps; |
| 31 | 	__u8 reserved_20[4]; | 31 | 	__u8 reserved_20[4]; |
| 32 | }; | 32 | }; |
| 33 | 33 | ||
| ... | @@ -44,7 +44,8 @@ struct efa_ibv_alloc_ucontext_resp { | ... | @@ -44,7 +44,8 @@ struct efa_ibv_alloc_ucontext_resp { |
| 44 | 	__u32 max_llq_size; /* bytes */ | 44 | 	__u32 max_llq_size; /* bytes */ |
| 45 | 	__u16 max_tx_batch; /* units of 64 bytes */ | 45 | 	__u16 max_tx_batch; /* units of 64 bytes */ |
| 46 | 	__u16 min_sq_wr; | 46 | 	__u16 min_sq_wr; |
| 47 | 	__u8 reserved_a0[4]; | 47 | 	__u16 inline_buf_size_ex; |
| 48 | 	__u8 reserved_b0[2]; | ||
| 48 | }; | 49 | }; |
| 49 | 50 | ||
| 50 | struct efa_ibv_alloc_pd_resp { | 51 | struct efa_ibv_alloc_pd_resp { |
lib/libc/include/any-linux-any/rdma/ib_user_ioctl_verbs.h+1| ... | @@ -46,6 +46,7 @@ | ... | @@ -46,6 +46,7 @@ |
| 46 | 46 | ||
| 47 | enum ib_uverbs_core_support { | 47 | enum ib_uverbs_core_support { |
| 48 | 	IB_UVERBS_CORE_SUPPORT_OPTIONAL_MR_ACCESS = 1 << 0, | 48 | 	IB_UVERBS_CORE_SUPPORT_OPTIONAL_MR_ACCESS = 1 << 0, |
| 49 | 	IB_UVERBS_CORE_SUPPORT_ROBUST_UDATA = 1 << 1, | ||
| 49 | }; | 50 | }; |
| 50 | 51 | ||
| 51 | enum ib_uverbs_access_flags { | 52 | enum ib_uverbs_access_flags { |
lib/libc/include/any-linux-any/rdma/mlx5_user_ioctl_cmds.h+1| ... | @@ -139,6 +139,7 @@ enum mlx5_ib_var_alloc_attrs { | ... | @@ -139,6 +139,7 @@ enum mlx5_ib_var_alloc_attrs { |
| 139 | 	MLX5_IB_ATTR_VAR_OBJ_ALLOC_MMAP_OFFSET, | 139 | 	MLX5_IB_ATTR_VAR_OBJ_ALLOC_MMAP_OFFSET, |
| 140 | 	MLX5_IB_ATTR_VAR_OBJ_ALLOC_MMAP_LENGTH, | 140 | 	MLX5_IB_ATTR_VAR_OBJ_ALLOC_MMAP_LENGTH, |
| 141 | 	MLX5_IB_ATTR_VAR_OBJ_ALLOC_PAGE_ID, | 141 | 	MLX5_IB_ATTR_VAR_OBJ_ALLOC_PAGE_ID, |
| 142 | 	MLX5_IB_ATTR_VAR_OBJ_ALLOC_FLAGS, | ||
| 142 | }; | 143 | }; |
| 143 | 144 | ||
| 144 | enum mlx5_ib_var_obj_destroy_attrs { | 145 | enum mlx5_ib_var_obj_destroy_attrs { |
lib/libc/include/any-linux-any/rdma/mlx5_user_ioctl_verbs.h+4| ... | @@ -100,6 +100,10 @@ enum mlx5_ib_uapi_query_port_flags { | ... | @@ -100,6 +100,10 @@ enum mlx5_ib_uapi_query_port_flags { |
| 100 | 	MLX5_IB_UAPI_QUERY_PORT_ESW_OWNER_VHCA_ID	= 1 << 5, | 100 | 	MLX5_IB_UAPI_QUERY_PORT_ESW_OWNER_VHCA_ID	= 1 << 5, |
| 101 | }; | 101 | }; |
| 102 | 102 | ||
| 103 | enum mlx5_ib_uapi_var_alloc_flags { | ||
| 104 | 	MLX5_IB_UAPI_VAR_ALLOC_FLAG_TLP = 1 << 0, | ||
| 105 | }; | ||
| 106 | |||
| 103 | struct mlx5_ib_uapi_reg { | 107 | struct mlx5_ib_uapi_reg { |
| 104 | 	__u32 value; | 108 | 	__u32 value; |
| 105 | 	__u32 mask; | 109 | 	__u32 mask; |
lib/libc/include/any-linux-any/rdma/rdma_netlink.h+22| ... | @@ -308,6 +308,10 @@ enum rdma_nldev_command { | ... | @@ -308,6 +308,10 @@ enum rdma_nldev_command { |
| 308 | 308 | ||
| 309 | 	RDMA_NLDEV_CMD_MONITOR, | 309 | 	RDMA_NLDEV_CMD_MONITOR, |
| 310 | 310 | ||
| 311 | 	RDMA_NLDEV_CMD_FRMR_POOLS_GET, /* can dump */ | ||
| 312 | |||
| 313 | 	RDMA_NLDEV_CMD_FRMR_POOLS_SET, | ||
| 314 | |||
| 311 | 	RDMA_NLDEV_NUM_OPS | 315 | 	RDMA_NLDEV_NUM_OPS |
| 312 | }; | 316 | }; |
| 313 | 317 | ||
| ... | @@ -582,6 +586,24 @@ enum rdma_nldev_attr { | ... | @@ -582,6 +586,24 @@ enum rdma_nldev_attr { |
| 582 | 	RDMA_NLDEV_SYS_ATTR_MONITOR_MODE,	/* u8 */ | 586 | 	RDMA_NLDEV_SYS_ATTR_MONITOR_MODE,	/* u8 */ |
| 583 | 587 | ||
| 584 | 	RDMA_NLDEV_ATTR_STAT_OPCOUNTER_ENABLED,	/* u8 */ | 588 | 	RDMA_NLDEV_ATTR_STAT_OPCOUNTER_ENABLED,	/* u8 */ |
| 589 | |||
| 590 | 	/* | ||
| 591 | 	 * FRMR Pools attributes | ||
| 592 | 	 */ | ||
| 593 | 	RDMA_NLDEV_ATTR_FRMR_POOLS,		/* nested table */ | ||
| 594 | 	RDMA_NLDEV_ATTR_FRMR_POOL_ENTRY,	/* nested table */ | ||
| 595 | 	RDMA_NLDEV_ATTR_FRMR_POOL_KEY,		/* nested table */ | ||
| 596 | 	RDMA_NLDEV_ATTR_FRMR_POOL_KEY_ATS,	/* u8 */ | ||
| 597 | 	RDMA_NLDEV_ATTR_FRMR_POOL_KEY_ACCESS_FLAGS,	/* u32 */ | ||
| 598 | 	RDMA_NLDEV_ATTR_FRMR_POOL_KEY_VENDOR_KEY,	/* u64 */ | ||
| 599 | 	RDMA_NLDEV_ATTR_FRMR_POOL_KEY_NUM_DMA_BLOCKS,	/* u64 */ | ||
| 600 | 	RDMA_NLDEV_ATTR_FRMR_POOL_QUEUE_HANDLES,	/* u32 */ | ||
| 601 | 	RDMA_NLDEV_ATTR_FRMR_POOL_MAX_IN_USE,	/* u64 */ | ||
| 602 | 	RDMA_NLDEV_ATTR_FRMR_POOL_IN_USE,	/* u64 */ | ||
| 603 | 	RDMA_NLDEV_ATTR_FRMR_POOLS_AGING_PERIOD,	/* u32 */ | ||
| 604 | 	RDMA_NLDEV_ATTR_FRMR_POOL_PINNED_HANDLES,	/* u32 */ | ||
| 605 | 	RDMA_NLDEV_ATTR_FRMR_POOL_KEY_KERNEL_VENDOR_KEY,	/* u64 */ | ||
| 606 | |||
| 585 | 	/* | 607 | 	/* |
| 586 | 	 * Always the end | 608 | 	 * Always the end |
| 587 | 	 */ | 609 | 	 */ |
lib/libc/include/any-linux-any/scsi/fc/fc_els.h+1-1| ... | @@ -1026,7 +1026,7 @@ struct fc_fn_li_desc { | ... | @@ -1026,7 +1026,7 @@ struct fc_fn_li_desc { |
| 1026 | 					 */ | 1026 | 					 */ |
| 1027 | 	__be32		event_count;	/* minimum number of event | 1027 | 	__be32		event_count;	/* minimum number of event |
| 1028 | 					 * occurrences during the event | 1028 | 					 * occurrences during the event |
| 1029 | 					 * threshold to caause the LI event | 1029 | 					 * threshold to cause the LI event |
| 1030 | 					 */ | 1030 | 					 */ |
| 1031 | 	__be32		pname_count;	/* number of portname_list elements */ | 1031 | 	__be32		pname_count;	/* number of portname_list elements */ |
| 1032 | 	__be64		pname_list[];	/* list of N_Port_Names accessible | 1032 | 	__be64		pname_list[];	/* list of N_Port_Names accessible |
lib/libc/include/hexagon-linux-any/asm/sigcontext.h+1-1| ... | @@ -29,6 +29,6 @@ | ... | @@ -29,6 +29,6 @@ |
| 29 | */ | 29 | */ |
| 30 | struct sigcontext { | 30 | struct sigcontext { |
| 31 | 	struct user_regs_struct sc_regs; | 31 | 	struct user_regs_struct sc_regs; |
| 32 | } __aligned(8); | 32 | } __attribute__((aligned(8))); |
| 33 | 33 | ||
| 34 | #endif | 34 | #endif |
| \ No newline at end of file | |||
lib/libc/include/loongarch-linux-any/asm/hwcap.h+1| ... | @@ -19,5 +19,6 @@ | ... | @@ -19,5 +19,6 @@ |
| 19 | #define HWCAP_LOONGARCH_PTW		(1 << 13) | 19 | #define HWCAP_LOONGARCH_PTW		(1 << 13) |
| 20 | #define HWCAP_LOONGARCH_LSPW		(1 << 14) | 20 | #define HWCAP_LOONGARCH_LSPW		(1 << 14) |
| 21 | #define HWCAP_LOONGARCH_SCQ		(1 << 15) | 21 | #define HWCAP_LOONGARCH_SCQ		(1 << 15) |
| 22 | #define HWCAP_LOONGARCH_LAM_BH		(1 << 16) | ||
| 22 | 23 | ||
| 23 | #endif /* _ASM_HWCAP_H */ | 24 | #endif /* _ASM_HWCAP_H */ |
| \ No newline at end of file | |||
lib/libc/include/loongarch-linux-any/asm/kvm.h+4| ... | @@ -155,4 +155,8 @@ struct kvm_iocsr_entry { | ... | @@ -155,4 +155,8 @@ struct kvm_iocsr_entry { |
| 155 | #define KVM_DEV_LOONGARCH_PCH_PIC_GRP_CTRL	 0x40000006 | 155 | #define KVM_DEV_LOONGARCH_PCH_PIC_GRP_CTRL	 0x40000006 |
| 156 | #define KVM_DEV_LOONGARCH_PCH_PIC_CTRL_INIT	 0 | 156 | #define KVM_DEV_LOONGARCH_PCH_PIC_CTRL_INIT	 0 |
| 157 | 157 | ||
| 158 | #define KVM_DEV_LOONGARCH_DMSINTC_GRP_CTRL		0x40000007 | ||
| 159 | #define KVM_DEV_LOONGARCH_DMSINTC_MSG_ADDR_BASE		0x0 | ||
| 160 | #define KVM_DEV_LOONGARCH_DMSINTC_MSG_ADDR_SIZE		0x1 | ||
| 161 | |||
| 158 | #endif /* __UAPI_ASM_LOONGARCH_KVM_H */ | 162 | #endif /* __UAPI_ASM_LOONGARCH_KVM_H */ |
| \ No newline at end of file | |||
lib/libc/include/m68k-linux-any/asm/ucontext.h created+34| ... | @@ -0,0 +1,34 @@ | ||
| 1 | /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ | ||
| 2 | #ifndef _M68K_UCONTEXT_H | ||
| 3 | #define _M68K_UCONTEXT_H | ||
| 4 | |||
| 5 | #include <asm/sigcontext.h> | ||
| 6 | #include <asm/signal.h> | ||
| 7 | |||
| 8 | typedef int greg_t; | ||
| 9 | #define NGREG 18 | ||
| 10 | typedef greg_t gregset_t[NGREG]; | ||
| 11 | |||
| 12 | typedef struct fpregset { | ||
| 13 | 	int f_fpcntl[3]; | ||
| 14 | 	int f_fpregs[8*3]; | ||
| 15 | } fpregset_t; | ||
| 16 | |||
| 17 | struct mcontext { | ||
| 18 | 	int version; | ||
| 19 | 	gregset_t gregs; | ||
| 20 | 	fpregset_t fpregs; | ||
| 21 | }; | ||
| 22 | |||
| 23 | #define MCONTEXT_VERSION 2 | ||
| 24 | |||
| 25 | struct ucontext { | ||
| 26 | 	unsigned long	 uc_flags; | ||
| 27 | 	struct ucontext *uc_link; | ||
| 28 | 	stack_t		 uc_stack; | ||
| 29 | 	struct mcontext	 uc_mcontext; | ||
| 30 | 	unsigned long	 uc_filler[80]; | ||
| 31 | 	sigset_t	 uc_sigmask;	/* mask last for extensibility */ | ||
| 32 | }; | ||
| 33 | |||
| 34 | #endif | ||
| \ No newline at end of file | |||
lib/libc/include/riscv-linux-any/asm/kvm.h+4-4| ... | @@ -110,6 +110,10 @@ struct kvm_riscv_timer { | ... | @@ -110,6 +110,10 @@ struct kvm_riscv_timer { |
| 110 | 	__u64 state; | 110 | 	__u64 state; |
| 111 | }; | 111 | }; |
| 112 | 112 | ||
| 113 | /* Possible states for kvm_riscv_timer */ | ||
| 114 | #define KVM_RISCV_TIMER_STATE_OFF	0 | ||
| 115 | #define KVM_RISCV_TIMER_STATE_ON	1 | ||
| 116 | |||
| 113 | /* | 117 | /* |
| 114 | * ISA extension IDs specific to KVM. This is not the same as the host ISA | 118 | * ISA extension IDs specific to KVM. This is not the same as the host ISA |
| 115 | * extension IDs as that is internal to the host and should not be exposed | 119 | * extension IDs as that is internal to the host and should not be exposed |
| ... | @@ -238,10 +242,6 @@ struct kvm_riscv_sbi_fwft { | ... | @@ -238,10 +242,6 @@ struct kvm_riscv_sbi_fwft { |
| 238 | 	struct kvm_riscv_sbi_fwft_feature pointer_masking; | 242 | 	struct kvm_riscv_sbi_fwft_feature pointer_masking; |
| 239 | }; | 243 | }; |
| 240 | 244 | ||
| 241 | /* Possible states for kvm_riscv_timer */ | ||
| 242 | #define KVM_RISCV_TIMER_STATE_OFF	0 | ||
| 243 | #define KVM_RISCV_TIMER_STATE_ON	1 | ||
| 244 | |||
| 245 | /* If you need to interpret the index values, here is the key: */ | 245 | /* If you need to interpret the index values, here is the key: */ |
| 246 | #define KVM_REG_RISCV_TYPE_MASK		0x00000000FF000000 | 246 | #define KVM_REG_RISCV_TYPE_MASK		0x00000000FF000000 |
| 247 | #define KVM_REG_RISCV_TYPE_SHIFT	24 | 247 | #define KVM_REG_RISCV_TYPE_SHIFT	24 |
lib/libc/include/riscv-linux-any/asm/setup.h+1-1| ... | @@ -3,6 +3,6 @@ | ... | @@ -3,6 +3,6 @@ |
| 3 | #ifndef _ASM_RISCV_SETUP_H | 3 | #ifndef _ASM_RISCV_SETUP_H |
| 4 | #define _ASM_RISCV_SETUP_H | 4 | #define _ASM_RISCV_SETUP_H |
| 5 | 5 | ||
| 6 | #define COMMAND_LINE_SIZE	1024 | 6 | #define COMMAND_LINE_SIZE	2048 |
| 7 | 7 | ||
| 8 | #endif /* _ASM_RISCV_SETUP_H */ | 8 | #endif /* _ASM_RISCV_SETUP_H */ |
| \ No newline at end of file | |||