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 {
416416#define KVM_DEV_ARM_ITS_RESTORE_TABLES 2
417417#define KVM_DEV_ARM_VGIC_SAVE_PENDING_TABLES 3
418418#define KVM_DEV_ARM_ITS_CTRL_RESET 4
419#define KVM_DEV_ARM_VGIC_USERSPACE_PPIS 5
419420
420421/* Device Control API on vcpu fd */
421422#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 {
479479 * @num_syncobj_handles: A count that represents the number of syncobj handles in
480480 * @syncobj_handles.
481481 */
482 __u64 num_syncobj_handles;
482 __u16 num_syncobj_handles;
483 __u16 pad0;
484 __u32 pad1;
483485 /**
484486 * @bo_read_handles: The list of BO handles that the submitted user queue job
485487 * is using for read only. This will update BO fences in the kernel.
......@@ -563,7 +565,8 @@ struct drm_amdgpu_userq_wait {
563565 * @num_syncobj_handles: A count that represents the number of syncobj handles in
564566 * @syncobj_handles.
565567 */
566 __u32 num_syncobj_handles;
568 __u16 num_syncobj_handles;
569 __u16 pad0;
567570 /**
568571 * @num_bo_read_handles: A count that represents the number of read BO handles in
569572 * @bo_read_handles.
lib/libc/include/any-linux-any/drm/amdxdna_accel.h+42-5
......@@ -156,10 +156,11 @@ struct amdxdna_drm_config_hwctx {
156156
157157enum amdxdna_bo_type {
158158 AMDXDNA_BO_INVALID = 0,
159 AMDXDNA_BO_SHMEM,
160 AMDXDNA_BO_DEV_HEAP,
161 AMDXDNA_BO_DEV,
162 AMDXDNA_BO_CMD,
159 AMDXDNA_BO_SHMEM = 1, /* Be compatible with legacy application code. */
160 AMDXDNA_BO_SHARE = 1,
161 AMDXDNA_BO_DEV_HEAP = 2,
162 AMDXDNA_BO_DEV = 3,
163 AMDXDNA_BO_CMD = 4,
163164};
164165
165166/**
......@@ -353,7 +354,8 @@ struct amdxdna_drm_query_clock_metadata {
353354};
354355
355356enum amdxdna_sensor_type {
356 AMDXDNA_SENSOR_TYPE_POWER
357 AMDXDNA_SENSOR_TYPE_POWER,
358 AMDXDNA_SENSOR_TYPE_COLUMN_UTILIZATION
357359};
358360
359361/**
......@@ -589,8 +591,37 @@ struct amdxdna_async_error {
589591 __u64 ex_err_code;
590592};
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 */
592622#define DRM_AMDXDNA_HW_CONTEXT_ALL 0
593623#define DRM_AMDXDNA_HW_LAST_ASYNC_ERR 2
624#define DRM_AMDXDNA_BO_USAGE 6
594625
595626/**
596627 * struct amdxdna_drm_get_array - Get information array.
......@@ -603,6 +634,12 @@ struct amdxdna_drm_get_array {
603634 *
604635 * %DRM_AMDXDNA_HW_CONTEXT_ALL:
605636 * 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.
606643 */
607644 __u32 param;
608645 /**
lib/libc/include/any-linux-any/drm/drm_fourcc.h+16
......@@ -1422,6 +1422,22 @@ drm_fourcc_canonicalize_nvidia_format_mod(__u64 modifier)
14221422#define DRM_FORMAT_MOD_ARM_16X16_BLOCK_U_INTERLEAVED \
14231423 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
14251441/*
14261442 * Allwinner tiled modifier
14271443 *
lib/libc/include/any-linux-any/drm/drm_mode.h+84
......@@ -27,6 +27,9 @@
2727#ifndef _DRM_MODE_H
2828#define _DRM_MODE_H
2929
30#include <linux/bits.h>
31#include <linux/const.h>
32
3033#include "drm.h"
3134
3235#if defined(__cplusplus)
......@@ -166,6 +169,10 @@ extern "C" {
166169#define DRM_MODE_LINK_STATUS_GOOD 0
167170#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
169176/*
170177 * DRM_MODE_ROTATE_<degrees>
171178 *
......@@ -1545,6 +1552,83 @@ struct drm_mode_closefb {
15451552 __u32 pad;
15461553};
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
15481632#if defined(__cplusplus)
15491633}
15501634#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 {
117117 * ioctl will throw -EPIPE.
118118 */
119119#define MSM_PARAM_EN_VM_BIND 0x16 /* WO, once */
120#define MSM_PARAM_AQE 0x17 /* RO */
120121
121122/* For backwards compat. The original support for preemption was based on
122123 * 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 {
432432 __u64 push_ptr;
433433};
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
435498#define DRM_NOUVEAU_GETPARAM 0x00
436499#define DRM_NOUVEAU_SETPARAM 0x01 /* deprecated */
437500#define DRM_NOUVEAU_CHANNEL_ALLOC 0x02
......@@ -445,6 +508,7 @@ struct drm_nouveau_exec {
445508#define DRM_NOUVEAU_VM_INIT 0x10
446509#define DRM_NOUVEAU_VM_BIND 0x11
447510#define DRM_NOUVEAU_EXEC 0x12
511#define DRM_NOUVEAU_GET_ZCULL_INFO 0x13
448512#define DRM_NOUVEAU_GEM_NEW 0x40
449513#define DRM_NOUVEAU_GEM_PUSHBUF 0x41
450514#define DRM_NOUVEAU_GEM_CPU_PREP 0x42
......@@ -513,6 +577,8 @@ struct drm_nouveau_svm_bind {
513577#define DRM_IOCTL_NOUVEAU_VM_INIT DRM_IOWR(DRM_COMMAND_BASE + DRM_NOUVEAU_VM_INIT, struct drm_nouveau_vm_init)
514578#define DRM_IOCTL_NOUVEAU_VM_BIND DRM_IOWR(DRM_COMMAND_BASE + DRM_NOUVEAU_VM_BIND, struct drm_nouveau_vm_bind)
515579#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)
516582#if defined(__cplusplus)
517583}
518584#endif
lib/libc/include/any-linux-any/drm/panthor_drm.h+61-2
......@@ -409,6 +409,38 @@ struct drm_panthor_csif_info {
409409 __u32 pad;
410410};
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
412444/**
413445 * struct drm_panthor_timestamp_info - Timestamp information
414446 *
......@@ -421,11 +453,38 @@ struct drm_panthor_timestamp_info {
421453 */
422454 __u64 timestamp_frequency;
423455
424 /** @current_timestamp: The current timestamp. */
456 /** @current_timestamp: The current GPU timestamp. */
425457 __u64 current_timestamp;
426458
427 /** @timestamp_offset: The offset of the timestamp timer. */
459 /** @timestamp_offset: The offset of the GPU timestamp timer. */
428460 __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;
429488};
430489
431490/**
lib/libc/include/any-linux-any/drm/xe_drm.h+260-8
......@@ -83,6 +83,7 @@ extern "C" {
8383 * - &DRM_IOCTL_XE_OBSERVATION
8484 * - &DRM_IOCTL_XE_MADVISE
8585 * - &DRM_IOCTL_XE_VM_QUERY_MEM_RANGE_ATTRS
86 * - &DRM_IOCTL_XE_VM_GET_PROPERTY
8687 */
8788
8889/*
......@@ -107,6 +108,7 @@ extern "C" {
107108#define DRM_XE_MADVISE 0x0c
108109#define DRM_XE_VM_QUERY_MEM_RANGE_ATTRS 0x0d
109110#define DRM_XE_EXEC_QUEUE_SET_PROPERTY 0x0e
111#define DRM_XE_VM_GET_PROPERTY 0x0f
110112
111113/* Must be kept compact -- no holes */
112114
......@@ -125,6 +127,7 @@ extern "C" {
125127#define DRM_IOCTL_XE_MADVISE DRM_IOW(DRM_COMMAND_BASE + DRM_XE_MADVISE, struct drm_xe_madvise)
126128#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)
127129#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
129132/**
130133 * DOC: Xe IOCTL Extensions
......@@ -335,10 +338,6 @@ struct drm_xe_mem_region {
335338 __u64 total_size;
336339 /**
337340 * @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.
342341 */
343342 __u64 used;
344343 /**
......@@ -363,9 +362,7 @@ struct drm_xe_mem_region {
363362 * @cpu_visible_used: Estimate of CPU visible memory used, in
364363 * bytes.
365364 *
366 * Requires CAP_PERFMON or CAP_SYS_ADMIN to get reliable
367 * accounting. Without this the value here will always equal
368 * zero. Note this is only currently tracked for
365 * Note this is only currently tracked for
369366 * DRM_XE_MEM_REGION_CLASS_VRAM regions (for other types the value
370367 * here will always be zero).
371368 */
......@@ -412,6 +409,9 @@ struct drm_xe_query_mem_regions {
412409 * - %DRM_XE_QUERY_CONFIG_FLAG_HAS_NO_COMPRESSION_HINT - Flag is set if the
413410 * device supports the userspace hint %DRM_XE_GEM_CREATE_FLAG_NO_COMPRESSION.
414411 * 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
415415 * - %DRM_XE_QUERY_CONFIG_MIN_ALIGNMENT - Minimal memory alignment
416416 * required by this device, typically SZ_4K or SZ_64K
417417 * - %DRM_XE_QUERY_CONFIG_VA_BITS - Maximum bits of a virtual address
......@@ -431,6 +431,8 @@ struct drm_xe_query_config {
431431 #define DRM_XE_QUERY_CONFIG_FLAG_HAS_LOW_LATENCY (1 << 1)
432432 #define DRM_XE_QUERY_CONFIG_FLAG_HAS_CPU_ADDR_MIRROR (1 << 2)
433433 #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)
434436#define DRM_XE_QUERY_CONFIG_MIN_ALIGNMENT 2
435437#define DRM_XE_QUERY_CONFIG_VA_BITS 3
436438#define DRM_XE_QUERY_CONFIG_MAX_EXEC_QUEUE_PRIORITY 4
......@@ -975,6 +977,11 @@ struct drm_xe_gem_mmap_offset {
975977 * demand when accessed, and also allows per-VM overcommit of memory.
976978 * The xe driver internally uses recoverable pagefaults to implement
977979 * 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.
978985 */
979986struct drm_xe_vm_create {
980987 /** @extensions: Pointer to the first extension struct, if any */
......@@ -983,6 +990,7 @@ struct drm_xe_vm_create {
983990#define DRM_XE_VM_CREATE_FLAG_SCRATCH_PAGE (1 << 0)
984991#define DRM_XE_VM_CREATE_FLAG_LR_MODE (1 << 1)
985992#define DRM_XE_VM_CREATE_FLAG_FAULT_MODE (1 << 2)
993#define DRM_XE_VM_CREATE_FLAG_NO_VM_OVERCOMMIT (1 << 3)
986994 /** @flags: Flags */
987995 __u32 flags;
988996
......@@ -1053,6 +1061,13 @@ struct drm_xe_vm_destroy {
10531061 * not invoke autoreset. Neither will stack variables going out of scope.
10541062 * Therefore it's recommended to always explicitly reset the madvises when
10551063 * 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+.
10561071 *
10571072 * The @prefetch_mem_region_instance for %DRM_XE_VM_BIND_OP_PREFETCH can also be:
10581073 * - %DRM_XE_CONSULT_MEM_ADVISE_PREF_LOC, which ensures prefetching occurs in
......@@ -1103,7 +1118,9 @@ struct drm_xe_vm_bind_op {
11031118 * incoherent GT access is possible.
11041119 *
11051120 * 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.
11071124 *
11081125 * For DRM_XE_VM_BIND_FLAG_NULL bindings there are no KMD restrictions
11091126 * on the @pat_index. For such mappings there is no actual memory being
......@@ -1160,6 +1177,7 @@ struct drm_xe_vm_bind_op {
11601177#define DRM_XE_VM_BIND_FLAG_CHECK_PXP (1 << 4)
11611178#define DRM_XE_VM_BIND_FLAG_CPU_ADDR_MIRROR (1 << 5)
11621179#define DRM_XE_VM_BIND_FLAG_MADVISE_AUTORESET (1 << 6)
1180#define DRM_XE_VM_BIND_FLAG_DECOMPRESS (1 << 7)
11631181 /** @flags: Bind flags */
11641182 __u32 flags;
11651183
......@@ -1249,6 +1267,89 @@ struct drm_xe_vm_bind {
12491267 __u64 reserved[2];
12501268};
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
12521353/**
12531354 * struct drm_xe_exec_queue_create - Input of &DRM_IOCTL_XE_EXEC_QUEUE_CREATE
12541355 *
......@@ -1285,6 +1386,9 @@ struct drm_xe_vm_bind {
12851386 * - %DRM_XE_EXEC_QUEUE_SET_PROPERTY_MULTI_QUEUE_PRIORITY - Set the queue
12861387 * priority within the multi-queue group. Current valid priority values are 0–2
12871388 * (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).
12881392 *
12891393 * The example below shows how to use @drm_xe_exec_queue_create to create
12901394 * a simple exec_queue (no parallel submission) of class
......@@ -1329,6 +1433,7 @@ struct drm_xe_exec_queue_create {
13291433#define DRM_XE_EXEC_QUEUE_SET_PROPERTY_MULTI_GROUP 4
13301434#define DRM_XE_MULTI_GROUP_CREATE (1ull << 63)
13311435#define DRM_XE_EXEC_QUEUE_SET_PROPERTY_MULTI_QUEUE_PRIORITY 5
1436#define DRM_XE_EXEC_QUEUE_SET_DISABLE_STATE_CACHE_PERF_FIX 6
13321437 /** @extensions: Pointer to the first extension struct, if any */
13331438 __u64 extensions;
13341439
......@@ -2067,6 +2172,7 @@ struct drm_xe_query_eu_stall {
20672172 * - DRM_XE_MEM_RANGE_ATTR_PREFERRED_LOC: Set preferred memory location.
20682173 * - DRM_XE_MEM_RANGE_ATTR_ATOMIC: Set atomic access policy.
20692174 * - DRM_XE_MEM_RANGE_ATTR_PAT: Set page attribute table index.
2175 * - DRM_XE_VMA_ATTR_PURGEABLE_STATE: Set purgeable state for BOs.
20702176 *
20712177 * Example:
20722178 *
......@@ -2099,6 +2205,7 @@ struct drm_xe_madvise {
20992205#define DRM_XE_MEM_RANGE_ATTR_PREFERRED_LOC 0
21002206#define DRM_XE_MEM_RANGE_ATTR_ATOMIC 1
21012207#define DRM_XE_MEM_RANGE_ATTR_PAT 2
2208#define DRM_XE_VMA_ATTR_PURGEABLE_STATE 3
21022209 /** @type: type of attribute */
21032210 __u32 type;
21042211
......@@ -2189,6 +2296,72 @@ struct drm_xe_madvise {
21892296 /** @pat_index.reserved: Reserved */
21902297 __u64 reserved;
21912298 } 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;
21922365 };
21932366
21942367 /** @reserved: Reserved */
......@@ -2357,6 +2530,85 @@ struct drm_xe_exec_queue_set_property {
23572530 __u64 reserved[2];
23582531};
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
23602612#if defined(__cplusplus)
23612613}
23622614#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 {
4444 FWCTL_DEVICE_TYPE_ERROR = 0,
4545 FWCTL_DEVICE_TYPE_MLX5 = 1,
4646 FWCTL_DEVICE_TYPE_CXL = 2,
47 FWCTL_DEVICE_TYPE_BNXT = 3,
4748 FWCTL_DEVICE_TYPE_PDS = 4,
4849};
4950
lib/libc/include/any-linux-any/linux/audit.h+4-4
......@@ -350,7 +350,7 @@ enum {
350350#define AUDIT_STATUS_ENABLED 0x0001
351351#define AUDIT_STATUS_FAILURE 0x0002
352352#define AUDIT_STATUS_PID 0x0004
353#define AUDIT_STATUS_RATE_LIMIT 0x0008
353#define AUDIT_STATUS_RATE_LIMIT 0x0008
354354#define AUDIT_STATUS_BACKLOG_LIMIT 0x0010
355355#define AUDIT_STATUS_BACKLOG_WAIT_TIME 0x0020
356356#define AUDIT_STATUS_LOST 0x0040
......@@ -386,8 +386,8 @@ enum {
386386 * These bits disambiguate different calling conventions that share an
387387 * ELF machine type, bitness, and endianness
388388 */
389#define __AUDIT_ARCH_CONVENTION_MASK 0x30000000
390#define __AUDIT_ARCH_CONVENTION_MIPS64_N32 0x20000000
389#define __AUDIT_ARCH_CONVENTION_MASK 0x30000000
390#define __AUDIT_ARCH_CONVENTION_MIPS64_N32 0x20000000
391391
392392/* distinguish syscall tables */
393393#define __AUDIT_ARCH_64BIT 0x80000000
......@@ -508,7 +508,7 @@ struct audit_tty_status {
508508 __u32 log_passwd; /* 1 = enabled, 0 = disabled */
509509};
510510
511#define AUDIT_UID_UNSET (unsigned int)-1
511#define AUDIT_UID_UNSET ((unsigned int)-1)
512512#define AUDIT_SID_UNSET ((unsigned int)-1)
513513
514514/* 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 {
46454645 * Description
46464646 * Discard reserved ring buffer sample, pointed to by *data*.
46474647 * 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.
46494651 * If **BPF_RB_FORCE_WAKEUP** is specified in *flags*, notification
46504652 * of new data availability is sent unconditionally.
46514653 * 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 {
6363 __u32 padding;
6464};
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
67135#endif /* BSG_H */
\ No newline at end of file
lib/libc/include/any-linux-any/linux/btf.h+12
......@@ -8,6 +8,16 @@
88#define BTF_MAGIC 0xeB9F
99#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
1121struct btf_header {
1222 __u16 magic;
1323 __u8 version;
......@@ -19,6 +29,8 @@ struct btf_header {
1929 __u32 type_len; /* length of type section */
2030 __u32 str_off; /* offset of string section */
2131 __u32 str_len; /* length of string section */
32 __u32 layout_off; /* offset of layout section */
33 __u32 layout_len; /* length of layout section */
2234};
2335
2436/* 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 {
12411241 __le32 flags;
12421242} __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
12461247#define BTRFS_QGROUP_LEVEL_SHIFT 48
12471248static __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 @@
5050
5151#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
5371#endif /* _LINUX_CONST_H */
\ No newline at end of file
lib/libc/include/any-linux-any/linux/devlink.h+15
......@@ -19,6 +19,8 @@
1919#define DEVLINK_GENL_VERSION 0x1
2020#define DEVLINK_GENL_MCGRP_CONFIG_NAME "config"
2121
22#define DEVLINK_INDEX_BUS_NAME "devlink_index"
23
2224enum devlink_command {
2325 /* don't change the order or add anything between, this is ABI! */
2426 DEVLINK_CMD_UNSPEC,
......@@ -642,6 +644,9 @@ enum devlink_attr {
642644 DEVLINK_ATTR_PARAM_VALUE_DEFAULT, /* dynamic */
643645 DEVLINK_ATTR_PARAM_RESET_DEFAULT, /* flag */
644646
647 DEVLINK_ATTR_INDEX, /* uint */
648 DEVLINK_ATTR_RESOURCE_SCOPE_MASK, /* u32 */
649
645650 /* Add new attributes above here, update the spec in
646651 * Documentation/netlink/specs/devlink.yaml and re-generate
647652 * net/devlink/netlink_gen.c.
......@@ -700,6 +705,16 @@ enum devlink_resource_unit {
700705 DEVLINK_RESOURCE_UNIT_ENTRY,
701706};
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
703718enum devlink_port_fn_attr_cap {
704719 DEVLINK_PORT_FN_ATTR_CAP_ROCE_BIT,
705720 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 {
191191 DPLL_PIN_CAPABILITIES_STATE_CAN_CHANGE = 4,
192192};
193193
194#define DPLL_PHASE_OFFSET_DIVIDER 1000
194#define DPLL_PHASE_OFFSET_DIVIDER 1000
195#define DPLL_PIN_MEASURED_FREQUENCY_DIVIDER 1000
195196
196197/**
197198 * enum dpll_feature_state - Allow control (enable/disable) and status checking
......@@ -218,6 +219,7 @@ enum dpll_a {
218219 DPLL_A_CLOCK_QUALITY_LEVEL,
219220 DPLL_A_PHASE_OFFSET_MONITOR,
220221 DPLL_A_PHASE_OFFSET_AVG_FACTOR,
222 DPLL_A_FREQUENCY_MONITOR,
221223
222224 __DPLL_A_MAX,
223225 DPLL_A_MAX = (__DPLL_A_MAX - 1)
......@@ -254,6 +256,7 @@ enum dpll_a_pin {
254256 DPLL_A_PIN_REFERENCE_SYNC,
255257 DPLL_A_PIN_PHASE_ADJUST_GRAN,
256258 DPLL_A_PIN_FRACTIONAL_FREQUENCY_OFFSET_PPT,
259 DPLL_A_PIN_MEASURED_FREQUENCY,
257260
258261 __DPLL_A_PIN_MAX,
259262 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 {
225225 ETHTOOL_ID_UNSPEC,
226226 ETHTOOL_RX_COPYBREAK,
227227 ETHTOOL_TX_COPYBREAK,
228 ETHTOOL_PFC_PREVENTION_TOUT, /* timeout in msecs */
228 ETHTOOL_PFC_PREVENTION_TOUT, /* both pause and pfc, see man ethtool */
229229 ETHTOOL_TX_COPYBREAK_BUF_SIZE,
230230 /*
231231 * 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 {
371371 ETHTOOL_A_COALESCE_TX_AGGR_TIME_USECS,
372372 ETHTOOL_A_COALESCE_RX_PROFILE,
373373 ETHTOOL_A_COALESCE_TX_PROFILE,
374 ETHTOOL_A_COALESCE_RX_CQE_FRAMES,
375 ETHTOOL_A_COALESCE_RX_CQE_NSECS,
374376
375377 __ETHTOOL_A_COALESCE_CNT,
376378 ETHTOOL_A_COALESCE_MAX = (__ETHTOOL_A_COALESCE_CNT - 1)
......@@ -381,6 +383,7 @@ enum {
381383 ETHTOOL_A_PAUSE_STAT_PAD,
382384 ETHTOOL_A_PAUSE_STAT_TX_FRAMES,
383385 ETHTOOL_A_PAUSE_STAT_RX_FRAMES,
386 ETHTOOL_A_PAUSE_STAT_TX_PAUSE_STORM_EVENTS,
384387
385388 __ETHTOOL_A_PAUSE_STAT_CNT,
386389 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 {
653653 __u64 build_id_addr; /* in */
654654};
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
656668#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 {
742742 * @IFLA_BR_FDB_MAX_LEARNED
743743 * Set the number of max dynamically learned FDB entries for the current
744744 * 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.
745750 */
746751enum {
747752 IFLA_BR_UNSPEC,
......@@ -794,11 +799,45 @@ enum {
794799 IFLA_BR_MCAST_QUERIER_STATE,
795800 IFLA_BR_FDB_N_LEARNED,
796801 IFLA_BR_FDB_MAX_LEARNED,
802 IFLA_BR_STP_MODE,
797803 __IFLA_BR_MAX,
798804};
799805
800806#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
802841struct ifla_bridge_id {
803842 __u8 prio[2];
804843 __u8 addr[6]; /* ETH_ALEN */
......@@ -1294,6 +1333,11 @@ enum netkit_mode {
12941333 NETKIT_L3,
12951334};
12961335
1336enum netkit_pairing {
1337 NETKIT_DEVICE_PAIR,
1338 NETKIT_DEVICE_SINGLE,
1339};
1340
12971341/* NETKIT_SCRUB_NONE leaves clearing skb->{mark,priority} up to
12981342 * the BPF program if attached. This also means the latter can
12991343 * consume the two fields if they were populated earlier.
......@@ -1318,6 +1362,7 @@ enum {
13181362 IFLA_NETKIT_PEER_SCRUB,
13191363 IFLA_NETKIT_HEADROOM,
13201364 IFLA_NETKIT_TAILROOM,
1365 IFLA_NETKIT_PAIRING,
13211366 __IFLA_NETKIT_MAX,
13221367};
13231368#define IFLA_NETKIT_MAX (__IFLA_NETKIT_MAX - 1)
......@@ -1566,6 +1611,8 @@ enum {
15661611 IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE,
15671612 IFLA_BOND_SLAVE_PRIO,
15681613 IFLA_BOND_SLAVE_ACTOR_PORT_PRIO,
1614 IFLA_BOND_SLAVE_AD_CHURN_ACTOR_STATE,
1615 IFLA_BOND_SLAVE_AD_CHURN_PARTNER_STATE,
15691616 __IFLA_BOND_SLAVE_MAX,
15701617};
15711618
lib/libc/include/any-linux-any/linux/if_pppox.h-10
......@@ -103,16 +103,6 @@ struct sockaddr_pppol2tpv3in6 {
103103 struct pppol2tpv3in6_addr pppol2tp;
104104} __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
116106/* Codes to identify message types */
117107#define PADI_CODE 0x09
118108#define PADO_CODE 0x07
lib/libc/include/any-linux-any/linux/inet_diag.h+9
......@@ -129,6 +129,15 @@ struct inet_diag_msg {
129129 __u32 idiag_inode;
130130};
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
132141/* Extensions */
133142
134143enum {
lib/libc/include/any-linux-any/linux/io_uring.h+9-95
......@@ -10,6 +10,8 @@
1010
1111#include <linux/fs.h>
1212#include <linux/types.h>
13#include <linux/io_uring/zcrx.h>
14
1315/*
1416 * this file is shared with liburing and that has to autodetect
1517 * if linux/time_types.h is available or not, it can
......@@ -341,6 +343,10 @@ enum io_uring_op {
341343
342344/*
343345 * 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.
344350 */
345351#define IORING_TIMEOUT_ABS (1U << 0)
346352#define IORING_TIMEOUT_UPDATE (1U << 1)
......@@ -349,6 +355,7 @@ enum io_uring_op {
349355#define IORING_LINK_TIMEOUT_UPDATE (1U << 4)
350356#define IORING_TIMEOUT_ETIME_SUCCESS (1U << 5)
351357#define IORING_TIMEOUT_MULTISHOT (1U << 6)
358#define IORING_TIMEOUT_IMMEDIATE_ARG (1U << 7)
352359#define IORING_TIMEOUT_CLOCK_MASK (IORING_TIMEOUT_BOOTTIME | IORING_TIMEOUT_REALTIME)
353360#define IORING_TIMEOUT_UPDATE_MASK (IORING_TIMEOUT_UPDATE | IORING_LINK_TIMEOUT_UPDATE)
354361/*
......@@ -898,7 +905,8 @@ struct io_uring_buf_reg {
898905 __u32 ring_entries;
899906 __u16 bgid;
900907 __u16 flags;
901 __u64 resv[3];
908 __u32 min_left;
909 __u32 resv[5];
902910};
903911
904912/* argument for IORING_REGISTER_PBUF_STATUS */
......@@ -1050,100 +1058,6 @@ struct io_timespec {
10501058 __u64 tv_nsec;
10511059};
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
11471061#ifdef __cplusplus
11481062}
11491063#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 {
695695 * @IOMMU_HW_CAP_PCI_PASID_PRIV: Privileged Mode Supported, user ignores it
696696 * when the struct
697697 * 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)
698701 */
699702enum iommufd_hw_capabilities {
700703 IOMMU_HW_CAP_DIRTY_TRACKING = 1 << 0,
701704 IOMMU_HW_CAP_PCI_PASID_EXEC = 1 << 1,
702705 IOMMU_HW_CAP_PCI_PASID_PRIV = 1 << 2,
706 IOMMU_HW_CAP_PCI_ATS_NOT_SUPPORTED = 1 << 3,
703707};
704708
705709/**
......@@ -1052,6 +1056,11 @@ struct iommu_fault_alloc {
10521056enum iommu_viommu_type {
10531057 IOMMU_VIOMMU_TYPE_DEFAULT = 0,
10541058 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 */
10551064 IOMMU_VIOMMU_TYPE_TEGRA241_CMDQV = 2,
10561065};
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 @@
4141#define KT_SLOCK 12
4242#define KT_DEAD2 13
4343#define KT_BRL 14
44#define KT_CSI 15 /* CSI sequences with modifier support */
4445
4546#define K(t,v) (((t)<<8)|(v))
4647#define KTYP(x) ((x) >> 8)
......@@ -461,5 +462,33 @@
461462
462463#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
464493#define MAX_DIACR 256
465494#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 {
693693#define KVM_VM_TYPE_ARM_IPA_SIZE_MASK 0xffULL
694694#define KVM_VM_TYPE_ARM_IPA_SIZE(x) \
695695 ((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
696701/*
697702 * ioctls for /dev/kvm fds:
698703 */
......@@ -979,6 +984,7 @@ struct kvm_enable_cap {
979984#define KVM_CAP_ARM_SEA_TO_USER 245
980985#define KVM_CAP_S390_USER_OPEREXEC 246
981986#define KVM_CAP_S390_KEYOP 247
987#define KVM_CAP_S390_VSIE_ESAMODE 248
982988
983989struct kvm_irq_routing_irqchip {
984990 __u32 irqchip;
......@@ -1214,6 +1220,10 @@ enum kvm_device_type {
12141220#define KVM_DEV_TYPE_LOONGARCH_EIOINTC KVM_DEV_TYPE_LOONGARCH_EIOINTC
12151221 KVM_DEV_TYPE_LOONGARCH_PCHPIC,
12161222#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
12181228 KVM_DEV_TYPE_MAX,
12191229
lib/libc/include/any-linux-any/linux/landlock.h+24-1
......@@ -116,7 +116,9 @@ struct landlock_ruleset_attr {
116116 * ``LANDLOCK_RESTRICT_SELF_LOG_SAME_EXEC_OFF``, this flag only affects
117117 * future nested domains, not the one being created. It can also be used
118118 * 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.
120122 *
121123 * The following flag supports policy enforcement in multithreaded processes:
122124 *
......@@ -248,6 +250,26 @@ struct landlock_net_port_attr {
248250 *
249251 * This access right is available since the fifth version of the Landlock
250252 * 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>`.
251273 *
252274 * Whether an opened file can be truncated with :manpage:`ftruncate(2)` or used
253275 * with `ioctl(2)` is determined during :manpage:`open(2)`, in the same way as
......@@ -333,6 +355,7 @@ struct landlock_net_port_attr {
333355#define LANDLOCK_ACCESS_FS_REFER (1ULL << 13)
334356#define LANDLOCK_ACCESS_FS_TRUNCATE (1ULL << 14)
335357#define LANDLOCK_ACCESS_FS_IOCTL_DEV (1ULL << 15)
358#define LANDLOCK_ACCESS_FS_RESOLVE_UNIX (1ULL << 16)
336359/* clang-format on */
337360
338361/**
lib/libc/include/any-linux-any/linux/map_benchmark.h+11-2
......@@ -17,6 +17,12 @@
1717#define DMA_MAP_TO_DEVICE 1
1818#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
2026struct map_benchmark {
2127 __u64 avg_map_100ns; /* average map latency in 100ns */
2228 __u64 map_stddev; /* standard deviation of map latency */
......@@ -28,8 +34,11 @@ struct map_benchmark {
2834 __u32 dma_bits; /* DMA addressing capability */
2935 __u32 dma_dir; /* DMA data direction */
3036 __u32 dma_trans_ns; /* time for DMA transmission in ns */
31 __u32 granule; /* how many PAGE_SIZE will do map/unmap once a time */
32 __u8 expansion[76]; /* For future use */
37 __u32 granule; /* - SINGLE_MODE: number of pages mapped/unmapped per operation
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 */
3342};
3443
3544#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 @@
8282#define ADVERTISE_100BASE4 0x0200 /* Try for 100mbps 4k packets */
8383#define ADVERTISE_PAUSE_CAP 0x0400 /* Try for pause */
8484#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 */
8687#define ADVERTISE_RFAULT 0x2000 /* Say we can detect faults */
8788#define ADVERTISE_LPACK 0x4000 /* Ack link partners response */
8889#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 {
110110 * fsmount() flags.
111111 */
112112#define FSMOUNT_CLOEXEC 0x00000001
113#define FSMOUNT_NAMESPACE 0x00000002 /* Create the mount in a new mount namespace */
113114
114115/*
115116 * Mount attributes.
lib/libc/include/any-linux-any/linux/mshv.h+1-1
......@@ -357,7 +357,7 @@ struct mshv_vtl_sint_post_msg {
357357
358358struct mshv_vtl_ram_disposition {
359359 __u64 start_pfn;
360 __u64 last_pfn;
360 __u64 last_pfn; /* last_pfn is excluded from the range [start_pfn, last_pfn) */
361361};
362362
363363struct mshv_vtl_set_poll_file {
lib/libc/include/any-linux-any/linux/netdev.h+11
......@@ -160,6 +160,7 @@ enum {
160160 NETDEV_A_QUEUE_DMABUF,
161161 NETDEV_A_QUEUE_IO_URING,
162162 NETDEV_A_QUEUE_XSK,
163 NETDEV_A_QUEUE_LEASE,
163164
164165 __NETDEV_A_QUEUE_MAX,
165166 NETDEV_A_QUEUE_MAX = (__NETDEV_A_QUEUE_MAX - 1)
......@@ -202,6 +203,15 @@ enum {
202203 NETDEV_A_QSTATS_MAX = (__NETDEV_A_QSTATS_MAX - 1)
203204};
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
205215enum {
206216 NETDEV_A_DMABUF_IFINDEX = 1,
207217 NETDEV_A_DMABUF_QUEUES,
......@@ -228,6 +238,7 @@ enum {
228238 NETDEV_CMD_BIND_RX,
229239 NETDEV_CMD_NAPI_SET,
230240 NETDEV_CMD_BIND_TX,
241 NETDEV_CMD_QUEUE_CREATE,
231242
232243 __NETDEV_CMD_MAX,
233244 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 {
4646};
4747#define NFT_REG_MAX (__NFT_REG_MAX - 1)
4848
49
4950#define NFT_REG_SIZE 16
5051#define NFT_REG32_SIZE 4
5152#define NFT_REG32_COUNT (NFT_REG32_15 - NFT_REG32_00 + 1)
......@@ -884,7 +885,7 @@ enum nft_exthdr_flags {
884885 * @NFT_EXTHDR_OP_TCPOPT: match against tcp options
885886 * @NFT_EXTHDR_OP_IPV4: match against ipv4 options
886887 * @NFT_EXTHDR_OP_SCTP: match against sctp chunks
887 * @NFT_EXTHDR_OP_DCCP: match against dccp otions
888 * @NFT_EXTHDR_OP_DCCP: match against dccp options
888889 */
889890enum nft_exthdr_op {
890891 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 @@
5555 * (it sends %NFC_ATTR_DEVICE_INDEX)
5656 * @NFC_EVENT_TM_ACTIVATED: event emitted when the adapter is activated in
5757 * target mode.
58 * @NFC_EVENT_DEVICE_DEACTIVATED: event emitted when the adapter is deactivated
58 * @NFC_EVENT_TM_DEACTIVATED: event emitted when the adapter is deactivated
5959 * from target mode.
6060 * @NFC_CMD_LLC_GET_PARAMS: request LTO, RW, and MIUX parameters for a device
6161 * @NFC_CMD_LLC_SET_PARAMS: set one or more of LTO, RW, and MIUX parameters for
......@@ -156,7 +156,7 @@ enum nfc_commands {
156156 * @NFC_ATTR_SE_INDEX: Secure element index
157157 * @NFC_ATTR_SE_TYPE: Secure element type (UICC or EMBEDDED)
158158 * @NFC_ATTR_FIRMWARE_DOWNLOAD_STATUS: Firmware download operation status
159 * @NFC_ATTR_APDU: Secure element APDU
159 * @NFC_ATTR_SE_APDU: Secure element APDU
160160 * @NFC_ATTR_TARGET_ISO15693_DSFID: ISO 15693 Data Storage Format Identifier
161161 * @NFC_ATTR_TARGET_ISO15693_UID: ISO 15693 Unique Identifier
162162 * @NFC_ATTR_SE_PARAMS: Parameters data from an evt_transaction
......@@ -291,7 +291,7 @@ struct sockaddr_nfc_llcp {
291291
292292#define NFC_HEADER_SIZE 1
293293
294/**
294/*
295295 * Pseudo-header info for raw socket packets
296296 * First byte is the adapter index
297297 * Second byte contains flags
lib/libc/include/any-linux-any/linux/nfsd/export.h+2-2
......@@ -34,7 +34,7 @@
3434#define NFSEXP_GATHERED_WRITES 0x0020
3535#define NFSEXP_NOREADDIRPLUS 0x0040
3636#define NFSEXP_SECURITY_LABEL 0x0080
37/* 0x100 currently unused */
37#define NFSEXP_SIGN_FH 0x0100
3838#define NFSEXP_NOHIDE 0x0200
3939#define NFSEXP_NOSUBTREECHECK 0x0400
4040#define NFSEXP_NOAUTHNLM 0x0800 /* Don't authenticate NLM requests - just trust */
......@@ -55,7 +55,7 @@
5555#define NFSEXP_PNFS 0x20000
5656
5757/* All flags that we claim to support. (Note we don't support NOACL.) */
58#define NFSEXP_ALLFLAGS 0x3FEFF
58#define NFSEXP_ALLFLAGS 0x3FFFF
5959
6060/* The flags that may vary depending on security flavor: */
6161#define NFSEXP_SECINFO_FLAGS (NFSEXP_READONLY | NFSEXP_ROOTSQUASH \
lib/libc/include/any-linux-any/linux/nfsd_netlink.h+1
......@@ -36,6 +36,7 @@ enum {
3636 NFSD_A_SERVER_LEASETIME,
3737 NFSD_A_SERVER_SCOPE,
3838 NFSD_A_SERVER_MIN_THREADS,
39 NFSD_A_SERVER_FH_KEY,
3940
4041 __NFSD_A_SERVER_MAX,
4142 NFSD_A_SERVER_MAX = (__NFSD_A_SERVER_MAX - 1)
lib/libc/include/any-linux-any/linux/nl80211.h+269-3
......@@ -906,8 +906,9 @@
906906 * @NL80211_CMD_UNEXPECTED_FRAME: Used by an application controlling an AP
907907 * (or GO) interface (i.e. hostapd) to ask for unexpected frames to
908908 * implement sending deauth to stations that send unexpected class 3
909 * frames. Also used as the event sent by the kernel when such a frame
910 * is received.
909 * frames. For NAN_DATA interfaces, this is used to report frames from
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.
911912 * For the event, the %NL80211_ATTR_MAC attribute carries the TA and
912913 * other attributes like the interface index are present.
913914 * If used as the command it must have an interface index and you can
......@@ -1361,6 +1362,59 @@
13611362 * user space that the NAN new cluster has been joined. The cluster ID is
13621363 * indicated by %NL80211_ATTR_MAC.
13631364 *
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.
13641418 * @NL80211_CMD_MAX: highest used command number
13651419 * @__NL80211_CMD_AFTER_LAST: internal use
13661420 */
......@@ -1624,6 +1678,18 @@ enum nl80211_commands {
16241678 NL80211_CMD_NAN_NEXT_DW_NOTIFICATION,
16251679 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
16271693 /* add new commands above here */
16281694
16291695 /* used to define NL80211_CMD_MAX below */
......@@ -2651,7 +2717,8 @@ enum nl80211_commands {
26512717 * a flow is assigned on each round of the DRR scheduler.
26522718 * @NL80211_ATTR_HE_CAPABILITY: HE Capability information element (from
26532719 * 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).
26552722 *
26562723 * @NL80211_ATTR_FTM_RESPONDER: nested attribute which user-space can include
26572724 * in %NL80211_CMD_START_AP or %NL80211_CMD_SET_BEACON for fine timing
......@@ -2983,6 +3050,95 @@ enum nl80211_commands {
29833050 * @NL80211_ATTR_DISABLE_UHR: Force UHR capable interfaces to disable
29843051 * this feature during association. This is a flag attribute.
29853052 * 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.
29863142 *
29873143 * @NUM_NL80211_ATTR: total number of nl80211_attrs available
29883144 * @NL80211_ATTR_MAX: highest attribute number currently defined
......@@ -3557,6 +3713,26 @@ enum nl80211_attrs {
35573713 NL80211_ATTR_UHR_CAPABILITY,
35583714 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
35603736 /* add attributes here, update the policy in nl80211.c */
35613737
35623738 __NL80211_ATTR_AFTER_LAST,
......@@ -3650,6 +3826,9 @@ enum nl80211_attrs {
36503826 * @NL80211_IFTYPE_OCB: Outside Context of a BSS
36513827 * This mode corresponds to the MIB variable dot11OCBActivated=true
36523828 * @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).
36533832 * @NL80211_IFTYPE_MAX: highest interface type number currently defined
36543833 * @NUM_NL80211_IFTYPES: number of defined interface types
36553834 *
......@@ -3671,6 +3850,7 @@ enum nl80211_iftype {
36713850 NL80211_IFTYPE_P2P_DEVICE,
36723851 NL80211_IFTYPE_OCB,
36733852 NL80211_IFTYPE_NAN,
3853 NL80211_IFTYPE_NAN_DATA,
36743854
36753855 /* keep last */
36763856 NUM_NL80211_IFTYPES,
......@@ -4359,6 +4539,46 @@ enum nl80211_band_attr {
43594539
43604540#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
43624582/**
43634583 * enum nl80211_wmm_rule - regulatory wmm rule
43644584 *
......@@ -4480,6 +4700,10 @@ enum nl80211_wmm_rule {
44804700 * as a non-primary subchannel. Only applicable to S1G channels.
44814701 * @NL80211_FREQUENCY_ATTR_NO_UHR: UHR operation is not allowed on this channel
44824702 * 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
44834707 * @NL80211_FREQUENCY_ATTR_MAX: highest frequency attribute number
44844708 * currently defined
44854709 * @__NL80211_FREQUENCY_ATTR_AFTER_LAST: internal use
......@@ -4530,6 +4754,8 @@ enum nl80211_frequency_attr {
45304754 NL80211_FREQUENCY_ATTR_NO_16MHZ,
45314755 NL80211_FREQUENCY_ATTR_S1G_NO_PRIMARY,
45324756 NL80211_FREQUENCY_ATTR_NO_UHR,
4757 NL80211_FREQUENCY_ATTR_CAC_START_TIME,
4758 NL80211_FREQUENCY_ATTR_PAD,
45334759
45344760 /* keep last */
45354761 __NL80211_FREQUENCY_ATTR_AFTER_LAST,
......@@ -5466,6 +5692,8 @@ enum nl80211_bss_status {
54665692 * @NL80211_AUTHTYPE_FILS_SK_PFS: Fast Initial Link Setup shared key with PFS
54675693 * @NL80211_AUTHTYPE_FILS_PK: Fast Initial Link Setup public key
54685694 * @NL80211_AUTHTYPE_EPPKE: Enhanced Privacy Protection Key Exchange
5695 * @NL80211_AUTHTYPE_IEEE8021X: IEEE 802.1X authentication utilizing
5696 * Authentication frames
54695697 * @__NL80211_AUTHTYPE_NUM: internal
54705698 * @NL80211_AUTHTYPE_MAX: maximum valid auth algorithm
54715699 * @NL80211_AUTHTYPE_AUTOMATIC: determine automatically (if necessary by
......@@ -5482,6 +5710,7 @@ enum nl80211_auth_type {
54825710 NL80211_AUTHTYPE_FILS_SK_PFS,
54835711 NL80211_AUTHTYPE_FILS_PK,
54845712 NL80211_AUTHTYPE_EPPKE,
5713 NL80211_AUTHTYPE_IEEE8021X,
54855714
54865715 /* keep last */
54875716 __NL80211_AUTHTYPE_NUM,
......@@ -6795,6 +7024,11 @@ enum nl80211_feature_flags {
67957024 * frames in both non‑AP STA and AP mode as specified in
67967025 * "IEEE P802.11bi/D3.0, 12.16.6".
67977026 *
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 *
67987032 * @NUM_NL80211_EXT_FEATURES: number of extended features.
67997033 * @MAX_NL80211_EXT_FEATURES: highest extended feature index.
68007034 */
......@@ -6873,6 +7107,7 @@ enum nl80211_ext_feature_index {
68737107 NL80211_EXT_FEATURE_BEACON_RATE_EHT,
68747108 NL80211_EXT_FEATURE_EPPKE,
68757109 NL80211_EXT_FEATURE_ASSOC_FRAME_ENCRYPTION,
7110 NL80211_EXT_FEATURE_IEEE8021X_AUTH,
68767111
68777112 /* add new features before the definition below */
68787113 NUM_NL80211_EXT_FEATURES,
......@@ -8517,6 +8752,8 @@ enum nl80211_s1g_short_beacon_attrs {
85178752 * @NL80211_NAN_CAPA_CAPABILITIES: u8 attribute containing the
85188753 * capabilities of the device as defined in Wi-Fi Aware (TM)
85198754 * 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.
85208757 * @__NL80211_NAN_CAPABILITIES_LAST: Internal
85218758 * @NL80211_NAN_CAPABILITIES_MAX: Highest NAN capability attribute.
85228759 */
......@@ -8529,9 +8766,38 @@ enum nl80211_nan_capabilities {
85298766 NL80211_NAN_CAPA_NUM_ANTENNAS,
85308767 NL80211_NAN_CAPA_MAX_CHANNEL_SWITCH_TIME,
85318768 NL80211_NAN_CAPA_CAPABILITIES,
8769 NL80211_NAN_CAPA_PHY,
85328770 /* keep last */
85338771 __NL80211_NAN_CAPABILITIES_LAST,
85348772 NL80211_NAN_CAPABILITIES_MAX = __NL80211_NAN_CAPABILITIES_LAST - 1,
85358773};
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
85378803#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 {
7070 * set on the datapath port (for OVS_ACTION_ATTR_MISS). Only valid on
7171 * %OVS_DP_CMD_NEW requests. A value of zero indicates that upcalls should
7272 * not be sent.
73 * @OVS_DP_ATTR_MASKS_CACHE_SIZE: Number of the entries in the flow table
74 * masks cache.
7375 * @OVS_DP_ATTR_PER_CPU_PIDS: Per-cpu array of PIDs for upcalls when
7476 * OVS_DP_F_DISPATCH_UPCALL_PER_CPU feature is set.
7577 * @OVS_DP_ATTR_STATS: Statistics about packets that have passed through the
7678 * datapath. Always present in notifications.
7779 * @OVS_DP_ATTR_MEGAFLOW_STATS: Statistics about mega flow masks usage for the
7880 * datapath. Always present in notifications.
81 * @OVS_DP_ATTR_USER_FEATURES: OVS_DP_F_* flags.
7982 * @OVS_DP_ATTR_IFINDEX: Interface index for a new datapath netdev. Only
8083 * valid for %OVS_DP_CMD_NEW requests.
8184 *
......@@ -83,18 +86,23 @@ enum ovs_datapath_cmd {
8386 * payload for %OVS_DP_* commands.
8487 */
8588enum ovs_datapath_attr {
89 /* private: */
8690 OVS_DP_ATTR_UNSPEC,
91 /* public: */
8792 OVS_DP_ATTR_NAME, /* name of dp_ifindex netdev */
8893 OVS_DP_ATTR_UPCALL_PID, /* Netlink PID to receive upcalls */
8994 OVS_DP_ATTR_STATS, /* struct ovs_dp_stats */
9095 OVS_DP_ATTR_MEGAFLOW_STATS, /* struct ovs_dp_megaflow_stats */
9196 OVS_DP_ATTR_USER_FEATURES, /* OVS_DP_F_* */
97 /* private: */
9298 OVS_DP_ATTR_PAD,
99 /* public: */
93100 OVS_DP_ATTR_MASKS_CACHE_SIZE,
94101 OVS_DP_ATTR_PER_CPU_PIDS, /* Netlink PIDS to receive upcalls in
95102 * per-cpu dispatch mode
96103 */
97104 OVS_DP_ATTR_IFINDEX,
105 /* private: */
98106 __OVS_DP_ATTR_MAX
99107};
100108
......@@ -181,6 +189,7 @@ enum ovs_packet_cmd {
181189 * %OVS_USERSPACE_ATTR_EGRESS_TUN_PORT attribute, which is sent only if the
182190 * output port is actually a tunnel port. Contains the output tunnel key
183191 * extracted from the packet as nested %OVS_TUNNEL_KEY_ATTR_* attributes.
192 * @OVS_PACKET_ATTR_PROBE: Packet operation is a feature probe.
184193 * @OVS_PACKET_ATTR_MRU: Present for an %OVS_PACKET_CMD_ACTION and
185194 * @OVS_PACKET_ATTR_LEN: Packet size before truncation.
186195 * %OVS_PACKET_ATTR_USERSPACE action specify the Maximum received fragment
......@@ -196,21 +205,26 @@ enum ovs_packet_cmd {
196205 * payload for %OVS_PACKET_* commands.
197206 */
198207enum ovs_packet_attr {
208 /* private: */
199209 OVS_PACKET_ATTR_UNSPEC,
210 /* public: */
200211 OVS_PACKET_ATTR_PACKET, /* Packet data. */
201212 OVS_PACKET_ATTR_KEY, /* Nested OVS_KEY_ATTR_* attributes. */
202213 OVS_PACKET_ATTR_ACTIONS, /* Nested OVS_ACTION_ATTR_* attributes. */
203214 OVS_PACKET_ATTR_USERDATA, /* OVS_ACTION_ATTR_USERSPACE arg. */
204215 OVS_PACKET_ATTR_EGRESS_TUN_KEY, /* Nested OVS_TUNNEL_KEY_ATTR_*
205216 attributes. */
217 /* private: */
206218 OVS_PACKET_ATTR_UNUSED1,
207219 OVS_PACKET_ATTR_UNUSED2,
220 /* public: */
208221 OVS_PACKET_ATTR_PROBE, /* Packet operation is a feature probe,
209222 error logging should be suppressed. */
210223 OVS_PACKET_ATTR_MRU, /* Maximum received IP fragment size. */
211224 OVS_PACKET_ATTR_LEN, /* Packet size before truncation. */
212225 OVS_PACKET_ATTR_HASH, /* Packet hash. */
213226 OVS_PACKET_ATTR_UPCALL_PID, /* u32 Netlink PID. */
227 /* private: */
214228 __OVS_PACKET_ATTR_MAX
215229};
216230
......@@ -257,6 +271,11 @@ enum ovs_vport_type {
257271 * upcalls should not be sent.
258272 * @OVS_VPORT_ATTR_STATS: A &struct ovs_vport_stats giving statistics for
259273 * 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.
260279 *
261280 * These attributes follow the &struct ovs_header within the Generic Netlink
262281 * payload for %OVS_VPORT_* commands.
......@@ -272,7 +291,9 @@ enum ovs_vport_type {
272291 * ovs_header plus %OVS_VPORT_ATTR_PORT_NO determine the vport.
273292 */
274293enum ovs_vport_attr {
294 /* private: */
275295 OVS_VPORT_ATTR_UNSPEC,
296 /* public: */
276297 OVS_VPORT_ATTR_PORT_NO, /* u32 port number within datapath */
277298 OVS_VPORT_ATTR_TYPE, /* u32 OVS_VPORT_TYPE_* constant. */
278299 OVS_VPORT_ATTR_NAME, /* string name, up to IFNAMSIZ bytes long */
......@@ -280,23 +301,27 @@ enum ovs_vport_attr {
280301 OVS_VPORT_ATTR_UPCALL_PID, /* array of u32 Netlink socket PIDs for */
281302 /* receiving upcalls */
282303 OVS_VPORT_ATTR_STATS, /* struct ovs_vport_stats */
304 /* private: */
283305 OVS_VPORT_ATTR_PAD,
306 /* public: */
284307 OVS_VPORT_ATTR_IFINDEX,
285308 OVS_VPORT_ATTR_NETNSID,
286309 OVS_VPORT_ATTR_UPCALL_STATS,
310 /* private: */
287311 __OVS_VPORT_ATTR_MAX
288312};
289313
290314#define OVS_VPORT_ATTR_MAX (__OVS_VPORT_ATTR_MAX - 1)
291315
292316/**
293 * enum ovs_vport_upcall_attr - attributes for %OVS_VPORT_UPCALL* commands
294 * @OVS_VPORT_UPCALL_SUCCESS: 64-bit upcall success packets.
295 * @OVS_VPORT_UPCALL_FAIL: 64-bit upcall fail packets.
317 * enum ovs_vport_upcall_attr - attributes for %OVS_VPORT_ATTR_UPCALL_STATS
318 * @OVS_VPORT_UPCALL_ATTR_SUCCESS: 64-bit upcall success packets.
319 * @OVS_VPORT_UPCALL_ATTR_FAIL: 64-bit upcall fail packets.
296320 */
297321enum ovs_vport_upcall_attr {
298322 OVS_VPORT_UPCALL_ATTR_SUCCESS,
299323 OVS_VPORT_UPCALL_ATTR_FAIL,
324 /* private: */
300325 __OVS_VPORT_UPCALL_ATTR_MAX
301326};
302327
......@@ -431,6 +456,7 @@ enum ovs_frag_type {
431456 OVS_FRAG_TYPE_NONE,
432457 OVS_FRAG_TYPE_FIRST,
433458 OVS_FRAG_TYPE_LATER,
459 /* private: */
434460 __OVS_FRAG_TYPE_MAX
435461};
436462
......@@ -604,6 +630,8 @@ struct ovs_nsh_key_md1 {
604630 * a wildcarded match. Omitting attribute is treated as wildcarding all
605631 * corresponding fields. Optional for all requests. If not present,
606632 * 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.
607635 * @OVS_FLOW_ATTR_UFID: A value between 1-16 octets specifying a unique
608636 * identifier for the flow. Causes the flow to be indexed by this value rather
609637 * than the value of the %OVS_FLOW_ATTR_KEY attribute. Optional for all
......@@ -617,7 +645,9 @@ struct ovs_nsh_key_md1 {
617645 * payload for %OVS_FLOW_* commands.
618646 */
619647enum ovs_flow_attr {
648 /* private: */
620649 OVS_FLOW_ATTR_UNSPEC,
650 /* public: */
621651 OVS_FLOW_ATTR_KEY, /* Sequence of OVS_KEY_ATTR_* attributes. */
622652 OVS_FLOW_ATTR_ACTIONS, /* Nested OVS_ACTION_ATTR_* attributes. */
623653 OVS_FLOW_ATTR_STATS, /* struct ovs_flow_stats. */
......@@ -629,13 +659,14 @@ enum ovs_flow_attr {
629659 * logging should be suppressed. */
630660 OVS_FLOW_ATTR_UFID, /* Variable length unique flow identifier. */
631661 OVS_FLOW_ATTR_UFID_FLAGS,/* u32 of OVS_UFID_F_*. */
662 /* private: */
632663 OVS_FLOW_ATTR_PAD,
633664 __OVS_FLOW_ATTR_MAX
634665};
635666
636667#define OVS_FLOW_ATTR_MAX (__OVS_FLOW_ATTR_MAX - 1)
637668
638/**
669/*
639670 * Omit attributes for notifications.
640671 *
641672 * If a datapath request contains an %OVS_UFID_F_OMIT_* flag, then the datapath
......@@ -653,17 +684,23 @@ enum ovs_flow_attr {
653684 * fractions of packets.
654685 * @OVS_SAMPLE_ATTR_ACTIONS: Set of actions to execute in sampling event.
655686 * Actions are passed as nested attributes.
687 * @OVS_SAMPLE_ATTR_ARG: For in-kernel use, passing &struct sample_arg
688 * derived from other attributes.
656689 *
657690 * Executes the specified actions with the given probability on a per-packet
658691 * basis. Nested actions will be able to access the probability value of the
659692 * parent @OVS_ACTION_ATTR_SAMPLE.
660693 */
661694enum ovs_sample_attr {
695 /* private: */
662696 OVS_SAMPLE_ATTR_UNSPEC,
697 /* public: */
663698 OVS_SAMPLE_ATTR_PROBABILITY, /* u32 number */
664699 OVS_SAMPLE_ATTR_ACTIONS, /* Nested OVS_ACTION_ATTR_* attributes. */
700 /* private: */
665701 __OVS_SAMPLE_ATTR_MAX,
666702
703 /* public: */
667704};
668705
669706#define OVS_SAMPLE_ATTR_MAX (__OVS_SAMPLE_ATTR_MAX - 1)
......@@ -680,12 +717,15 @@ enum ovs_sample_attr {
680717 * @OVS_USERSPACE_ATTR_ACTIONS: If present, send actions with upcall.
681718 */
682719enum ovs_userspace_attr {
720 /* private: */
683721 OVS_USERSPACE_ATTR_UNSPEC,
722 /* public: */
684723 OVS_USERSPACE_ATTR_PID, /* u32 Netlink PID to receive upcalls. */
685724 OVS_USERSPACE_ATTR_USERDATA, /* Optional user-specified cookie. */
686725 OVS_USERSPACE_ATTR_EGRESS_TUN_PORT, /* Optional, u32 output port
687726 * to get tunnel info. */
688727 OVS_USERSPACE_ATTR_ACTIONS, /* Optional flag to get actions. */
728 /* private: */
689729 __OVS_USERSPACE_ATTR_MAX
690730};
691731
......@@ -806,7 +846,9 @@ struct ovs_action_hash {
806846 * @OVS_CT_ATTR_TIMEOUT: Variable length string defining conntrack timeout.
807847 */
808848enum ovs_ct_attr {
849 /* private: */
809850 OVS_CT_ATTR_UNSPEC,
851 /* public: */
810852 OVS_CT_ATTR_COMMIT, /* No argument, commits connection. */
811853 OVS_CT_ATTR_ZONE, /* u16 zone id. */
812854 OVS_CT_ATTR_MARK, /* mark to associate with this connection. */
......@@ -818,6 +860,7 @@ enum ovs_ct_attr {
818860 OVS_CT_ATTR_EVENTMASK, /* u32 mask of IPCT_* events. */
819861 OVS_CT_ATTR_TIMEOUT, /* Associate timeout with this connection for
820862 * fine-grain timeout tuning. */
863 /* private: */
821864 __OVS_CT_ATTR_MAX
822865};
823866
......@@ -846,7 +889,9 @@ enum ovs_ct_attr {
846889 * @OVS_NAT_ATTR_PROTO_RANDOM: Flag for fully randomized L4 port mapping
847890 */
848891enum ovs_nat_attr {
892 /* private: */
849893 OVS_NAT_ATTR_UNSPEC,
894 /* public: */
850895 OVS_NAT_ATTR_SRC,
851896 OVS_NAT_ATTR_DST,
852897 OVS_NAT_ATTR_IP_MIN,
......@@ -856,38 +901,44 @@ enum ovs_nat_attr {
856901 OVS_NAT_ATTR_PERSISTENT,
857902 OVS_NAT_ATTR_PROTO_HASH,
858903 OVS_NAT_ATTR_PROTO_RANDOM,
904 /* private: */
859905 __OVS_NAT_ATTR_MAX,
860906};
861907
862908#define OVS_NAT_ATTR_MAX (__OVS_NAT_ATTR_MAX - 1)
863909
864/*
910/**
865911 * struct ovs_action_push_eth - %OVS_ACTION_ATTR_PUSH_ETH action argument.
866912 * @addresses: Source and destination MAC addresses.
867 * @eth_type: Ethernet type
868913 */
869914struct ovs_action_push_eth {
870915 struct ovs_key_ethernet addresses;
871916};
872917
873/*
918/**
874919 * enum ovs_check_pkt_len_attr - Attributes for %OVS_ACTION_ATTR_CHECK_PKT_LEN.
875920 *
876921 * @OVS_CHECK_PKT_LEN_ATTR_PKT_LEN: u16 Packet length to check for.
877922 * @OVS_CHECK_PKT_LEN_ATTR_ACTIONS_IF_GREATER: Nested OVS_ACTION_ATTR_*
878923 * actions to apply if the packer length is greater than the specified
879924 * 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_*
881926 * actions to apply if the packer length is lesser or equal to the specified
882927 * 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.
883930 */
884931enum ovs_check_pkt_len_attr {
932 /* private: */
885933 OVS_CHECK_PKT_LEN_ATTR_UNSPEC,
934 /* public: */
886935 OVS_CHECK_PKT_LEN_ATTR_PKT_LEN,
887936 OVS_CHECK_PKT_LEN_ATTR_ACTIONS_IF_GREATER,
888937 OVS_CHECK_PKT_LEN_ATTR_ACTIONS_IF_LESS_EQUAL,
938 /* private: */
889939 __OVS_CHECK_PKT_LEN_ATTR_MAX,
890940
941 /* public: */
891942};
892943
893944#define OVS_CHECK_PKT_LEN_ATTR_MAX (__OVS_CHECK_PKT_LEN_ATTR_MAX - 1)
......@@ -940,6 +991,9 @@ enum ovs_psample_attr {
940991 * from the packet.
941992 * @OVS_ACTION_ATTR_SAMPLE: Probabilitically executes actions, as specified in
942993 * 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.
943997 * @OVS_ACTION_ATTR_PUSH_MPLS: Push a new MPLS label stack entry onto the
944998 * top of the packets MPLS label stack. Set the ethertype of the
945999 * encapsulating frame to either %ETH_P_MPLS_UC or %ETH_P_MPLS_MC to
......@@ -969,6 +1023,8 @@ enum ovs_psample_attr {
9691023 * start of the packet or at the start of the l3 header depending on the value
9701024 * of l3 tunnel flag in the tun_flags field of OVS_ACTION_ATTR_ADD_MPLS
9711025 * 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.
9721028 * @OVS_ACTION_ATTR_DROP: Explicit drop action.
9731029 * @OVS_ACTION_ATTR_PSAMPLE: Send a sample of the packet to external observers
9741030 * via psample.
......@@ -982,7 +1038,9 @@ enum ovs_psample_attr {
9821038 */
9831039
9841040enum ovs_action_attr {
1041 /* private: */
9851042 OVS_ACTION_ATTR_UNSPEC,
1043 /* public: */
9861044 OVS_ACTION_ATTR_OUTPUT, /* u32 port number. */
9871045 OVS_ACTION_ATTR_USERSPACE, /* Nested OVS_USERSPACE_ATTR_*. */
9881046 OVS_ACTION_ATTR_SET, /* One nested OVS_KEY_ATTR_*. */
......@@ -1012,9 +1070,11 @@ enum ovs_action_attr {
10121070 OVS_ACTION_ATTR_DROP, /* u32 error code. */
10131071 OVS_ACTION_ATTR_PSAMPLE, /* Nested OVS_PSAMPLE_ATTR_*. */
10141072
1073 /* private: */
10151074 __OVS_ACTION_ATTR_MAX, /* Nothing past this will be accepted
10161075 * from userspace. */
10171076
1077 /* public: */
10181078};
10191079
10201080#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 {
5555 OVPN_A_PEER_LINK_TX_BYTES,
5656 OVPN_A_PEER_LINK_RX_PACKETS,
5757 OVPN_A_PEER_LINK_TX_PACKETS,
58 OVPN_A_PEER_TX_ID,
5859
5960 __OVPN_A_PEER_MAX,
6061 OVPN_A_PEER_MAX = (__OVPN_A_PEER_MAX - 1)
......@@ -100,6 +101,7 @@ enum {
100101 OVPN_CMD_KEY_SWAP,
101102 OVPN_CMD_KEY_SWAP_NTF,
102103 OVPN_CMD_KEY_DEL,
104 OVPN_CMD_PEER_FLOAT_NTF,
103105
104106 __OVPN_CMD_MAX,
105107 OVPN_CMD_MAX = (__OVPN_CMD_MAX - 1)
lib/libc/include/any-linux-any/linux/pidfd.h+4
......@@ -24,10 +24,12 @@
2424#define PIDFD_INFO_COREDUMP (1UL << 4) /* Only returned if requested. */
2525#define PIDFD_INFO_SUPPORTED_MASK (1UL << 5) /* Want/got supported mask flags */
2626#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
2829#define PIDFD_INFO_SIZE_VER0 64 /* sizeof first published struct */
2930#define PIDFD_INFO_SIZE_VER1 72 /* sizeof second published struct */
3031#define PIDFD_INFO_SIZE_VER2 80 /* sizeof third published struct */
32#define PIDFD_INFO_SIZE_VER3 88 /* sizeof fourth published struct */
3133
3234/*
3335 * Values for @coredump_mask in pidfd_info.
......@@ -94,6 +96,8 @@ struct pidfd_info {
9496 struct /* coredump info */ {
9597 __u32 coredump_mask;
9698 __u32 coredump_signal;
99 __u32 coredump_code;
100 __u32 coredump_pad; /* align supported_mask to 8 bytes */
97101 };
98102 __u64 supported_mask; /* Mask flags that this kernel supports */
99103};
lib/libc/include/any-linux-any/linux/psp-sev.h+1-1
......@@ -277,7 +277,7 @@ struct sev_user_data_snp_wrapped_vlek_hashstick {
277277 * struct sev_issue_cmd - SEV ioctl parameters
278278 *
279279 * @cmd: SEV commands to execute
280 * @opaque: pointer to the command structure
280 * @data: pointer to the command structure
281281 * @error: SEV FW return code on failure
282282 */
283283struct 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 {
2828 RSEQ_CS_FLAG_NO_RESTART_ON_PREEMPT_BIT = 0,
2929 RSEQ_CS_FLAG_NO_RESTART_ON_SIGNAL_BIT = 1,
3030 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
3333 /* User read only feature flags */
3434 RSEQ_CS_FLAG_SLICE_EXT_AVAILABLE_BIT = 4,
......@@ -161,6 +161,9 @@ struct rseq {
161161 * - RSEQ_CS_FLAG_NO_RESTART_ON_PREEMPT
162162 * - RSEQ_CS_FLAG_NO_RESTART_ON_SIGNAL
163163 * - 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.
164167 */
165168 __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 @@
3434#define CLONE_IO 0x80000000 /* Clone io context */
3535
3636/* Flags for the clone3() syscall. */
37#define CLONE_CLEAR_SIGHAND 0x100000000ULL /* Clear any signal handler and reset to SIG_DFL. */
38#define CLONE_INTO_CGROUP 0x200000000ULL /* Clone into a specific cgroup given the right permissions. */
37#define CLONE_CLEAR_SIGHAND (1ULL << 32) /* Clear any signal handler and reset to SIG_DFL. */
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
4044/*
4145 * cloning flags intersect with CSIGNAL so can be used with unshare and clone3
......@@ -43,6 +47,12 @@
4347 */
4448#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
4656#ifndef __ASSEMBLY__
4757/**
4858 * struct clone_args - arguments for the clone3 syscall
......@@ -146,4 +156,7 @@ struct clone_args {
146156 SCHED_FLAG_KEEP_ALL | \
147157 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
149162#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 {
7474 __u8 align[2]; /* Align to 8 byte boundary */
7575};
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
7790struct opal_session_info {
7891 __u32 sum;
7992 __u32 who;
......@@ -98,6 +111,18 @@ struct opal_lr_status {
98111 __u8 align[4];
99112};
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
101126struct opal_lock_unlock {
102127 struct opal_session_info session;
103128 __u32 l_state;
......@@ -216,5 +241,10 @@ struct opal_revert_lsp {
216241#define IOC_OPAL_DISCOVERY _IOW('p', 239, struct opal_discovery)
217242#define IOC_OPAL_REVERT_LSP _IOW('p', 240, struct opal_revert_lsp)
218243#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
220250#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 @@
2020enum {
2121 SEG6_IPTUNNEL_UNSPEC,
2222 SEG6_IPTUNNEL_SRH,
23 SEG6_IPTUNNEL_SRC, /* struct in6_addr */
2324 __SEG6_IPTUNNEL_MAX,
2425};
2526#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 {
470470 __u32 op;
471471 __u32 ret;
472472 __u32 num_params;
473 __u32 :32;
473474 /* num_params tells the actual number of element in params */
474475 struct tee_ioctl_param params[];
475476};
lib/libc/include/any-linux-any/linux/trace_mmap.h+5-4
......@@ -10,6 +10,7 @@
1010 * @meta_struct_len: Size of this structure.
1111 * @subbuf_size: Size of each sub-buffer.
1212 * @nr_subbufs: Number of subbfs in the ring-buffer, including the reader.
13 * @reader: The reader composite info structure
1314 * @reader.lost_events: Number of events lost at the time of the reader swap.
1415 * @reader.id: subbuf ID of the current reader. ID range [0 : @nr_subbufs - 1]
1516 * @reader.read: Number of bytes read on the reader subbuf.
......@@ -17,8 +18,8 @@
1718 * @entries: Number of entries in the ring-buffer.
1819 * @overrun: Number of entries lost in the ring-buffer.
1920 * @read: Number of entries that have been read.
20 * @Reserved1: Internal use only.
21 * @Reserved2: Internal use only.
21 * @pages_lost: Number of pages overwritten by the writer.
22 * @pages_touched: Number of pages written by the writer.
2223 */
2324struct trace_buffer_meta {
2425 __u32 meta_page_size;
......@@ -39,8 +40,8 @@ struct trace_buffer_meta {
3940 __u64 overrun;
4041 __u64 read;
4142
42 __u64 Reserved1;
43 __u64 Reserved2;
43 __u64 pages_lost;
44 __u64 pages_touched;
4445};
4546
4647#define TRACE_MMAP_IOCTL_GET_READER _IO('R', 0x20)
lib/libc/include/any-linux-any/linux/ublk_cmd.h+80
......@@ -57,6 +57,45 @@
5757 _IOWR('u', 0x16, struct ublksrv_ctrl_cmd)
5858#define UBLK_U_CMD_TRY_STOP_DEV \
5959 _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)
6099/*
61100 * 64bits are enough now, and it should be easy to extend in case of
62101 * running out of feature flags
......@@ -370,6 +409,14 @@
370409/* Disable automatic partition scanning when device is started */
371410#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
373420/* device state */
374421#define UBLK_S_DEV_DEAD 0
375422#define UBLK_S_DEV_LIVE 1
......@@ -469,6 +516,12 @@ struct ublksrv_ctrl_dev_info {
469516#define UBLK_IO_F_NEED_REG_BUF (1U << 17)
470517/* Request has an integrity data buffer */
471518#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
473526/*
474527 * io cmd is described by this structure, and stored in share memory, indexed
......@@ -743,4 +796,31 @@ struct ublk_params {
743796 struct ublk_param_integrity integrity;
744797};
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
746826#endif
\ No newline at end of file
lib/libc/include/any-linux-any/linux/udp.h+2
......@@ -29,6 +29,8 @@ struct udphdr {
2929
3030/* UDP socket options */
3131#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 */
3234#define UDP_ENCAP 100 /* Set the socket to accept encapsulated packets */
3335#define UDP_NO_CHECK6_TX 101 /* Disable sending checksum for UDP6X */
3436#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 {
5656 * in the control message
5757 */
5858 UM_TIMETRAVEL_SHARED_LOGFD,
59 /**
60 * @UM_TIMETRAVEL_SHARED_MAX_FDS: number of fds listed here
61 */
5962 UM_TIMETRAVEL_SHARED_MAX_FDS,
6063};
6164
......@@ -242,6 +245,7 @@ union um_timetravel_schedshm_client {
242245 __u64 req_time;
243246 __u64 name;
244247 };
248 /* private: */
245249 char reserve[128]; /* reserved for future usage */
246250};
247251
......@@ -264,7 +268,7 @@ union um_timetravel_schedshm_client {
264268 * is made by any client. Clients also must update this value when they
265269 * insert/update an own request into the shared memory while not running
266270 * themselves, and the new request is before than the current value.
267 * current_time: Current time, can only be set by the client in running state
271 * @current_time: Current time, can only be set by the client in running state
268272 * (indicated by @running_id), though that client may only run until @free_until,
269273 * so it must remain smaller than @free_until.
270274 * @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 @@
102102#define USB_REQ_LOOPBACK_DATA_WRITE 0x15
103103#define USB_REQ_LOOPBACK_DATA_READ 0x16
104104#define USB_REQ_SET_INTERFACE_DS 0x17
105#define USB_REQ_AUTH_IN 0x18
106#define USB_REQ_AUTH_OUT 0x19
105107
106108/* specific requests for USB Power Delivery */
107109#define USB_REQ_GET_PARTNER_PDO 20
......@@ -121,15 +123,17 @@
121123 * are at most sixteen features of each type.) Hubs may also support a
122124 * new USB_REQ_TEST_AND_SET_FEATURE to put ports into L1 suspend.
123125 */
124#define USB_DEVICE_SELF_POWERED 0 /* (read only) */
125#define USB_DEVICE_REMOTE_WAKEUP 1 /* dev may initiate wakeup */
126#define USB_DEVICE_TEST_MODE 2 /* (wired high speed only) */
127#define USB_DEVICE_BATTERY 2 /* (wireless) */
128#define USB_DEVICE_B_HNP_ENABLE 3 /* (otg) dev may initiate HNP */
129#define USB_DEVICE_WUSB_DEVICE 3 /* (wireless)*/
130#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 */
132#define USB_DEVICE_DEBUG_MODE 6 /* (special devices only) */
126#define USB_DEVICE_SELF_POWERED 0 /* (read only) */
127#define USB_DEVICE_REMOTE_WAKEUP 1 /* dev may initiate wakeup */
128#define USB_DEVICE_TEST_MODE 2 /* (wired high speed only) */
129#define USB_DEVICE_BATTERY 2 /* (wireless) */
130#define USB_DEVICE_B_HNP_ENABLE 3 /* (otg) dev may initiate HNP */
131#define USB_DEVICE_WUSB_DEVICE 3 /* (wireless)*/
132#define USB_DEVICE_A_HNP_SUPPORT 4 /* (otg) RH port supports HNP */
133#define USB_DEVICE_A_ALT_HNP_SUPPORT 5 /* (otg) other RH port does */
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
134138/*
135139 * Test Mode Selectors
......@@ -1147,6 +1151,17 @@ struct usb_ptm_cap_descriptor {
11471151
11481152/*-------------------------------------------------------------------------*/
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
11501165/* USB_DT_WIRELESS_ENDPOINT_COMP: companion descriptor associated with
11511166 * each endpoint descriptor for a wireless device
11521167 */
lib/libc/include/any-linux-any/linux/version.h+2-2
......@@ -1,5 +1,5 @@
1#define LINUX_VERSION_CODE 458752
1#define LINUX_VERSION_CODE 459008
22#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + ((c) > 255 ? 255 : (c)))
33#define LINUX_VERSION_MAJOR 7
4#define LINUX_VERSION_PATCHLEVEL 0
4#define LINUX_VERSION_PATCHLEVEL 1
55#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 {
141141 *
142142 * Retrieve information about the group. Fills in provided
143143 * struct vfio_group_info. Caller sets argsz.
144 * Return: 0 on succes, -errno on failure.
144 * Return: 0 on success, -errno on failure.
145145 * Availability: Always
146146 */
147147struct vfio_group_status {
......@@ -1266,6 +1266,19 @@ enum vfio_device_mig_state {
12661266 * The initial_bytes field indicates the amount of initial precopy
12671267 * data available from the device. This field should have a non-zero initial
12681268 * 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 *
12691282 * It is recommended to leave PRE_COPY for STOP_COPY only after this field
12701283 * reaches zero. Leaving PRE_COPY earlier might make things slower.
12711284 *
......@@ -1301,6 +1314,7 @@ enum vfio_device_mig_state {
13011314struct vfio_precopy_info {
13021315 __u32 argsz;
13031316 __u32 flags;
1317#define VFIO_PRECOPY_INFO_REINIT (1 << 0) /* output - new initial data is present */
13041318 __aligned_u64 initial_bytes;
13051319 __aligned_u64 dirty_bytes;
13061320};
......@@ -1510,6 +1524,16 @@ struct vfio_device_feature_dma_buf {
15101524 struct vfio_region_dma_range dma_ranges[] __counted_by(nr_ranges);
15111525};
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
15131537/* -------- API for Type1 VFIO IOMMU -------- */
15141538
15151539/**
lib/libc/include/any-linux-any/rdma/bnxt_re-abi.h+35-1
......@@ -102,12 +102,17 @@ struct bnxt_re_pd_resp {
102102struct bnxt_re_cq_req {
103103 __aligned_u64 cq_va;
104104 __aligned_u64 cq_handle;
105 __aligned_u64 comp_mask;
105106};
106107
107enum bnxt_re_cq_mask {
108enum bnxt_re_resp_cq_mask {
108109 BNXT_RE_CQ_TOGGLE_PAGE_SUPPORT = 0x1,
109110};
110111
112enum bnxt_re_req_cq_mask {
113 BNXT_RE_CQ_FIXED_NUM_CQE_ENABLE = 0x1,
114};
115
111116struct bnxt_re_cq_resp {
112117 __u32 cqid;
113118 __u32 tail;
......@@ -163,6 +168,8 @@ enum bnxt_re_objects {
163168 BNXT_RE_OBJECT_ALLOC_PAGE = (1U << UVERBS_ID_NS_SHIFT),
164169 BNXT_RE_OBJECT_NOTIFY_DRV,
165170 BNXT_RE_OBJECT_GET_TOGGLE_MEM,
171 BNXT_RE_OBJECT_DBR,
172 BNXT_RE_OBJECT_DEFAULT_DBR,
166173};
167174
168175enum bnxt_re_alloc_page_type {
......@@ -231,4 +238,31 @@ struct bnxt_re_packet_pacing_caps {
231238struct bnxt_re_query_device_ex_resp {
232239 struct bnxt_re_packet_pacing_caps packet_pacing_caps;
233240};
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
234268#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 @@
11/* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-2-Clause) */
22/*
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.
44 */
55
66#ifndef EFA_ABI_USER_H
......@@ -22,12 +22,12 @@
2222 */
2323
2424enum {
25 EFA_ALLOC_UCONTEXT_CMD_COMP_TX_BATCH = 1 << 0,
26 EFA_ALLOC_UCONTEXT_CMD_COMP_MIN_SQ_WR = 1 << 1,
25 EFA_ALLOC_UCONTEXT_CMD_SUPP_CAPS_TX_BATCH = 1 << 0,
26 EFA_ALLOC_UCONTEXT_CMD_SUPP_CAPS_MIN_SQ_WR = 1 << 1,
2727};
2828
2929struct efa_ibv_alloc_ucontext_cmd {
30 __u32 comp_mask;
30 __u32 supported_caps;
3131 __u8 reserved_20[4];
3232};
3333
......@@ -44,7 +44,8 @@ struct efa_ibv_alloc_ucontext_resp {
4444 __u32 max_llq_size; /* bytes */
4545 __u16 max_tx_batch; /* units of 64 bytes */
4646 __u16 min_sq_wr;
47 __u8 reserved_a0[4];
47 __u16 inline_buf_size_ex;
48 __u8 reserved_b0[2];
4849};
4950
5051struct efa_ibv_alloc_pd_resp {
lib/libc/include/any-linux-any/rdma/ib_user_ioctl_verbs.h+1
......@@ -46,6 +46,7 @@
4646
4747enum ib_uverbs_core_support {
4848 IB_UVERBS_CORE_SUPPORT_OPTIONAL_MR_ACCESS = 1 << 0,
49 IB_UVERBS_CORE_SUPPORT_ROBUST_UDATA = 1 << 1,
4950};
5051
5152enum 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 {
139139 MLX5_IB_ATTR_VAR_OBJ_ALLOC_MMAP_OFFSET,
140140 MLX5_IB_ATTR_VAR_OBJ_ALLOC_MMAP_LENGTH,
141141 MLX5_IB_ATTR_VAR_OBJ_ALLOC_PAGE_ID,
142 MLX5_IB_ATTR_VAR_OBJ_ALLOC_FLAGS,
142143};
143144
144145enum 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 {
100100 MLX5_IB_UAPI_QUERY_PORT_ESW_OWNER_VHCA_ID = 1 << 5,
101101};
102102
103enum mlx5_ib_uapi_var_alloc_flags {
104 MLX5_IB_UAPI_VAR_ALLOC_FLAG_TLP = 1 << 0,
105};
106
103107struct mlx5_ib_uapi_reg {
104108 __u32 value;
105109 __u32 mask;
lib/libc/include/any-linux-any/rdma/rdma_netlink.h+22
......@@ -308,6 +308,10 @@ enum rdma_nldev_command {
308308
309309 RDMA_NLDEV_CMD_MONITOR,
310310
311 RDMA_NLDEV_CMD_FRMR_POOLS_GET, /* can dump */
312
313 RDMA_NLDEV_CMD_FRMR_POOLS_SET,
314
311315 RDMA_NLDEV_NUM_OPS
312316};
313317
......@@ -582,6 +586,24 @@ enum rdma_nldev_attr {
582586 RDMA_NLDEV_SYS_ATTR_MONITOR_MODE, /* u8 */
583587
584588 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
585607 /*
586608 * Always the end
587609 */
lib/libc/include/any-linux-any/scsi/fc/fc_els.h+1-1
......@@ -1026,7 +1026,7 @@ struct fc_fn_li_desc {
10261026 */
10271027 __be32 event_count; /* minimum number of event
10281028 * occurrences during the event
1029 * threshold to caause the LI event
1029 * threshold to cause the LI event
10301030 */
10311031 __be32 pname_count; /* number of portname_list elements */
10321032 __be64 pname_list[]; /* list of N_Port_Names accessible
lib/libc/include/hexagon-linux-any/asm/sigcontext.h+1-1
......@@ -29,6 +29,6 @@
2929 */
3030struct sigcontext {
3131 struct user_regs_struct sc_regs;
32} __aligned(8);
32} __attribute__((aligned(8)));
3333
3434#endif
\ No newline at end of file
lib/libc/include/loongarch-linux-any/asm/hwcap.h+1
......@@ -19,5 +19,6 @@
1919#define HWCAP_LOONGARCH_PTW (1 << 13)
2020#define HWCAP_LOONGARCH_LSPW (1 << 14)
2121#define HWCAP_LOONGARCH_SCQ (1 << 15)
22#define HWCAP_LOONGARCH_LAM_BH (1 << 16)
2223
2324#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 {
155155#define KVM_DEV_LOONGARCH_PCH_PIC_GRP_CTRL 0x40000006
156156#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
158162#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 {
110110 __u64 state;
111111};
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
113117/*
114118 * ISA extension IDs specific to KVM. This is not the same as the host ISA
115119 * extension IDs as that is internal to the host and should not be exposed
......@@ -238,10 +242,6 @@ struct kvm_riscv_sbi_fwft {
238242 struct kvm_riscv_sbi_fwft_feature pointer_masking;
239243};
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
245245/* If you need to interpret the index values, here is the key: */
246246#define KVM_REG_RISCV_TYPE_MASK 0x00000000FF000000
247247#define KVM_REG_RISCV_TYPE_SHIFT 24
lib/libc/include/riscv-linux-any/asm/setup.h+1-1
......@@ -3,6 +3,6 @@
33#ifndef _ASM_RISCV_SETUP_H
44#define _ASM_RISCV_SETUP_H
55
6#define COMMAND_LINE_SIZE 1024
6#define COMMAND_LINE_SIZE 2048
77
88#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 {
453453
454454 break :blk default_min;
455455 },
456 .max = .{ .major = 7, .minor = 0, .patch = 9 },
456 .max = .{ .major = 7, .minor = 1, .patch = 9 },
457457 },
458458 .glibc = blk: {
459459 // For 32-bit targets that traditionally used 32-bit time, we require
lib/std/os/linux/syscalls.zig+1-2
......@@ -1,5 +1,5 @@
11// This file is automatically generated by tools/generate_linux_syscalls.zig
2// This list current as of kernel: 7.0.0
2// This list current as of kernel: 7.1.0
33
44pub const X86 = enum(usize) {
55 restart_syscall = 0,
......@@ -9929,7 +9929,6 @@ pub const Hppa64 = enum(usize) {
99299929 personality = 136,
99309930 setfsuid = 138,
99319931 setfsgid = 139,
9932 llseek = 140,
99339932 getdents = 141,
99349933 newselect = 142,
99359934 flock = 143,