]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
include: update kernel headers from v6.18 main
authorYu Watanabe <watanabe.yu+github@gmail.com>
Wed, 3 Dec 2025 22:58:02 +0000 (07:58 +0900)
committerLuca Boccassi <luca.boccassi@gmail.com>
Thu, 4 Dec 2025 11:10:03 +0000 (11:10 +0000)
15 files changed:
src/include/uapi/linux/bpf.h
src/include/uapi/linux/can/netlink.h
src/include/uapi/linux/ethtool.h
src/include/uapi/linux/fs.h
src/include/uapi/linux/hidraw.h
src/include/uapi/linux/if_bridge.h
src/include/uapi/linux/if_link.h
src/include/uapi/linux/input-event-codes.h
src/include/uapi/linux/input.h
src/include/uapi/linux/mempolicy.h
src/include/uapi/linux/mount.h
src/include/uapi/linux/netfilter/nf_tables.h
src/include/uapi/linux/nl80211.h
src/include/uapi/linux/prctl.h
src/include/uapi/linux/stddef.h

index 936bb1c94c820552a7011328ba2246396dfcdea6..ece0fe39116eff7a8de9181f0c475dc77a71f3f3 100644 (file)
@@ -1522,6 +1522,12 @@ union bpf_attr {
                 * If provided, map_flags should have BPF_F_TOKEN_FD flag set.
                 */
                __s32   map_token_fd;
+
+               /* Hash of the program that has exclusive access to the map.
+                */
+               __aligned_u64 excl_prog_hash;
+               /* Size of the passed excl_prog_hash. */
+               __u32 excl_prog_hash_size;
        };
 
        struct { /* anonymous struct used by BPF_MAP_*_ELEM and BPF_MAP_FREEZE commands */
@@ -1605,6 +1611,16 @@ union bpf_attr {
                 * continuous.
                 */
                __u32           fd_array_cnt;
+               /* Pointer to a buffer containing the signature of the BPF
+                * program.
+                */
+               __aligned_u64   signature;
+               /* Size of the signature buffer in bytes. */
+               __u32           signature_size;
+               /* ID of the kernel keyring to be used for signature
+                * verification.
+                */
+               __s32           keyring_id;
        };
 
        struct { /* anonymous struct used by BPF_OBJ_* commands */
@@ -4875,7 +4891,7 @@ union bpf_attr {
  *
  *             **-ENOENT** if the bpf_local_storage cannot be found.
  *
- * long bpf_d_path(struct path *path, char *buf, u32 sz)
+ * long bpf_d_path(const struct path *path, char *buf, u32 sz)
  *     Description
  *             Return full path for given **struct path** object, which
  *             needs to be the kernel BTF *path* object. The path is
@@ -6666,6 +6682,8 @@ struct bpf_map_info {
        __u32 btf_value_type_id;
        __u32 btf_vmlinux_id;
        __u64 map_extra;
+       __aligned_u64 hash;
+       __u32 hash_size;
 } __attribute__((aligned(8)));
 
 struct bpf_btf_info {
@@ -7418,6 +7436,10 @@ struct bpf_timer {
        __u64 __opaque[2];
 } __attribute__((aligned(8)));
 
+struct bpf_task_work {
+       __u64 __opaque;
+} __attribute__((aligned(8)));
+
 struct bpf_wq {
        __u64 __opaque[2];
 } __attribute__((aligned(8)));
index 8ec98c21eaeeb499f082ce2c0809719e487055b9..5cf825ebc4d0e64d3ce052f5aa3dcea03a649189 100644 (file)
@@ -101,8 +101,8 @@ struct can_ctrlmode {
 #define CAN_CTRLMODE_PRESUME_ACK       0x40    /* Ignore missing CAN ACKs */
 #define CAN_CTRLMODE_FD_NON_ISO                0x80    /* CAN FD in non-ISO mode */
 #define CAN_CTRLMODE_CC_LEN8_DLC       0x100   /* Classic CAN DLC option */
-#define CAN_CTRLMODE_TDC_AUTO          0x200   /* CAN transiver automatically calculates TDCV */
-#define CAN_CTRLMODE_TDC_MANUAL                0x400   /* TDCV is manually set up by user */
+#define CAN_CTRLMODE_TDC_AUTO          0x200   /* FD transceiver automatically calculates TDCV */
+#define CAN_CTRLMODE_TDC_MANUAL                0x400   /* FD TDCV is manually set up by user */
 
 /*
  * CAN device statistics
@@ -129,14 +129,14 @@ enum {
        IFLA_CAN_RESTART_MS,
        IFLA_CAN_RESTART,
        IFLA_CAN_BERR_COUNTER,
-       IFLA_CAN_DATA_BITTIMING,
-       IFLA_CAN_DATA_BITTIMING_CONST,
+       IFLA_CAN_DATA_BITTIMING, /* FD */
+       IFLA_CAN_DATA_BITTIMING_CONST, /* FD */
        IFLA_CAN_TERMINATION,
        IFLA_CAN_TERMINATION_CONST,
        IFLA_CAN_BITRATE_CONST,
-       IFLA_CAN_DATA_BITRATE_CONST,
+       IFLA_CAN_DATA_BITRATE_CONST, /* FD */
        IFLA_CAN_BITRATE_MAX,
-       IFLA_CAN_TDC,
+       IFLA_CAN_TDC, /* FD */
        IFLA_CAN_CTRLMODE_EXT,
 
        /* add new constants above here */
@@ -145,7 +145,7 @@ enum {
 };
 
 /*
- * CAN FD Transmitter Delay Compensation (TDC)
+ * CAN FD/XL Transmitter Delay Compensation (TDC)
  *
  * Please refer to struct can_tdc_const and can_tdc in
  * include/linux/can/bittiming.h for further details.
index 6c169eefa66661dadfba75c3050c86eca60113af..6e454027e69cf57bfea6284fddbdb00faf316b38 100644 (file)
@@ -2378,6 +2378,7 @@ enum {
 #define        RXH_L4_B_0_1    (1 << 6) /* src port in case of TCP/UDP/SCTP */
 #define        RXH_L4_B_2_3    (1 << 7) /* dst port in case of TCP/UDP/SCTP */
 #define        RXH_GTP_TEID    (1 << 8) /* teid in case of GTP */
+#define        RXH_IP6_FL      (1 << 9) /* IPv6 flow label */
 #define        RXH_DISCARD     (1 << 31)
 
 #define        RX_CLS_FLOW_DISC        0xffffffffffffffffULL
index 0590d1af44b89aa365884a60f0d17a5bcca8d994..b450f43ef3263a91c6052b48ca30ffe5a8d852dd 100644 (file)
@@ -426,10 +426,13 @@ typedef int __bitwise __kernel_rwf_t;
 /* buffered IO that drops the cache after reading or writing data */
 #define RWF_DONTCACHE  ((__kernel_rwf_t)0x00000080)
 
+/* prevent pipe and socket writes from raising SIGPIPE */
+#define RWF_NOSIGNAL   ((__kernel_rwf_t)0x00000100)
+
 /* mask of flags supported by the kernel */
 #define RWF_SUPPORTED  (RWF_HIPRI | RWF_DSYNC | RWF_SYNC | RWF_NOWAIT |\
                         RWF_APPEND | RWF_NOAPPEND | RWF_ATOMIC |\
-                        RWF_DONTCACHE)
+                        RWF_DONTCACHE | RWF_NOSIGNAL)
 
 #define PROCFS_IOCTL_MAGIC 'f'
 
index cdbafc28312ff0d9e4581fcece19f7020bfa83ba..f226c7941b0707253cea56e5c417b49b6c148a14 100644 (file)
@@ -48,6 +48,8 @@ struct hidraw_devinfo {
 #define HIDIOCGOUTPUT(len)    _IOC(_IOC_WRITE|_IOC_READ, 'H', 0x0C, len)
 #define HIDIOCREVOKE         _IOW('H', 0x0D, int) /* Revoke device access */
 
+#define HIDIOCTL_LAST          _IOC_NR(HIDIOCREVOKE)
+
 #define HIDRAW_FIRST_MINOR 0
 #define HIDRAW_MAX_DEVICES 64
 /* number of reports to buffer */
index bed5e0c11218d6cee7e7db441088fa7b9cdf302a..4d7509c4b84d992ec89e522ad934ac3586920d7a 100644 (file)
@@ -823,6 +823,8 @@ struct br_mcast_stats {
 /* bridge boolean options
  * BR_BOOLOPT_NO_LL_LEARN - disable learning from link-local packets
  * BR_BOOLOPT_MCAST_VLAN_SNOOPING - control vlan multicast snooping
+ * BR_BOOLOPT_FDB_LOCAL_VLAN_0 - local FDB entries installed by the bridge
+ *                               driver itself should only be added on VLAN 0
  *
  * IMPORTANT: if adding a new option do not forget to handle
  *            it in br_boolopt_toggle/get and bridge sysfs
@@ -832,6 +834,7 @@ enum br_boolopt_id {
        BR_BOOLOPT_MCAST_VLAN_SNOOPING,
        BR_BOOLOPT_MST_ENABLE,
        BR_BOOLOPT_MDB_OFFLOAD_FAIL_NOTIFICATION,
+       BR_BOOLOPT_FDB_LOCAL_VLAN_0,
        BR_BOOLOPT_MAX
 };
 
index b450757c8d1fd8f3eb6715a612d5aa22e381649d..d05f5cc750ff4afa557bf2ea92f284c4decbcea8 100644 (file)
@@ -379,6 +379,8 @@ enum {
        IFLA_DPLL_PIN,
        IFLA_MAX_PACING_OFFLOAD_HORIZON,
        IFLA_NETNS_IMMUTABLE,
+       IFLA_HEADROOM,
+       IFLA_TAILROOM,
        __IFLA_MAX
 };
 
@@ -1562,6 +1564,7 @@ enum {
        IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE,
        IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE,
        IFLA_BOND_SLAVE_PRIO,
+       IFLA_BOND_SLAVE_ACTOR_PORT_PRIO,
        __IFLA_BOND_SLAVE_MAX,
 };
 
index 90295adc64c59d6aaf1977927460ffee3c2e1863..94db4e485e98f87f1546073e1754f67cd724efe7 100644 (file)
@@ -27,6 +27,7 @@
 #define INPUT_PROP_TOPBUTTONPAD                0x04    /* softbuttons at top of pad */
 #define INPUT_PROP_POINTING_STICK      0x05    /* is a pointing stick */
 #define INPUT_PROP_ACCELEROMETER       0x06    /* has accelerometer */
+#define INPUT_PROP_PRESSUREPAD         0x07    /* pressure triggers clicks */
 
 #define INPUT_PROP_MAX                 0x1f
 #define INPUT_PROP_CNT                 (INPUT_PROP_MAX + 1)
 #define KEY_BRIGHTNESS_MIN             0x250   /* Set Brightness to Minimum */
 #define KEY_BRIGHTNESS_MAX             0x251   /* Set Brightness to Maximum */
 
+/*
+ * Keycodes for hotkeys toggling the electronic privacy screen found on some
+ * laptops on/off. Note when the embedded-controller turns on/off the eprivacy
+ * screen itself then the state should be reported through drm connecter props:
+ * https://www.kernel.org/doc/html/latest/gpu/drm-kms.html#standard-connector-properties
+ * Except when implementing the drm connecter properties API is not possible
+ * because e.g. the firmware does not allow querying the presence and/or status
+ * of the eprivacy screen at boot.
+ */
+#define KEY_EPRIVACY_SCREEN_ON         0x252
+#define KEY_EPRIVACY_SCREEN_OFF                0x253
+
 #define KEY_KBDINPUTASSIST_PREV                0x260
 #define KEY_KBDINPUTASSIST_NEXT                0x261
 #define KEY_KBDINPUTASSIST_PREVGROUP           0x262
index 23b8047f7bb1686d597616163f2c62e02a62e858..9f80d040c407d84af241575c85db51054e0a09b0 100644 (file)
@@ -427,6 +427,24 @@ struct ff_rumble_effect {
        __u16 weak_magnitude;
 };
 
+/**
+ * struct ff_haptic_effect
+ * @hid_usage: hid_usage according to Haptics page (WAVEFORM_CLICK, etc.)
+ * @vendor_id: the waveform vendor ID if hid_usage is in the vendor-defined range
+ * @vendor_waveform_page: the vendor waveform page if hid_usage is in the vendor-defined range
+ * @intensity: strength of the effect as percentage
+ * @repeat_count: number of times to retrigger effect
+ * @retrigger_period: time before effect is retriggered (in ms)
+ */
+struct ff_haptic_effect {
+       __u16 hid_usage;
+       __u16 vendor_id;
+       __u8  vendor_waveform_page;
+       __u16 intensity;
+       __u16 repeat_count;
+       __u16 retrigger_period;
+};
+
 /**
  * struct ff_effect - defines force feedback effect
  * @type: type of the effect (FF_CONSTANT, FF_PERIODIC, FF_RAMP, FF_SPRING,
@@ -463,6 +481,7 @@ struct ff_effect {
                struct ff_periodic_effect periodic;
                struct ff_condition_effect condition[2]; /* One for each axis */
                struct ff_rumble_effect rumble;
+               struct ff_haptic_effect haptic;
        } u;
 };
 
@@ -470,6 +489,7 @@ struct ff_effect {
  * Force feedback effect types
  */
 
+#define FF_HAPTIC              0x4f
 #define FF_RUMBLE      0x50
 #define FF_PERIODIC    0x51
 #define FF_CONSTANT    0x52
@@ -479,7 +499,7 @@ struct ff_effect {
 #define FF_INERTIA     0x56
 #define FF_RAMP                0x57
 
-#define FF_EFFECT_MIN  FF_RUMBLE
+#define FF_EFFECT_MIN  FF_HAPTIC
 #define FF_EFFECT_MAX  FF_RAMP
 
 /*
index 47a3ce54c94cec83c6e468bc1a3c3f29dea84877..0a3f99e7c9ab930c81c4f10147189b02b37195ba 100644 (file)
@@ -66,10 +66,16 @@ enum {
 #define MPOL_F_MORON   (1 << 4) /* Migrate On protnone Reference On Node */
 
 /*
- * These bit locations are exposed in the vm.zone_reclaim_mode sysctl
- * ABI.  New bits are OK, but existing bits can never change.
+ * Enabling zone reclaim means the page allocator will attempt to fulfill
+ * the allocation request on the current node by triggering reclaim and
+ * trying to shrink the current node.
+ * Fallback allocations on the next candidates in the zonelist are considered
+ * when reclaim fails to free up enough memory in the current node/zone.
+ *
+ * These bit locations are exposed in the vm.zone_reclaim_mode sysctl.
+ * New bits are OK, but existing bits should not be changed.
  */
-#define RECLAIM_ZONE   (1<<0)  /* Run shrink_inactive_list on the zone */
+#define RECLAIM_ZONE   (1<<0)  /* Enable zone reclaim */
 #define RECLAIM_WRITE  (1<<1)  /* Writeout pages during reclaim */
 #define RECLAIM_UNMAP  (1<<2)  /* Unmap pages during reclaim */
 
index 4d16593fc1381000ff8660a66632b590602257b5..534dc2f1dba77e4cb4ad4233b1cd117f9c9d8040 100644 (file)
@@ -197,7 +197,7 @@ struct statmount {
  */
 struct mnt_id_req {
        __u32 size;
-       __u32 spare;
+       __u32 mnt_ns_fd;
        __u64 mnt_id;
        __u64 param;
        __u64 mnt_ns_id;
index 8e0eb832bc01ec2541eba004a94a3741c538666e..7c0c915f030688e5b652e8ab66e072c256813c0e 100644 (file)
@@ -959,6 +959,7 @@ enum nft_exthdr_attributes {
  * @NFT_META_SDIF: slave device interface index
  * @NFT_META_SDIFNAME: slave device interface name
  * @NFT_META_BRI_BROUTE: packet br_netfilter_broute bit
+ * @NFT_META_BRI_IIFHWADDR: packet input bridge interface ethernet address
  */
 enum nft_meta_keys {
        NFT_META_LEN,
@@ -999,6 +1000,7 @@ enum nft_meta_keys {
        NFT_META_SDIFNAME,
        NFT_META_BRI_BROUTE,
        __NFT_META_IIFTYPE,
+       NFT_META_BRI_IIFHWADDR,
 };
 
 /**
index d1a14f2892d9ee4d3077ad73e90f729bf70c7c53..8134f10e4e6c02d48a9089d6c8c8be52f73881a5 100644 (file)
  *     %NL80211_ATTR_NAN_MASTER_PREF attribute and optional
  *     %NL80211_ATTR_BANDS attributes.  If %NL80211_ATTR_BANDS is
  *     omitted or set to 0, it means don't-care and the device will
- *     decide what to use.  After this command NAN functions can be
- *     added.
+ *     decide what to use. Additional cluster configuration may be
+ *     optionally provided with %NL80211_ATTR_NAN_CONFIG.
+ *     After this command NAN functions can be added.
  * @NL80211_CMD_STOP_NAN: Stop the NAN operation, identified by
  *     its %NL80211_ATTR_WDEV interface.
  * @NL80211_CMD_ADD_NAN_FUNCTION: Add a NAN function. The function is defined
  *     current configuration is not changed.  If it is present but
  *     set to zero, the configuration is changed to don't-care
  *     (i.e. the device can decide what to do).
+ *     Additional parameters may be provided with
+ *     %NL80211_ATTR_NAN_CONFIG. User space should provide all previously
+ *     configured nested attributes under %NL80211_ATTR_NAN_CONFIG, even if
+ *     only a subset was changed.
  * @NL80211_CMD_NAN_MATCH: Notification sent when a match is reported.
  *     This will contain a %NL80211_ATTR_NAN_MATCH nested attribute and
  *     %NL80211_ATTR_COOKIE.
  *     control EPCS configuration. Used to notify userland on the current state
  *     of EPCS.
  *
+ * @NL80211_CMD_NAN_NEXT_DW_NOTIFICATION: This command is used to notify
+ *     user space about the next NAN Discovery Window (DW). User space may use
+ *     it to prepare frames to be sent in the next DW.
+ *     %NL80211_ATTR_WIPHY_FREQ is used to indicate the frequency of the next
+ *     DW. SDF transmission should be requested with %NL80211_CMD_FRAME and
+ *     the device/driver shall take care of the actual transmission timing.
+ *     This notification is only sent to the NAN interface owning socket
+ *     (see %NL80211_ATTR_SOCKET_OWNER flag).
+ * @NL80211_CMD_NAN_CLUSTER_JOINED: This command is used to notify
+ *     user space that the NAN new cluster has been joined. The cluster ID is
+ *     indicated by %NL80211_ATTR_MAC.
+ *
  * @NL80211_CMD_MAX: highest used command number
  * @__NL80211_CMD_AFTER_LAST: internal use
  */
@@ -1604,6 +1621,9 @@ enum nl80211_commands {
        NL80211_CMD_ASSOC_MLO_RECONF,
        NL80211_CMD_EPCS_CFG,
 
+       NL80211_CMD_NAN_NEXT_DW_NOTIFICATION,
+       NL80211_CMD_NAN_CLUSTER_JOINED,
+
        /* add new commands above here */
 
        /* used to define NL80211_CMD_MAX below */
@@ -1943,8 +1963,9 @@ enum nl80211_commands {
  *     The driver must also specify support for this with the extended
  *     features NL80211_EXT_FEATURE_BEACON_RATE_LEGACY,
  *     NL80211_EXT_FEATURE_BEACON_RATE_HT,
- *     NL80211_EXT_FEATURE_BEACON_RATE_VHT and
- *     NL80211_EXT_FEATURE_BEACON_RATE_HE.
+ *     NL80211_EXT_FEATURE_BEACON_RATE_VHT,
+ *     NL80211_EXT_FEATURE_BEACON_RATE_HE and
+ *     NL80211_EXT_FEATURE_BEACON_RATE_EHT.
  *
  * @NL80211_ATTR_FRAME_MATCH: A binary attribute which typically must contain
  *     at least one byte, currently used with @NL80211_CMD_REGISTER_FRAME.
@@ -2283,7 +2304,8 @@ enum nl80211_commands {
  * @NL80211_ATTR_PEER_AID: Association ID for the peer TDLS station (u16).
  *     This is similar to @NL80211_ATTR_STA_AID but with a difference of being
  *     allowed to be used with the first @NL80211_CMD_SET_STATION command to
- *     update a TDLS peer STA entry.
+ *     update a TDLS peer STA entry. For S1G interfaces, this is limited to
+ *     1600 for the current mac80211 implementation.
  *
  * @NL80211_ATTR_COALESCE_RULE: Coalesce rule information.
  *
@@ -2928,6 +2950,29 @@ enum nl80211_commands {
  *     required alongside this attribute. Refer to
  *     @enum nl80211_s1g_short_beacon_attrs for the attribute definitions.
  *
+ * @NL80211_ATTR_BSS_PARAM: nested attribute used with %NL80211_CMD_GET_WIPHY
+ *     which indicates which BSS parameters can be modified. The attribute can
+ *     also be used as flag attribute by user-space in %NL80211_CMD_SET_BSS to
+ *     indicate that it wants strict checking on the BSS parameters to be
+ *     modified.
+ *
+ * @NL80211_ATTR_NAN_CONFIG: Nested attribute for
+ *     extended NAN cluster configuration. This is used with
+ *     %NL80211_CMD_START_NAN and %NL80211_CMD_CHANGE_NAN_CONFIG.
+ *     See &enum nl80211_nan_conf_attributes for details.
+ *     This attribute is optional.
+ * @NL80211_ATTR_NAN_NEW_CLUSTER: Flag attribute indicating that a new
+ *     NAN cluster has been created. This is used with
+ *     %NL80211_CMD_NAN_CLUSTER_JOINED
+ * @NL80211_ATTR_NAN_CAPABILITIES: Nested attribute for NAN capabilities.
+ *     This is used with %NL80211_CMD_GET_WIPHY to indicate the NAN
+ *     capabilities supported by the driver. See &enum nl80211_nan_capabilities
+ *     for details.
+ *
+ * @NL80211_ATTR_S1G_PRIMARY_2MHZ: flag attribute indicating that the S1G
+ *     primary channel is 2 MHz wide, and the control channel designates
+ *     the 1 MHz primary subchannel within that 2 MHz primary.
+ *
  * @NUM_NL80211_ATTR: total number of nl80211_attrs available
  * @NL80211_ATTR_MAX: highest attribute number currently defined
  * @__NL80211_ATTR_AFTER_LAST: internal use
@@ -3489,6 +3534,12 @@ enum nl80211_attrs {
 
        NL80211_ATTR_S1G_LONG_BEACON_PERIOD,
        NL80211_ATTR_S1G_SHORT_BEACON,
+       NL80211_ATTR_BSS_PARAM,
+       NL80211_ATTR_NAN_CONFIG,
+       NL80211_ATTR_NAN_NEW_CLUSTER,
+       NL80211_ATTR_NAN_CAPABILITIES,
+
+       NL80211_ATTR_S1G_PRIMARY_2MHZ,
 
        /* add attributes here, update the policy in nl80211.c */
 
@@ -3735,6 +3786,22 @@ enum nl80211_eht_gi {
        NL80211_RATE_INFO_EHT_GI_3_2,
 };
 
+/**
+ * enum nl80211_eht_ltf - EHT long training field
+ * @NL80211_RATE_INFO_EHT_1XLTF: 3.2 usec
+ * @NL80211_RATE_INFO_EHT_2XLTF: 6.4 usec
+ * @NL80211_RATE_INFO_EHT_4XLTF: 12.8 usec
+ * @NL80211_RATE_INFO_EHT_6XLTF: 19.2 usec
+ * @NL80211_RATE_INFO_EHT_8XLTF: 25.6 usec
+ */
+enum nl80211_eht_ltf {
+       NL80211_RATE_INFO_EHT_1XLTF,
+       NL80211_RATE_INFO_EHT_2XLTF,
+       NL80211_RATE_INFO_EHT_4XLTF,
+       NL80211_RATE_INFO_EHT_6XLTF,
+       NL80211_RATE_INFO_EHT_8XLTF,
+};
+
 /**
  * enum nl80211_eht_ru_alloc - EHT RU allocation values
  * @NL80211_RATE_INFO_EHT_RU_ALLOC_26: 26-tone RU allocation
@@ -4371,6 +4438,12 @@ enum nl80211_wmm_rule {
  *     very low power (VLP) AP, despite being NO_IR.
  * @NL80211_FREQUENCY_ATTR_ALLOW_20MHZ_ACTIVITY: This channel can be active in
  *     20 MHz bandwidth, despite being NO_IR.
+ * @NL80211_FREQUENCY_ATTR_NO_4MHZ: 4 MHz operation is not allowed on this
+ *     channel in current regulatory domain.
+ * @NL80211_FREQUENCY_ATTR_NO_8MHZ: 8 MHz operation is not allowed on this
+ *     channel in current regulatory domain.
+ * @NL80211_FREQUENCY_ATTR_NO_16MHZ: 16 MHz operation is not allowed on this
+ *     channel in current regulatory domain.
  * @NL80211_FREQUENCY_ATTR_MAX: highest frequency attribute number
  *     currently defined
  * @__NL80211_FREQUENCY_ATTR_AFTER_LAST: internal use
@@ -4416,6 +4489,9 @@ enum nl80211_frequency_attr {
        NL80211_FREQUENCY_ATTR_CAN_MONITOR,
        NL80211_FREQUENCY_ATTR_ALLOW_6GHZ_VLP_AP,
        NL80211_FREQUENCY_ATTR_ALLOW_20MHZ_ACTIVITY,
+       NL80211_FREQUENCY_ATTR_NO_4MHZ,
+       NL80211_FREQUENCY_ATTR_NO_8MHZ,
+       NL80211_FREQUENCY_ATTR_NO_16MHZ,
 
        /* keep last */
        __NL80211_FREQUENCY_ATTR_AFTER_LAST,
@@ -5481,6 +5557,10 @@ enum nl80211_key_attributes {
  *     see &struct nl80211_txrate_he
  * @NL80211_TXRATE_HE_GI: configure HE GI, 0.8us, 1.6us and 3.2us.
  * @NL80211_TXRATE_HE_LTF: configure HE LTF, 1XLTF, 2XLTF and 4XLTF.
+ * @NL80211_TXRATE_EHT: EHT rates allowed for TX rate selection,
+ *     see &struct nl80211_txrate_eht
+ * @NL80211_TXRATE_EHT_GI: configure EHT GI, (u8, see &enum nl80211_eht_gi)
+ * @NL80211_TXRATE_EHT_LTF: configure EHT LTF, (u8, see &enum nl80211_eht_ltf)
  * @__NL80211_TXRATE_AFTER_LAST: internal
  * @NL80211_TXRATE_MAX: highest TX rate attribute
  */
@@ -5493,6 +5573,9 @@ enum nl80211_tx_rate_attributes {
        NL80211_TXRATE_HE,
        NL80211_TXRATE_HE_GI,
        NL80211_TXRATE_HE_LTF,
+       NL80211_TXRATE_EHT,
+       NL80211_TXRATE_EHT_GI,
+       NL80211_TXRATE_EHT_LTF,
 
        /* keep last */
        __NL80211_TXRATE_AFTER_LAST,
@@ -5525,6 +5608,15 @@ enum nl80211_txrate_gi {
        NL80211_TXRATE_FORCE_LGI,
 };
 
+#define NL80211_EHT_NSS_MAX             16
+/**
+ * struct nl80211_txrate_eht - EHT MCS/NSS txrate bitmap
+ * @mcs: MCS bitmap table for each NSS (array index 0 for 1 stream, etc.)
+ */
+struct nl80211_txrate_eht {
+       __u16 mcs[NL80211_EHT_NSS_MAX];
+};
+
 /**
  * enum nl80211_band - Frequency band
  * @NL80211_BAND_2GHZ: 2.4 GHz ISM band
@@ -6649,6 +6741,9 @@ enum nl80211_feature_flags {
  *     (signaling and payload protected) A-MSDUs and this shall be advertised
  *     in the RSNXE.
  *
+ * @NL80211_EXT_FEATURE_BEACON_RATE_EHT: Driver supports beacon rate
+ *     configuration (AP/mesh) with EHT rates.
+ *
  * @NUM_NL80211_EXT_FEATURES: number of extended features.
  * @MAX_NL80211_EXT_FEATURES: highest extended feature index.
  */
@@ -6724,6 +6819,7 @@ enum nl80211_ext_feature_index {
        NL80211_EXT_FEATURE_OWE_OFFLOAD_AP,
        NL80211_EXT_FEATURE_DFS_CONCURRENT,
        NL80211_EXT_FEATURE_SPP_AMSDU_SUPPORT,
+       NL80211_EXT_FEATURE_BEACON_RATE_EHT,
 
        /* add new features before the definition below */
        NUM_NL80211_EXT_FEATURES,
@@ -7278,6 +7374,105 @@ enum nl80211_nan_match_attributes {
        NL80211_NAN_MATCH_ATTR_MAX = NUM_NL80211_NAN_MATCH_ATTR - 1
 };
 
+/**
+ * enum nl80211_nan_band_conf_attributes - NAN band configuration attributes
+ * @__NL80211_NAN_BAND_CONF_INVALID: Invalid.
+ * @NL80211_NAN_BAND_CONF_BAND: Band for which the configuration is
+ *     being set. The value is according to &enum nl80211_band (u8).
+ * @NL80211_NAN_BAND_CONF_FREQ: Discovery frequency. This attribute shall not
+ *     be present on 2.4 GHZ band. On 5 GHz band its presence is optional.
+ *     The allowed values are 5220 (channel 44) or 5745 (channel 149).
+ *     If not present, channel 149 is used if allowed, otherwise channel 44
+ *     will be selected. The value is in MHz (u16).
+ * @NL80211_NAN_BAND_CONF_RSSI_CLOSE: RSSI close threshold used for NAN state
+ *     transition algorithm as described in chapters 3.3.6 and 3.3.7 "NAN
+ *     Device Role and State Transition" of Wi-Fi Aware (TM) Specification
+ *     v4.0. If not specified, default device value is used. The value should
+ *     be greater than -60 dBm (s8).
+ * @NL80211_NAN_BAND_CONF_RSSI_MIDDLE: RSSI middle threshold used for NAN state
+ *     transition algorithm as described in chapters 3.3.6 and 3.3.7 "NAN
+ *     Device Role and State Transition" of Wi-Fi Aware (TM) Specification
+ *     v4.0. If not present, default device value is used. The value should be
+ *     greater than -75 dBm and less than %NL80211_NAN_BAND_CONF_RSSI_CLOSE
+ *     (s8).
+ * @NL80211_NAN_BAND_CONF_WAKE_DW: Committed DW information (values 0-5).
+ *     Value 0 means that the device will not wake up during the
+ *     discovery window. Values 1-5 mean that the device will wake up
+ *     during each 2^(n - 1) discovery window, where n is the value of
+ *     this attribute. Setting this attribute to 0 is not allowed on
+ *     2.4 GHz band (u8). This is an optional parameter (default is 1).
+ * @NL80211_NAN_BAND_CONF_DISABLE_SCAN: Optional flag attribute to disable
+ *     scanning (for cluster merge) on the band. If set, the device will not
+ *     scan on this band anymore. Disabling scanning on 2.4 GHz band is not
+ *     allowed.
+ * @NUM_NL80211_NAN_BAND_CONF_ATTR: Internal.
+ * @NL80211_NAN_BAND_CONF_ATTR_MAX: Highest NAN band configuration attribute.
+ *
+ * These attributes are used to configure NAN band-specific parameters. Note,
+ * that both RSSI attributes should be configured (or both left unset).
+ */
+enum nl80211_nan_band_conf_attributes {
+       __NL80211_NAN_BAND_CONF_INVALID,
+       NL80211_NAN_BAND_CONF_BAND,
+       NL80211_NAN_BAND_CONF_FREQ,
+       NL80211_NAN_BAND_CONF_RSSI_CLOSE,
+       NL80211_NAN_BAND_CONF_RSSI_MIDDLE,
+       NL80211_NAN_BAND_CONF_WAKE_DW,
+       NL80211_NAN_BAND_CONF_DISABLE_SCAN,
+
+       /* keep last */
+       NUM_NL80211_NAN_BAND_CONF_ATTR,
+       NL80211_NAN_BAND_CONF_ATTR_MAX = NUM_NL80211_NAN_BAND_CONF_ATTR - 1,
+};
+
+/**
+ * enum nl80211_nan_conf_attributes - NAN configuration attributes
+ * @__NL80211_NAN_CONF_INVALID: Invalid attribute, used for validation.
+ * @NL80211_NAN_CONF_CLUSTER_ID: ID for the NAN cluster. This is a MAC
+ *     address that can take values from 50-6F-9A-01-00-00 to
+ *     50-6F-9A-01-FF-FF. This attribute is optional. If not present,
+ *     a random Cluster ID will be chosen.
+ * @NL80211_NAN_CONF_EXTRA_ATTRS: Additional NAN attributes to be
+ *     published in the beacons. This is an optional byte array.
+ * @NL80211_NAN_CONF_VENDOR_ELEMS: Vendor-specific elements that will
+ *     be published in the beacons. This is an optional byte array.
+ * @NL80211_NAN_CONF_BAND_CONFIGS: This is a nested array attribute,
+ *     containing multiple entries for each supported band. Each band
+ *     configuration consists of &enum nl80211_nan_band_conf_attributes.
+ * @NL80211_NAN_CONF_SCAN_PERIOD: Scan period in seconds. If not configured,
+ *     device default is used. Zero value will disable scanning.
+ *     This is u16 (optional).
+ * @NL80211_NAN_CONF_SCAN_DWELL_TIME: Scan dwell time in TUs per channel.
+ *     Only non-zero values are valid. If not configured the device default
+ *     value is used. This is u16 (optional)
+ * @NL80211_NAN_CONF_DISCOVERY_BEACON_INTERVAL: Discovery beacon interval
+ *     in TUs. Valid range is 50-200 TUs. If not configured the device default
+ *     value is used. This is u8 (optional)
+ * @NL80211_NAN_CONF_NOTIFY_DW: If set, the driver will notify userspace about
+ *     the upcoming discovery window with
+ *     %NL80211_CMD_NAN_NEXT_DW_NOTIFICATION.
+ *     This is a flag attribute.
+ * @NUM_NL80211_NAN_CONF_ATTR: Internal.
+ * @NL80211_NAN_CONF_ATTR_MAX: Highest NAN configuration attribute.
+ *
+ * These attributes are used to configure NAN-specific parameters.
+ */
+enum nl80211_nan_conf_attributes {
+       __NL80211_NAN_CONF_INVALID,
+       NL80211_NAN_CONF_CLUSTER_ID,
+       NL80211_NAN_CONF_EXTRA_ATTRS,
+       NL80211_NAN_CONF_VENDOR_ELEMS,
+       NL80211_NAN_CONF_BAND_CONFIGS,
+       NL80211_NAN_CONF_SCAN_PERIOD,
+       NL80211_NAN_CONF_SCAN_DWELL_TIME,
+       NL80211_NAN_CONF_DISCOVERY_BEACON_INTERVAL,
+       NL80211_NAN_CONF_NOTIFY_DW,
+
+       /* keep last */
+       NUM_NL80211_NAN_CONF_ATTR,
+       NL80211_NAN_CONF_ATTR_MAX = NUM_NL80211_NAN_CONF_ATTR - 1,
+};
+
 /**
  * enum nl80211_external_auth_action - Action to perform with external
  *     authentication request. Used by NL80211_ATTR_EXTERNAL_AUTH_ACTION.
@@ -8187,4 +8382,54 @@ enum nl80211_s1g_short_beacon_attrs {
                __NL80211_S1G_SHORT_BEACON_ATTR_LAST - 1
 };
 
+/**
+ * enum nl80211_nan_capabilities - NAN (Neighbor Aware Networking)
+ *     capabilities.
+ *
+ * @__NL80211_NAN_CAPABILITIES_INVALID: Invalid.
+ * @NL80211_NAN_CAPA_CONFIGURABLE_SYNC: Flag attribute indicating that
+ *     the device supports configurable synchronization. If set, the device
+ *     should be able to handle %NL80211_ATTR_NAN_CONFIG
+ *     attribute in the %NL80211_CMD_START_NAN (and change) command.
+ * @NL80211_NAN_CAPA_USERSPACE_DE: Flag attribute indicating that
+ *     NAN Discovery Engine (DE) is not offloaded and the driver assumes
+ *     user space DE implementation. When set, %NL80211_CMD_ADD_NAN_FUNCTION,
+ *     %NL80211_CMD_DEL_NAN_FUNCTION and %NL80211_CMD_NAN_MATCH commands
+ *     should not be used. In addition, the device/driver should support
+ *     sending discovery window (DW) notifications using
+ *     %NL80211_CMD_NAN_NEXT_DW_NOTIFICATION and handling transmission and
+ *     reception of NAN SDF frames on NAN device interface during DW windows.
+ *     (%NL80211_CMD_FRAME is used to transmit SDFs)
+ * @NL80211_NAN_CAPA_OP_MODE: u8 attribute indicating the supported operation
+ *     modes as defined in Wi-Fi Aware (TM) specification Table 81 (Operation
+ *     Mode field format).
+ * @NL80211_NAN_CAPA_NUM_ANTENNAS: u8 attribute indicating the number of
+ *     TX and RX antennas supported by the device. Lower nibble indicates
+ *     the number of TX antennas and upper nibble indicates the number of RX
+ *     antennas. Value 0 indicates the information is not available.
+ *     See table 79 of Wi-Fi Aware (TM) specification (Number of
+ *     Antennas field).
+ * @NL80211_NAN_CAPA_MAX_CHANNEL_SWITCH_TIME: u16 attribute indicating the
+ *     maximum time in microseconds that the device requires to switch
+ *     channels.
+ * @NL80211_NAN_CAPA_CAPABILITIES: u8 attribute containing the
+ *     capabilities of the device as defined in Wi-Fi Aware (TM)
+ *     specification Table 79 (Capabilities field).
+ * @__NL80211_NAN_CAPABILITIES_LAST: Internal
+ * @NL80211_NAN_CAPABILITIES_MAX: Highest NAN capability attribute.
+ */
+enum nl80211_nan_capabilities {
+       __NL80211_NAN_CAPABILITIES_INVALID,
+
+       NL80211_NAN_CAPA_CONFIGURABLE_SYNC,
+       NL80211_NAN_CAPA_USERSPACE_DE,
+       NL80211_NAN_CAPA_OP_MODE,
+       NL80211_NAN_CAPA_NUM_ANTENNAS,
+       NL80211_NAN_CAPA_MAX_CHANNEL_SWITCH_TIME,
+       NL80211_NAN_CAPA_CAPABILITIES,
+       /* keep last */
+       __NL80211_NAN_CAPABILITIES_LAST,
+       NL80211_NAN_CAPABILITIES_MAX = __NL80211_NAN_CAPABILITIES_LAST - 1,
+};
+
 #endif /* __LINUX_NL80211_H */
index ed3aed264aeb28810abfd2366e53444f868f130d..51c4e8c82b1e98899c00d2e4609ca35432176533 100644 (file)
@@ -177,7 +177,17 @@ struct prctl_mm_map {
 
 #define PR_GET_TID_ADDRESS     40
 
+/*
+ * Flags for PR_SET_THP_DISABLE are only applicable when disabling. Bit 0
+ * is reserved, so PR_GET_THP_DISABLE can return "1 | flags", to effectively
+ * return "1" when no flags were specified for PR_SET_THP_DISABLE.
+ */
 #define PR_SET_THP_DISABLE     41
+/*
+ * Don't disable THPs when explicitly advised (e.g., MADV_HUGEPAGE /
+ * VM_HUGEPAGE, MADV_COLLAPSE).
+ */
+# define PR_THP_DISABLE_EXCEPT_ADVISED (1 << 1)
 #define PR_GET_THP_DISABLE     42
 
 /*
index e1fcfcf3b33261939797d79f4e29a28fa1da6e10..48ee4438e0ef053680c64af21553e8180ce5fdee 100644 (file)
@@ -3,7 +3,6 @@
 #define _LINUX_STDDEF_H
 
 
-
 #ifndef __always_inline
 #define __always_inline __inline__
 #endif