authorgravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2026-06-16 00:13:45+02:00
committergravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2026-06-16 00:13:45+02:00
log94b69bc99fbe348a04c223eac6590e6ce5a2779c
treec49efcce1ced3c38275d4eb6683105ef2f749491
parent8c3b99a0bbc23fd48a85d445088108eb9d6e7dcf
parent37595b7a1d5649bd9e7c348eced76d2ff60b1fae

Merge pull request 'Linux 7.1 headers + syscalls' (#35782) from alexrp/zig:linux-7.1 into master

Reviewed-on: https://codeberg.org/ziglang/zig/pulls/35782

84 files changed, 1736 insertions(+), 1169 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 2416#define KVM_DEV_ARM_ITS_RESTORE_TABLES 2
417#define KVM_DEV_ARM_VGIC_SAVE_PENDING_TABLES 3417#define KVM_DEV_ARM_VGIC_SAVE_PENDING_TABLES 3
418#define KVM_DEV_ARM_ITS_CTRL_RESET 4418#define KVM_DEV_ARM_ITS_CTRL_RESET 4
419#define KVM_DEV_ARM_VGIC_USERSPACE_PPIS 5
419420
420/* Device Control API on vcpu fd */421/* Device Control API on vcpu fd */
421#define KVM_ARM_VCPU_PMU_V3_CTRL 0422#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 in479 * @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 job486 * @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 in565 * @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 in571 * @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 {
156156
157enum amdxdna_bo_type {157enum 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};
164165
165/**166/**
...@@ -353,7 +354,8 @@ struct amdxdna_drm_query_clock_metadata {...@@ -353,7 +354,8 @@ struct amdxdna_drm_query_clock_metadata {
353};354};
354355
355enum amdxdna_sensor_type {356enum amdxdna_sensor_type {
356 AMDXDNA_SENSOR_TYPE_POWER357 AMDXDNA_SENSOR_TYPE_POWER,
358 AMDXDNA_SENSOR_TYPE_COLUMN_UTILIZATION
357};359};
358360
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};
591593
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 */
608struct 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 0622#define DRM_AMDXDNA_HW_CONTEXT_ALL 0
593#define DRM_AMDXDNA_HW_LAST_ASYNC_ERR 2623#define DRM_AMDXDNA_HW_LAST_ASYNC_ERR 2
624#define DRM_AMDXDNA_BO_USAGE 6
594625
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)
14241424
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 modifier1442 * 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_H27#ifndef _DRM_MODE_H
28#define _DRM_MODE_H28#define _DRM_MODE_H
2929
30#include <linux/bits.h>
31#include <linux/const.h>
32
30#include "drm.h"33#include "drm.h"
3134
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 0169#define DRM_MODE_LINK_STATUS_GOOD 0
167#define DRM_MODE_LINK_STATUS_BAD 1170#define DRM_MODE_LINK_STATUS_BAD 1
168171
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};
15471554
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#endif1634#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 */
17enum drm_ras_node_type {
18 DRM_RAS_NODE_TYPE_ERROR_COUNTER = 1,
19};
20
21enum {
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
31enum {
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
41enum {
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 */
120121
121/* For backwards compat. The original support for preemption was based on122/* 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};
434434
435struct 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 0x00498#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 0x02500#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 0x10508#define DRM_NOUVEAU_VM_INIT 0x10
446#define DRM_NOUVEAU_VM_BIND 0x11509#define DRM_NOUVEAU_VM_BIND 0x11
447#define DRM_NOUVEAU_EXEC 0x12510#define DRM_NOUVEAU_EXEC 0x12
511#define DRM_NOUVEAU_GET_ZCULL_INFO 0x13
448#define DRM_NOUVEAU_GEM_NEW 0x40512#define DRM_NOUVEAU_GEM_NEW 0x40
449#define DRM_NOUVEAU_GEM_PUSHBUF 0x41513#define DRM_NOUVEAU_GEM_PUSHBUF 0x41
450#define DRM_NOUVEAU_GEM_CPU_PREP 0x42514#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#endif584#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};
411411
412/**
413 * enum drm_panthor_timestamp_info_flags - drm_panthor_timestamp_info.flags
414 */
415enum 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 information445 * 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;
423455
424 /** @current_timestamp: The current timestamp. */456 /** @current_timestamp: The current GPU timestamp. */
425 __u64 current_timestamp;457 __u64 current_timestamp;
426458
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};
430489
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_OBSERVATION83 * - &DRM_IOCTL_XE_OBSERVATION
84 * - &DRM_IOCTL_XE_MADVISE84 * - &DRM_IOCTL_XE_MADVISE
85 * - &DRM_IOCTL_XE_VM_QUERY_MEM_RANGE_ATTRS85 * - &DRM_IOCTL_XE_VM_QUERY_MEM_RANGE_ATTRS
86 * - &DRM_IOCTL_XE_VM_GET_PROPERTY
86 */87 */
8788
88/*89/*
...@@ -107,6 +108,7 @@ extern "C" {...@@ -107,6 +108,7 @@ extern "C" {
107#define DRM_XE_MADVISE 0x0c108#define DRM_XE_MADVISE 0x0c
108#define DRM_XE_VM_QUERY_MEM_RANGE_ATTRS 0x0d109#define DRM_XE_VM_QUERY_MEM_RANGE_ATTRS 0x0d
109#define DRM_XE_EXEC_QUEUE_SET_PROPERTY 0x0e110#define DRM_XE_EXEC_QUEUE_SET_PROPERTY 0x0e
111#define DRM_XE_VM_GET_PROPERTY 0x0f
110112
111/* Must be kept compact -- no holes */113/* Must be kept compact -- no holes */
112114
...@@ -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)
128131
129/**132/**
130 * DOC: Xe IOCTL Extensions133 * 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, in362 * @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 reliable365 * 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 value366 * 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 the409 * - %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 alignment415 * - %DRM_XE_QUERY_CONFIG_MIN_ALIGNMENT - Minimal memory alignment
416 * required by this device, typically SZ_4K or SZ_64K416 * required by this device, typically SZ_4K or SZ_64K
417 * - %DRM_XE_QUERY_CONFIG_VA_BITS - Maximum bits of a virtual address417 * - %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 2436#define DRM_XE_QUERY_CONFIG_MIN_ALIGNMENT 2
435#define DRM_XE_QUERY_CONFIG_VA_BITS 3437#define DRM_XE_QUERY_CONFIG_VA_BITS 3
436#define DRM_XE_QUERY_CONFIG_MAX_EXEC_QUEUE_PRIORITY 4438#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 implement978 * 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 */
979struct drm_xe_vm_create {986struct 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;
988996
...@@ -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 when1062 * 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 in1073 * - %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 expects1120 * 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 restrictions1125 * 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 being1126 * 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;
11651183
...@@ -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};
12511269
1270/** struct xe_vm_fault - Describes faults for %DRM_XE_VM_GET_PROPERTY_FAULTS */
1271struct 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 */
1325struct 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_CREATE1354 * 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 queue1386 * - %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–21387 * 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 create1393 * The example below shows how to use @drm_xe_exec_queue_create to create
1290 * a simple exec_queue (no parallel submission) of class1394 * 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 41433#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 51435#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;
13341439
...@@ -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 02205#define DRM_XE_MEM_RANGE_ATTR_PREFERRED_LOC 0
2100#define DRM_XE_MEM_RANGE_ATTR_ATOMIC 12206#define DRM_XE_MEM_RANGE_ATTR_ATOMIC 1
2101#define DRM_XE_MEM_RANGE_ATTR_PAT 22207#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;
21042211
...@@ -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 };
21932366
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};
23592532
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 */
2575enum 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 */
2587enum 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#endif2614#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
11enum 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 */
23struct 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};
4950
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 0x0001350#define AUDIT_STATUS_ENABLED 0x0001
351#define AUDIT_STATUS_FAILURE 0x0002351#define AUDIT_STATUS_FAILURE 0x0002
352#define AUDIT_STATUS_PID 0x0004352#define AUDIT_STATUS_PID 0x0004
353#define AUDIT_STATUS_RATE_LIMIT 0x0008353#define AUDIT_STATUS_RATE_LIMIT 0x0008
354#define AUDIT_STATUS_BACKLOG_LIMIT 0x0010354#define AUDIT_STATUS_BACKLOG_LIMIT 0x0010
355#define AUDIT_STATUS_BACKLOG_WAIT_TIME 0x0020355#define AUDIT_STATUS_BACKLOG_WAIT_TIME 0x0020
356#define AUDIT_STATUS_LOST 0x0040356#define AUDIT_STATUS_LOST 0x0040
...@@ -386,8 +386,8 @@ enum {...@@ -386,8 +386,8 @@ enum {
386 * These bits disambiguate different calling conventions that share an386 * These bits disambiguate different calling conventions that share an
387 * ELF machine type, bitness, and endianness387 * ELF machine type, bitness, and endianness
388 */388 */
389#define __AUDIT_ARCH_CONVENTION_MASK 0x30000000389#define __AUDIT_ARCH_CONVENTION_MASK 0x30000000
390#define __AUDIT_ARCH_CONVENTION_MIPS64_N32 0x20000000390#define __AUDIT_ARCH_CONVENTION_MIPS64_N32 0x20000000
391391
392/* distinguish syscall tables */392/* distinguish syscall tables */
393#define __AUDIT_ARCH_64BIT 0x80000000393#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};
510510
511#define AUDIT_UID_UNSET (unsigned int)-1511#define AUDIT_UID_UNSET ((unsigned int)-1)
512#define AUDIT_SID_UNSET ((unsigned int)-1)512#define AUDIT_SID_UNSET ((unsigned int)-1)
513513
514/* audit_rule_data supports filter rules with both integer and string514/* 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
16struct baycom_debug_data {
17 unsigned long debug1;
18 unsigned long debug2;
19 long debug3;
20};
21
22struct 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 * Description4645 * 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 notification4647 * 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*, notification4651 * 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 notification4653 * 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};
6565
66struct 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 */
104static __inline__ __u8 bsg_scsi_res2_device_status(__u64 res2)
105{
106 return res2 & 0xff;
107}
108static __inline__ __u8 bsg_scsi_res2_driver_status(__u64 res2)
109{
110 return res2 >> 8;
111}
112static __inline__ __u8 bsg_scsi_res2_host_status(__u64 res2)
113{
114 return res2 >> 16;
115}
116static __inline__ __u8 bsg_scsi_res2_sense_len(__u64 res2)
117{
118 return res2 >> 24;
119}
120static __inline__ __u32 bsg_scsi_res2_resid_len(__u64 res2)
121{
122 return res2 >> 32;
123}
124static __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}
66134
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 0xeB9F8#define BTF_MAGIC 0xeB9F
9#define BTF_VERSION 19#define BTF_VERSION 1
1010
11/*
12 * BTF layout section consists of a struct btf_layout for each known
13 * kind at BTF encoding time.
14 */
15struct 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
11struct btf_header {21struct 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};
2335
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__));
12431243
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)
12451246
1246#define BTRFS_QGROUP_LEVEL_SHIFT 481247#define BTRFS_QGROUP_LEVEL_SHIFT 48
1247static __inline__ __u16 btrfs_qgroup_level(__u64 qgroupid)1248static __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 */
26enum 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 */
46enum 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 */
66enum 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 */
81enum 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 */
91enum 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 */
102enum 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 */
142struct 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 */
189enum 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 */
26enum 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
24typedef 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
44typedef 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
64typedef 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
77typedef 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 */
107typedef 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 @@
5050
51#define __KERNEL_DIV_ROUND_UP(n, d) (((n) + (d) - 1) / (d))51#define __KERNEL_DIV_ROUND_UP(n, d) (((n) + (d) - 1) / (d))
5252
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 0x119#define DEVLINK_GENL_VERSION 0x1
20#define DEVLINK_GENL_MCGRP_CONFIG_NAME "config"20#define DEVLINK_GENL_MCGRP_CONFIG_NAME "config"
2121
22#define DEVLINK_INDEX_BUS_NAME "devlink_index"
23
22enum devlink_command {24enum 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 */
644646
647 DEVLINK_ATTR_INDEX, /* uint */
648 DEVLINK_ATTR_RESOURCE_SCOPE_MASK, /* u32 */
649
645 /* Add new attributes above here, update the spec in650 /* Add new attributes above here, update the spec in
646 * Documentation/netlink/specs/devlink.yaml and re-generate651 * 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};
702707
708enum 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
703enum devlink_port_fn_attr_cap {718enum 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};
193193
194#define DPLL_PHASE_OFFSET_DIVIDER 1000194#define DPLL_PHASE_OFFSET_DIVIDER 1000
195#define DPLL_PIN_MEASURED_FREQUENCY_DIVIDER 1000
195196
196/**197/**
197 * enum dpll_feature_state - Allow control (enable/disable) and status checking198 * 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,
221223
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,
257260
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 update231 * 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,
374376
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,
384387
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};
655655
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
16struct 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
26struct 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
35struct hdlcdrv_old_channel_state {
36 int ptt;
37 int dcd;
38 int ptt_keyed;
39};
40
41struct 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
51struct 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_LEARNED742 * @IFLA_BR_FDB_MAX_LEARNED
743 * Set the number of max dynamically learned FDB entries for the current743 * 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 */
746enum {751enum {
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};
799805
800#define IFLA_BR_MAX (__IFLA_BR_MAX - 1)806#define IFLA_BR_MAX (__IFLA_BR_MAX - 1)
801807
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 */
832enum 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
802struct ifla_bridge_id {841struct 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};
12961335
1336enum netkit_pairing {
1337 NETKIT_DEVICE_PAIR,
1338 NETKIT_DEVICE_SINGLE,
1339};
1340
1297/* NETKIT_SCRUB_NONE leaves clearing skb->{mark,priority} up to1341/* NETKIT_SCRUB_NONE leaves clearing skb->{mark,priority} up to
1298 * the BPF program if attached. This also means the latter can1342 * 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};
15711618
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));
105105
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 0x09107#define PADI_CODE 0x09
118#define PADO_CODE 0x07108#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};
131131
132enum {
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 */
133142
134enum {143enum {
lib/libc/include/any-linux-any/linux/io_uring.h+9-95
...@@ -10,6 +10,8 @@...@@ -10,6 +10,8 @@
1010
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 autodetect16 * this file is shared with liburing and that has to autodetect
15 * if linux/time_types.h is available or not, it can17 * 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 {
341343
342/*344/*
343 * sqe->timeout_flags345 * 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};
903911
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};
10521060
1053/* Zero copy receive refill queue entry */
1054struct io_uring_zcrx_rqe {
1055 __u64 off;
1056 __u32 len;
1057 __u32 __pad;
1058};
1059
1060struct 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
1069struct io_uring_zcrx_offsets {
1070 __u32 head;
1071 __u32 tail;
1072 __u32 rqes;
1073 __u32 __resv2;
1074 __u64 __resv[2];
1075};
1076
1077enum io_uring_zcrx_area_flags {
1078 IORING_ZCRX_AREA_DMABUF = 1,
1079};
1080
1081struct 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
1090enum zcrx_reg_flags {
1091 ZCRX_REG_IMPORT = 1,
1092};
1093
1094enum 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 */
1105struct 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
1120enum zcrx_ctrl_op {
1121 ZCRX_CTRL_FLUSH_RQ,
1122 ZCRX_CTRL_EXPORT,
1123
1124 __ZCRX_CTRL_LAST,
1125};
1126
1127struct zcrx_ctrl_flush_rq {
1128 __u64 __resv[6];
1129};
1130
1131struct zcrx_ctrl_export {
1132 __u32 zcrx_fd;
1133 __u32 __resv1[11];
1134};
1135
1136struct 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 __cplusplus1061#ifdef __cplusplus
1148}1062}
1149#endif1063#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 */
15struct io_uring_zcrx_rqe {
16 __u64 off;
17 __u32 len;
18 __u32 __pad;
19};
20
21struct 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
30struct io_uring_zcrx_offsets {
31 __u32 head;
32 __u32 tail;
33 __u32 rqes;
34 __u32 __resv2;
35 __u64 __resv[2];
36};
37
38enum io_uring_zcrx_area_flags {
39 IORING_ZCRX_AREA_DMABUF = 1,
40};
41
42struct 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
51enum 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
62enum 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 */
73struct 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
88enum zcrx_ctrl_op {
89 ZCRX_CTRL_FLUSH_RQ,
90 ZCRX_CTRL_EXPORT,
91
92 __ZCRX_CTRL_LAST,
93};
94
95struct zcrx_ctrl_flush_rq {
96 __u64 __resv[6];
97};
98
99struct zcrx_ctrl_export {
100 __u32 zcrx_fd;
101 __u32 __resv1[11];
102};
103
104struct 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 it695 * @IOMMU_HW_CAP_PCI_PASID_PRIV: Privileged Mode Supported, user ignores it
696 * when the struct696 * 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 */
699enum iommufd_hw_capabilities {702enum 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};
704708
705/**709/**
...@@ -1052,6 +1056,11 @@ struct iommu_fault_alloc {...@@ -1052,6 +1056,11 @@ struct iommu_fault_alloc {
1052enum iommu_viommu_type {1056enum 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};
10571066
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
19typedef struct kcapi_flagdef {
20 int contr;
21 int flag;
22} kcapi_flagdef;
23
24typedef 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 1241#define KT_SLOCK 12
42#define KT_DEAD2 1342#define KT_DEAD2 13
43#define KT_BRL 1443#define KT_BRL 14
44#define KT_CSI 15 /* CSI sequences with modifier support */
4445
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 @@
461462
462#define NR_BRL 11463#define NR_BRL 11
463464
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 256493#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 0xffULL693#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 245984#define KVM_CAP_ARM_SEA_TO_USER 245
980#define KVM_CAP_S390_USER_OPEREXEC 246985#define KVM_CAP_S390_USER_OPEREXEC 246
981#define KVM_CAP_S390_KEYOP 247986#define KVM_CAP_S390_KEYOP 247
987#define KVM_CAP_S390_VSIE_ESAMODE 248
982988
983struct kvm_irq_routing_irqchip {989struct 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_EIOINTC1220#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_PCHPIC1222#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
12171227
1218 KVM_DEV_TYPE_MAX,1228 KVM_DEV_TYPE_MAX,
12191229
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 affects116 * ``LANDLOCK_RESTRICT_SELF_LOG_SAME_EXEC_OFF``, this flag only affects
117 * future nested domains, not the one being created. It can also be used117 * 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 a118 * 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 Landlock251 * 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 used274 * 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 as275 * 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 */
337360
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 117#define DMA_MAP_TO_DEVICE 1
18#define DMA_MAP_FROM_DEVICE 218#define DMA_MAP_FROM_DEVICE 2
1919
20enum {
21 DMA_MAP_BENCH_SINGLE_MODE,
22 DMA_MAP_BENCH_SG_MODE,
23 DMA_MAP_BENCH_MODE_MAX
24};
25
20struct map_benchmark {26struct 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};
3443
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
17enum 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 */
31struct 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 0x00000001112#define FSMOUNT_CLOEXEC 0x00000001
113#define FSMOUNT_NAMESPACE 0x00000002 /* Create the mount in a new mount namespace */
113114
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 {
357357
358struct mshv_vtl_ram_disposition {358struct 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};
362362
363struct mshv_vtl_set_poll_file {363struct 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,
163164
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};
204205
206enum {
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
205enum {215enum {
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,
231242
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)
4848
49
49#define NFT_REG_SIZE 1650#define NFT_REG_SIZE 16
50#define NFT_REG32_SIZE 451#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 options885 * @NFT_EXTHDR_OP_TCPOPT: match against tcp options
885 * @NFT_EXTHDR_OP_IPV4: match against ipv4 options886 * @NFT_EXTHDR_OP_IPV4: match against ipv4 options
886 * @NFT_EXTHDR_OP_SCTP: match against sctp chunks887 * @NFT_EXTHDR_OP_SCTP: match against sctp chunks
887 * @NFT_EXTHDR_OP_DCCP: match against dccp otions888 * @NFT_EXTHDR_OP_DCCP: match against dccp options
888 */889 */
889enum nft_exthdr_op {890enum 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
23struct 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 in56 * @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 deactivated58 * @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 device60 * @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 for61 * @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 index156 * @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 status158 * @NFC_ATTR_FIRMWARE_DOWNLOAD_STATUS: Firmware download operation status
159 * @NFC_ATTR_APDU: Secure element APDU159 * @NFC_ATTR_SE_APDU: Secure element APDU
160 * @NFC_ATTR_TARGET_ISO15693_DSFID: ISO 15693 Data Storage Format Identifier160 * @NFC_ATTR_TARGET_ISO15693_DSFID: ISO 15693 Data Storage Format Identifier
161 * @NFC_ATTR_TARGET_ISO15693_UID: ISO 15693 Unique Identifier161 * @NFC_ATTR_TARGET_ISO15693_UID: ISO 15693 Unique Identifier
162 * @NFC_ATTR_SE_PARAMS: Parameters data from an evt_transaction162 * @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 {
291291
292#define NFC_HEADER_SIZE 1292#define NFC_HEADER_SIZE 1
293293
294/**294/*
295 * Pseudo-header info for raw socket packets295 * Pseudo-header info for raw socket packets
296 * First byte is the adapter index296 * First byte is the adapter index
297 * Second byte contains flags297 * 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 0x002034#define NFSEXP_GATHERED_WRITES 0x0020
35#define NFSEXP_NOREADDIRPLUS 0x004035#define NFSEXP_NOREADDIRPLUS 0x0040
36#define NFSEXP_SECURITY_LABEL 0x008036#define NFSEXP_SECURITY_LABEL 0x0080
37/* 0x100 currently unused */37#define NFSEXP_SIGN_FH 0x0100
38#define NFSEXP_NOHIDE 0x020038#define NFSEXP_NOHIDE 0x0200
39#define NFSEXP_NOSUBTREECHECK 0x040039#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 0x2000055#define NFSEXP_PNFS 0x20000
5656
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 0x3FEFF58#define NFSEXP_ALLFLAGS 0x3FFFF
5959
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,
3940
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 AP906 * @NL80211_CMD_UNEXPECTED_FRAME: Used by an application controlling an AP
907 * (or GO) interface (i.e. hostapd) to ask for unexpected frames to907 * (or GO) interface (i.e. hostapd) to ask for unexpected frames to
908 * implement sending deauth to stations that send unexpected class 3908 * implement sending deauth to stations that send unexpected class 3
909 * frames. Also used as the event sent by the kernel when such a frame909 * 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 and912 * 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 can914 * 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 is1362 * 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 number1418 * @NL80211_CMD_MAX: highest used command number
1365 * @__NL80211_CMD_AFTER_LAST: internal use1419 * @__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,
16261680
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 */
16281694
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 (from2718 * @NL80211_ATTR_HE_CAPABILITY: HE Capability information element (from
2653 * association request when used with NL80211_CMD_NEW_STATION). Can be set2719 * 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 include2723 * @NL80211_ATTR_FTM_RESPONDER: nested attribute which user-space can include
2657 * in %NL80211_CMD_START_AP or %NL80211_CMD_SET_BEACON for fine timing2724 * 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 disable3050 * @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 available3143 * @NUM_NL80211_ATTR: total number of nl80211_attrs available
2988 * @NL80211_ATTR_MAX: highest attribute number currently defined3144 * @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,
35593715
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 */
35613737
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 BSS3826 * @NL80211_IFTYPE_OCB: Outside Context of a BSS
3651 * This mode corresponds to the MIB variable dot11OCBActivated=true3827 * 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 defined3832 * @NL80211_IFTYPE_MAX: highest interface type number currently defined
3654 * @NUM_NL80211_IFTYPES: number of defined interface types3833 * @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,
36743854
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 {
43594539
4360#define NL80211_BAND_ATTR_HT_CAPA NL80211_BAND_ATTR_HT_CAPA4540#define NL80211_BAND_ATTR_HT_CAPA NL80211_BAND_ATTR_HT_CAPA
43614541
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 */
4558enum 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 rule4583 * 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 channel4701 * @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 number4707 * @NL80211_FREQUENCY_ATTR_MAX: highest frequency attribute number
4484 * currently defined4708 * currently defined
4485 * @__NL80211_FREQUENCY_ATTR_AFTER_LAST: internal use4709 * @__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,
45334759
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 PFS5692 * @NL80211_AUTHTYPE_FILS_SK_PFS: Fast Initial Link Setup shared key with PFS
5467 * @NL80211_AUTHTYPE_FILS_PK: Fast Initial Link Setup public key5693 * @NL80211_AUTHTYPE_FILS_PK: Fast Initial Link Setup public key
5468 * @NL80211_AUTHTYPE_EPPKE: Enhanced Privacy Protection Key Exchange5694 * @NL80211_AUTHTYPE_EPPKE: Enhanced Privacy Protection Key Exchange
5695 * @NL80211_AUTHTYPE_IEEE8021X: IEEE 802.1X authentication utilizing
5696 * Authentication frames
5469 * @__NL80211_AUTHTYPE_NUM: internal5697 * @__NL80211_AUTHTYPE_NUM: internal
5470 * @NL80211_AUTHTYPE_MAX: maximum valid auth algorithm5698 * @NL80211_AUTHTYPE_MAX: maximum valid auth algorithm
5471 * @NL80211_AUTHTYPE_AUTOMATIC: determine automatically (if necessary by5699 * @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,
54855714
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 in7024 * 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,
68767111
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 the8752 * @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: Internal8757 * @__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};
85368774
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 */
8790enum 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 on70 * 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 should71 * %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 when75 * @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 the77 * @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 the79 * @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. Only82 * @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 */
85enum ovs_datapath_attr {88enum 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 in101 OVS_DP_ATTR_PER_CPU_PIDS, /* Netlink PIDS to receive upcalls in
95 * per-cpu dispatch mode102 * per-cpu dispatch mode
96 */103 */
97 OVS_DP_ATTR_IFINDEX,104 OVS_DP_ATTR_IFINDEX,
105 /* private: */
98 __OVS_DP_ATTR_MAX106 __OVS_DP_ATTR_MAX
99};107};
100108
...@@ -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 the189 * %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 key190 * 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 and193 * @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 fragment195 * %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 */
198enum ovs_packet_attr {207enum 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_MAX228 __OVS_PACKET_ATTR_MAX
215};229};
216230
...@@ -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 for272 * @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 Netlink280 * 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 */
274enum ovs_vport_attr {293enum 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_MAX311 __OVS_VPORT_ATTR_MAX
288};312};
289313
290#define OVS_VPORT_ATTR_MAX (__OVS_VPORT_ATTR_MAX - 1)314#define OVS_VPORT_ATTR_MAX (__OVS_VPORT_ATTR_MAX - 1)
291315
292/**316/**
293 * enum ovs_vport_upcall_attr - attributes for %OVS_VPORT_UPCALL* commands317 * 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 */
297enum ovs_vport_upcall_attr {321enum 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_MAX325 __OVS_VPORT_UPCALL_ATTR_MAX
301};326};
302327
...@@ -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_MAX460 __OVS_FRAG_TYPE_MAX
435};461};
436462
...@@ -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 all630 * 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 unique635 * @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 rather636 * 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 all637 * 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 */
619enum ovs_flow_attr {647enum 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_MAX664 __OVS_FLOW_ATTR_MAX
634};665};
635666
636#define OVS_FLOW_ATTR_MAX (__OVS_FLOW_ATTR_MAX - 1)667#define OVS_FLOW_ATTR_MAX (__OVS_FLOW_ATTR_MAX - 1)
637668
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 datapath672 * 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-packet690 * 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 the691 * 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 */
661enum ovs_sample_attr {694enum 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,
666702
703 /* public: */
667};704};
668705
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 */
682enum ovs_userspace_attr {719enum 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 port725 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_MAX729 __OVS_USERSPACE_ATTR_MAX
690};730};
691731
...@@ -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 */
808enum ovs_ct_attr {848enum 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 for861 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_MAX864 __OVS_CT_ATTR_MAX
822};865};
823866
...@@ -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 mapping889 * @OVS_NAT_ATTR_PROTO_RANDOM: Flag for fully randomized L4 port mapping
847 */890 */
848enum ovs_nat_attr {891enum 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};
861907
862#define OVS_NAT_ATTR_MAX (__OVS_NAT_ATTR_MAX - 1)908#define OVS_NAT_ATTR_MAX (__OVS_NAT_ATTR_MAX - 1)
863909
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 */
869struct ovs_action_push_eth {914struct ovs_action_push_eth {
870 struct ovs_key_ethernet addresses;915 struct ovs_key_ethernet addresses;
871};916};
872917
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 specified923 * 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 specified926 * 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 */
884enum ovs_check_pkt_len_attr {931enum 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,
890940
941 /* public: */
891};942};
892943
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 in992 * @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 the997 * @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 the998 * 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 to999 * 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 value1023 * 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_MPLS1024 * 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 observers1029 * @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 */
9831039
984enum ovs_action_attr {1040enum 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_*. */
10141072
1073 /* private: */
1015 __OVS_ACTION_ATTR_MAX, /* Nothing past this will be accepted1074 __OVS_ACTION_ATTR_MAX, /* Nothing past this will be accepted
1016 * from userspace. */1075 * from userspace. */
10171076
1077 /* public: */
1018};1078};
10191079
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,
5859
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,
103105
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. */
2728
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 */
3133
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 parameters277 * struct sev_issue_cmd - SEV ioctl parameters
278 *278 *
279 * @cmd: SEV commands to execute279 * @cmd: SEV commands to execute
280 * @opaque: pointer to the command structure280 * @data: pointer to the command structure
281 * @error: SEV FW return code on failure281 * @error: SEV FW return code on failure
282 */282 */
283struct sev_issue_cmd {283struct 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
46typedef struct {
47 char rose_addr[5];
48} rose_address;
49
50struct 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
58struct 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
66struct 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
75struct rose_cause_struct {
76 unsigned char cause;
77 unsigned char diagnostic;
78};
79
80struct 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 */
3232
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_PREEMPT161 * - RSEQ_CS_FLAG_NO_RESTART_ON_PREEMPT
162 * - RSEQ_CS_FLAG_NO_RESTART_ON_SIGNAL162 * - RSEQ_CS_FLAG_NO_RESTART_ON_SIGNAL
163 * - RSEQ_CS_FLAG_NO_RESTART_ON_MIGRATE163 * - 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;
166169
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
20enum 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
34enum 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
60enum 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
74enum 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
87enum 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
98enum 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
108typedef unsigned long io_port; /* type definition for an 'io port address' */
109
110/* SCC statistical information */
111
112struct 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
134struct 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
140struct scc_kiss_cmd {
141 int command; /* one of the KISS-Commands defined above */
142 unsigned param; /* KISS-Param */
143};
144
145struct 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
164struct scc_mem_config {
165 unsigned int dummy;
166 unsigned int bufsize;
167};
168
169struct 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 */
3535
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. */
3943
40/*44/*
41 * cloning flags intersect with CSIGNAL so can be used with unshare and clone345 * 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 */
4549
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 syscall58 * 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)
148158
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};
7676
77struct 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
77struct opal_session_info {90struct 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};
100113
114struct 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
101struct opal_lock_unlock {126struct 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)
219249
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 @@
20enum {20enum {
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 */
23struct trace_buffer_meta {24struct 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;
4142
42 __u64 Reserved1;43 __u64 pages_lost;
43 __u64 Reserved2;44 __u64 pages_touched;
44};45};
4546
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 */
90struct 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 of100 * 64bits are enough now, and it should be easy to extend in case of
62 * running out of feature flags101 * 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)
372411
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 0421#define UBLK_S_DEV_DEAD 0
375#define UBLK_S_DEV_LIVE 1422#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)
472525
473/*526/*
474 * io cmd is described by this structure, and stored in share memory, indexed527 * 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};
745798
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
811static __inline__ __u64 ublk_shmem_zc_addr(__u16 index, __u32 offset)
812{
813 return ((__u64)index << UBLK_SHMEM_ZC_IDX_OFF) | offset;
814}
815
816static __inline__ __u16 ublk_shmem_zc_index(__u64 addr)
817{
818 return (addr >> UBLK_SHMEM_ZC_IDX_OFF) & UBLK_SHMEM_ZC_IDX_MASK;
819}
820
821static __inline__ __u32 ublk_shmem_zc_offset(__u64 addr)
822{
823 return (__u32)(addr & UBLK_SHMEM_ZC_OFF_MASK);
824}
825
746#endif826#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 {
2929
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 message56 * 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};
6164
...@@ -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};
247251
...@@ -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 they268 * 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 running269 * 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 state271 * @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 is274 * @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 0x15102#define USB_REQ_LOOPBACK_DATA_WRITE 0x15
103#define USB_REQ_LOOPBACK_DATA_READ 0x16103#define USB_REQ_LOOPBACK_DATA_READ 0x16
104#define USB_REQ_SET_INTERFACE_DS 0x17104#define USB_REQ_SET_INTERFACE_DS 0x17
105#define USB_REQ_AUTH_IN 0x18
106#define USB_REQ_AUTH_OUT 0x19
105107
106/* specific requests for USB Power Delivery */108/* specific requests for USB Power Delivery */
107#define USB_REQ_GET_PARTNER_PDO 20109#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 a123 * 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 */
133137
134/*138/*
135 * Test Mode Selectors139 * Test Mode Selectors
...@@ -1147,6 +1151,17 @@ struct usb_ptm_cap_descriptor {...@@ -1147,6 +1151,17 @@ struct usb_ptm_cap_descriptor {
11471151
1148/*-------------------------------------------------------------------------*/1152/*-------------------------------------------------------------------------*/
11491153
1154struct 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 with1165/* USB_DT_WIRELESS_ENDPOINT_COMP: companion descriptor associated with
1151 * each endpoint descriptor for a wireless device1166 * 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 4587521#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 73#define LINUX_VERSION_MAJOR 7
4#define LINUX_VERSION_PATCHLEVEL 04#define LINUX_VERSION_PATCHLEVEL 1
5#define LINUX_VERSION_SUBLEVEL 05#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 provided142 * 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: Always145 * Availability: Always
146 */146 */
147struct vfio_group_status {147struct 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 precopy1266 * The initial_bytes field indicates the amount of initial precopy
1267 * data available from the device. This field should have a non-zero initial1267 * 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 field1282 * 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 {
1301struct vfio_precopy_info {1314struct 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};
15121526
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 -------- */
15141538
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 {
102struct bnxt_re_cq_req {102struct 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};
106107
107enum bnxt_re_cq_mask {108enum bnxt_re_resp_cq_mask {
108 BNXT_RE_CQ_TOGGLE_PAGE_SUPPORT = 0x1,109 BNXT_RE_CQ_TOGGLE_PAGE_SUPPORT = 0x1,
109};110};
110111
112enum bnxt_re_req_cq_mask {
113 BNXT_RE_CQ_FIXED_NUM_CQE_ENABLE = 0x1,
114};
115
111struct bnxt_re_cq_resp {116struct 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};
167174
168enum bnxt_re_alloc_page_type {175enum 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 {
231struct bnxt_re_query_device_ex_resp {238struct 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
242struct bnxt_re_db_region {
243 __u32 dpi;
244 __u32 reserved;
245 __aligned_u64 umdbr;
246};
247
248enum 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
254enum bnxt_re_obj_dbr_free_attrs {
255 BNXT_RE_FREE_DBR_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
256};
257
258enum bnxt_re_obj_default_dbr_attrs {
259 BNXT_RE_DEFAULT_DBR_ATTR = (1U << UVERBS_ID_NS_SHIFT),
260};
261
262enum 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 */
55
6#ifndef EFA_ABI_USER_H6#ifndef EFA_ABI_USER_H
...@@ -22,12 +22,12 @@...@@ -22,12 +22,12 @@
22 */22 */
2323
24enum {24enum {
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};
2828
29struct efa_ibv_alloc_ucontext_cmd {29struct 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};
3333
...@@ -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};
4950
50struct efa_ibv_alloc_pd_resp {51struct 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 @@
4646
47enum ib_uverbs_core_support {47enum 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};
5051
51enum ib_uverbs_access_flags {52enum 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};
143144
144enum mlx5_ib_var_obj_destroy_attrs {145enum 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};
102102
103enum mlx5_ib_uapi_var_alloc_flags {
104 MLX5_IB_UAPI_VAR_ALLOC_FLAG_TLP = 1 << 0,
105};
106
103struct mlx5_ib_uapi_reg {107struct 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 {
308308
309 RDMA_NLDEV_CMD_MONITOR,309 RDMA_NLDEV_CMD_MONITOR,
310310
311 RDMA_NLDEV_CMD_FRMR_POOLS_GET, /* can dump */
312
313 RDMA_NLDEV_CMD_FRMR_POOLS_SET,
314
311 RDMA_NLDEV_NUM_OPS315 RDMA_NLDEV_NUM_OPS
312};316};
313317
...@@ -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 */
583587
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 end608 * 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 event1027 __be32 event_count; /* minimum number of event
1028 * occurrences during the event1028 * occurrences during the event
1029 * threshold to caause the LI event1029 * 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 accessible1032 __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 */
30struct sigcontext {30struct sigcontext {
31 struct user_regs_struct sc_regs;31 struct user_regs_struct sc_regs;
32} __aligned(8);32} __attribute__((aligned(8)));
3333
34#endif34#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)
2223
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 0x40000006155#define KVM_DEV_LOONGARCH_PCH_PIC_GRP_CTRL 0x40000006
156#define KVM_DEV_LOONGARCH_PCH_PIC_CTRL_INIT 0156#define KVM_DEV_LOONGARCH_PCH_PIC_CTRL_INIT 0
157157
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
8typedef int greg_t;
9#define NGREG 18
10typedef greg_t gregset_t[NGREG];
11
12typedef struct fpregset {
13 int f_fpcntl[3];
14 int f_fpregs[8*3];
15} fpregset_t;
16
17struct mcontext {
18 int version;
19 gregset_t gregs;
20 fpregset_t fpregs;
21};
22
23#define MCONTEXT_VERSION 2
24
25struct 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};
112112
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 ISA118 * 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 exposed119 * 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};
240244
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 0x00000000FF000000246#define KVM_REG_RISCV_TYPE_MASK 0x00000000FF000000
247#define KVM_REG_RISCV_TYPE_SHIFT 24247#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_H3#ifndef _ASM_RISCV_SETUP_H
4#define _ASM_RISCV_SETUP_H4#define _ASM_RISCV_SETUP_H
55
6#define COMMAND_LINE_SIZE 10246#define COMMAND_LINE_SIZE 2048
77
8#endif /* _ASM_RISCV_SETUP_H */8#endif /* _ASM_RISCV_SETUP_H */
\ No newline at end of file
lib/std/Target.zig+1-1
...@@ -453,7 +453,7 @@ pub const Os = struct {...@@ -453,7 +453,7 @@ pub const Os = struct {
453453
454 break :blk default_min;454 break :blk default_min;
455 },455 },
456 .max = .{ .major = 7, .minor = 0, .patch = 9 },456 .max = .{ .major = 7, .minor = 1, .patch = 9 },
457 },457 },
458 .glibc = blk: {458 .glibc = blk: {
459 // For 32-bit targets that traditionally used 32-bit time, we require459 // For 32-bit targets that traditionally used 32-bit time, we require
lib/std/os/linux/syscalls.zig+1-2
...@@ -1,5 +1,5 @@...@@ -1,5 +1,5 @@
1// This file is automatically generated by tools/generate_linux_syscalls.zig1// This file is automatically generated by tools/generate_linux_syscalls.zig
2// This list current as of kernel: 7.0.02// This list current as of kernel: 7.1.0
33
4pub const X86 = enum(usize) {4pub const X86 = enum(usize) {
5 restart_syscall = 0,5 restart_syscall = 0,
...@@ -9929,7 +9929,6 @@ pub const Hppa64 = enum(usize) {...@@ -9929,7 +9929,6 @@ pub const Hppa64 = enum(usize) {
9929 personality = 136,9929 personality = 136,
9930 setfsuid = 138,9930 setfsuid = 138,
9931 setfsgid = 139,9931 setfsgid = 139,
9932 llseek = 140,
9933 getdents = 141,9932 getdents = 141,
9934 newselect = 142,9933 newselect = 142,
9935 flock = 143,9934 flock = 143,