mirror of
https://github.com/MiSTer-devel/Linux-Kernel_MiSTer.git
synced 2026-05-17 03:03:57 +00:00
v5.14
This commit is contained in:
@@ -48,7 +48,7 @@
|
||||
* 2500 - 2999 future user space (maybe integrity labels and related events)
|
||||
*
|
||||
* Messages from 1000-1199 are bi-directional. 1200-1299 & 2100 - 2999 are
|
||||
* exclusively user space. 1300-2099 is kernel --> user space
|
||||
* exclusively user space. 1300-2099 is kernel --> user space
|
||||
* communication.
|
||||
*/
|
||||
#define AUDIT_GET 1000 /* Get status */
|
||||
@@ -78,7 +78,7 @@
|
||||
#define AUDIT_LAST_USER_MSG 1199
|
||||
#define AUDIT_FIRST_USER_MSG2 2100 /* More user space messages */
|
||||
#define AUDIT_LAST_USER_MSG2 2999
|
||||
|
||||
|
||||
#define AUDIT_DAEMON_START 1200 /* Daemon startup record */
|
||||
#define AUDIT_DAEMON_END 1201 /* Daemon normal stop record */
|
||||
#define AUDIT_DAEMON_ABORT 1202 /* Daemon error stop record */
|
||||
|
||||
@@ -33,5 +33,8 @@
|
||||
|
||||
#define AT_EXECFN 31 /* filename of program */
|
||||
|
||||
#ifndef AT_MINSIGSTKSZ
|
||||
#define AT_MINSIGSTKSZ 51 /* minimal stack size for signal delivery */
|
||||
#endif
|
||||
|
||||
#endif /* _UAPI_LINUX_AUXVEC_H */
|
||||
|
||||
@@ -527,6 +527,15 @@ union bpf_iter_link_info {
|
||||
* Look up an element with the given *key* in the map referred to
|
||||
* by the file descriptor *fd*, and if found, delete the element.
|
||||
*
|
||||
* For **BPF_MAP_TYPE_QUEUE** and **BPF_MAP_TYPE_STACK** map
|
||||
* types, the *flags* argument needs to be set to 0, but for other
|
||||
* map types, it may be specified as:
|
||||
*
|
||||
* **BPF_F_LOCK**
|
||||
* Look up and delete the value of a spin-locked map
|
||||
* without returning the lock. This must be specified if
|
||||
* the elements contain a spinlock.
|
||||
*
|
||||
* The **BPF_MAP_TYPE_QUEUE** and **BPF_MAP_TYPE_STACK** map types
|
||||
* implement this command as a "pop" operation, deleting the top
|
||||
* element rather than one corresponding to *key*.
|
||||
@@ -536,6 +545,10 @@ union bpf_iter_link_info {
|
||||
* This command is only valid for the following map types:
|
||||
* * **BPF_MAP_TYPE_QUEUE**
|
||||
* * **BPF_MAP_TYPE_STACK**
|
||||
* * **BPF_MAP_TYPE_HASH**
|
||||
* * **BPF_MAP_TYPE_PERCPU_HASH**
|
||||
* * **BPF_MAP_TYPE_LRU_HASH**
|
||||
* * **BPF_MAP_TYPE_LRU_PERCPU_HASH**
|
||||
*
|
||||
* Return
|
||||
* Returns zero on success. On error, -1 is returned and *errno*
|
||||
@@ -837,6 +850,7 @@ enum bpf_cmd {
|
||||
BPF_PROG_ATTACH,
|
||||
BPF_PROG_DETACH,
|
||||
BPF_PROG_TEST_RUN,
|
||||
BPF_PROG_RUN = BPF_PROG_TEST_RUN,
|
||||
BPF_PROG_GET_NEXT_ID,
|
||||
BPF_MAP_GET_NEXT_ID,
|
||||
BPF_PROG_GET_FD_BY_ID,
|
||||
@@ -937,6 +951,7 @@ enum bpf_prog_type {
|
||||
BPF_PROG_TYPE_EXT,
|
||||
BPF_PROG_TYPE_LSM,
|
||||
BPF_PROG_TYPE_SK_LOOKUP,
|
||||
BPF_PROG_TYPE_SYSCALL, /* a program that can execute syscalls */
|
||||
};
|
||||
|
||||
enum bpf_attach_type {
|
||||
@@ -979,6 +994,8 @@ enum bpf_attach_type {
|
||||
BPF_SK_LOOKUP,
|
||||
BPF_XDP,
|
||||
BPF_SK_SKB_VERDICT,
|
||||
BPF_SK_REUSEPORT_SELECT,
|
||||
BPF_SK_REUSEPORT_SELECT_OR_MIGRATE,
|
||||
__MAX_BPF_ATTACH_TYPE
|
||||
};
|
||||
|
||||
@@ -1097,8 +1114,8 @@ enum bpf_link_type {
|
||||
/* When BPF ldimm64's insn[0].src_reg != 0 then this can have
|
||||
* the following extensions:
|
||||
*
|
||||
* insn[0].src_reg: BPF_PSEUDO_MAP_FD
|
||||
* insn[0].imm: map fd
|
||||
* insn[0].src_reg: BPF_PSEUDO_MAP_[FD|IDX]
|
||||
* insn[0].imm: map fd or fd_idx
|
||||
* insn[1].imm: 0
|
||||
* insn[0].off: 0
|
||||
* insn[1].off: 0
|
||||
@@ -1106,15 +1123,19 @@ enum bpf_link_type {
|
||||
* verifier type: CONST_PTR_TO_MAP
|
||||
*/
|
||||
#define BPF_PSEUDO_MAP_FD 1
|
||||
/* insn[0].src_reg: BPF_PSEUDO_MAP_VALUE
|
||||
* insn[0].imm: map fd
|
||||
#define BPF_PSEUDO_MAP_IDX 5
|
||||
|
||||
/* insn[0].src_reg: BPF_PSEUDO_MAP_[IDX_]VALUE
|
||||
* insn[0].imm: map fd or fd_idx
|
||||
* insn[1].imm: offset into value
|
||||
* insn[0].off: 0
|
||||
* insn[1].off: 0
|
||||
* ldimm64 rewrite: address of map[0]+offset
|
||||
* verifier type: PTR_TO_MAP_VALUE
|
||||
*/
|
||||
#define BPF_PSEUDO_MAP_VALUE 2
|
||||
#define BPF_PSEUDO_MAP_VALUE 2
|
||||
#define BPF_PSEUDO_MAP_IDX_VALUE 6
|
||||
|
||||
/* insn[0].src_reg: BPF_PSEUDO_BTF_ID
|
||||
* insn[0].imm: kernel btd id of VAR
|
||||
* insn[1].imm: 0
|
||||
@@ -1314,6 +1335,8 @@ union bpf_attr {
|
||||
/* or valid module BTF object fd or 0 to attach to vmlinux */
|
||||
__u32 attach_btf_obj_fd;
|
||||
};
|
||||
__u32 :32; /* pad */
|
||||
__aligned_u64 fd_array; /* array of FDs */
|
||||
};
|
||||
|
||||
struct { /* anonymous struct used by BPF_OBJ_* commands */
|
||||
@@ -2534,8 +2557,12 @@ union bpf_attr {
|
||||
* The lower two bits of *flags* are used as the return code if
|
||||
* the map lookup fails. This is so that the return value can be
|
||||
* one of the XDP program return codes up to **XDP_TX**, as chosen
|
||||
* by the caller. Any higher bits in the *flags* argument must be
|
||||
* unset.
|
||||
* by the caller. The higher bits of *flags* can be set to
|
||||
* BPF_F_BROADCAST or BPF_F_EXCLUDE_INGRESS as defined below.
|
||||
*
|
||||
* With BPF_F_BROADCAST the packet will be broadcasted to all the
|
||||
* interfaces in the map, with BPF_F_EXCLUDE_INGRESS the ingress
|
||||
* interface will be excluded when do broadcasting.
|
||||
*
|
||||
* See also **bpf_redirect**\ (), which only supports redirecting
|
||||
* to an ifindex, but doesn't require a map to do so.
|
||||
@@ -4735,6 +4762,24 @@ union bpf_attr {
|
||||
* be zero-terminated except when **str_size** is 0.
|
||||
*
|
||||
* Or **-EBUSY** if the per-CPU memory copy buffer is busy.
|
||||
*
|
||||
* long bpf_sys_bpf(u32 cmd, void *attr, u32 attr_size)
|
||||
* Description
|
||||
* Execute bpf syscall with given arguments.
|
||||
* Return
|
||||
* A syscall result.
|
||||
*
|
||||
* long bpf_btf_find_by_name_kind(char *name, int name_sz, u32 kind, int flags)
|
||||
* Description
|
||||
* Find BTF type with given name and kind in vmlinux BTF or in module's BTFs.
|
||||
* Return
|
||||
* Returns btf_id and btf_obj_fd in lower and upper 32 bits.
|
||||
*
|
||||
* long bpf_sys_close(u32 fd)
|
||||
* Description
|
||||
* Execute close syscall for given FD.
|
||||
* Return
|
||||
* A syscall result.
|
||||
*/
|
||||
#define __BPF_FUNC_MAPPER(FN) \
|
||||
FN(unspec), \
|
||||
@@ -4903,6 +4948,9 @@ union bpf_attr {
|
||||
FN(check_mtu), \
|
||||
FN(for_each_map_elem), \
|
||||
FN(snprintf), \
|
||||
FN(sys_bpf), \
|
||||
FN(btf_find_by_name_kind), \
|
||||
FN(sys_close), \
|
||||
/* */
|
||||
|
||||
/* integer value in 'imm' field of BPF_CALL instruction selects which helper
|
||||
@@ -5080,6 +5128,12 @@ enum {
|
||||
BPF_F_BPRM_SECUREEXEC = (1ULL << 0),
|
||||
};
|
||||
|
||||
/* Flags for bpf_redirect_map helper */
|
||||
enum {
|
||||
BPF_F_BROADCAST = (1ULL << 3),
|
||||
BPF_F_EXCLUDE_INGRESS = (1ULL << 4),
|
||||
};
|
||||
|
||||
#define __bpf_md_ptr(type, name) \
|
||||
union { \
|
||||
type name; \
|
||||
@@ -5364,6 +5418,20 @@ struct sk_reuseport_md {
|
||||
__u32 ip_protocol; /* IP protocol. e.g. IPPROTO_TCP, IPPROTO_UDP */
|
||||
__u32 bind_inany; /* Is sock bound to an INANY address? */
|
||||
__u32 hash; /* A hash of the packet 4 tuples */
|
||||
/* When reuse->migrating_sk is NULL, it is selecting a sk for the
|
||||
* new incoming connection request (e.g. selecting a listen sk for
|
||||
* the received SYN in the TCP case). reuse->sk is one of the sk
|
||||
* in the reuseport group. The bpf prog can use reuse->sk to learn
|
||||
* the local listening ip/port without looking into the skb.
|
||||
*
|
||||
* When reuse->migrating_sk is not NULL, reuse->sk is closed and
|
||||
* reuse->migrating_sk is the socket that needs to be migrated
|
||||
* to another listening socket. migrating_sk could be a fullsock
|
||||
* sk that is fully established or a reqsk that is in-the-middle
|
||||
* of 3-way handshake.
|
||||
*/
|
||||
__bpf_md_ptr(struct bpf_sock *, sk);
|
||||
__bpf_md_ptr(struct bpf_sock *, migrating_sk);
|
||||
};
|
||||
|
||||
#define BPF_TAG_SIZE 8
|
||||
|
||||
@@ -154,7 +154,7 @@ struct btrfs_scrub_progress {
|
||||
__u64 tree_bytes_scrubbed; /* # of tree bytes scrubbed */
|
||||
__u64 read_errors; /* # of read errors encountered (EIO) */
|
||||
__u64 csum_errors; /* # of failed csum checks */
|
||||
__u64 verify_errors; /* # of occurences, where the metadata
|
||||
__u64 verify_errors; /* # of occurrences, where the metadata
|
||||
* of a tree block did not match the
|
||||
* expected values, like generation or
|
||||
* logical */
|
||||
@@ -174,7 +174,7 @@ struct btrfs_scrub_progress {
|
||||
__u64 last_physical; /* last physical address scrubbed. In
|
||||
* case a scrub was aborted, this can
|
||||
* be used to restart the scrub */
|
||||
__u64 unverified_errors; /* # of occurences where a read for a
|
||||
__u64 unverified_errors; /* # of occurrences where a read for a
|
||||
* full (64k) bio failed, but the re-
|
||||
* check succeeded for each 4k piece.
|
||||
* Intermittent error. */
|
||||
|
||||
@@ -59,7 +59,7 @@
|
||||
/* for storing balance parameters in the root tree */
|
||||
#define BTRFS_BALANCE_OBJECTID -4ULL
|
||||
|
||||
/* orhpan objectid for tracking unlinked/truncated files */
|
||||
/* orphan objectid for tracking unlinked/truncated files */
|
||||
#define BTRFS_ORPHAN_OBJECTID -5ULL
|
||||
|
||||
/* does write ahead logging to speed up fsyncs */
|
||||
@@ -275,7 +275,7 @@
|
||||
#define BTRFS_PERSISTENT_ITEM_KEY 249
|
||||
|
||||
/*
|
||||
* Persistantly stores the device replace state in the device tree.
|
||||
* Persistently stores the device replace state in the device tree.
|
||||
* The key is built like this: (0, BTRFS_DEV_REPLACE_KEY, 0).
|
||||
*/
|
||||
#define BTRFS_DEV_REPLACE_KEY 250
|
||||
|
||||
@@ -123,8 +123,8 @@ struct can_frame {
|
||||
/*
|
||||
* defined bits for canfd_frame.flags
|
||||
*
|
||||
* The use of struct canfd_frame implies the Extended Data Length (EDL) bit to
|
||||
* be set in the CAN frame bitstream on the wire. The EDL bit switch turns
|
||||
* The use of struct canfd_frame implies the FD Frame (FDF) bit to
|
||||
* be set in the CAN frame bitstream on the wire. The FDF bit switch turns
|
||||
* the CAN controllers bitstream processor into the CAN FD mode which creates
|
||||
* two new options within the CAN FD frame specification:
|
||||
*
|
||||
@@ -135,9 +135,18 @@ struct can_frame {
|
||||
* controller only the CANFD_BRS bit is relevant for real CAN controllers when
|
||||
* building a CAN FD frame for transmission. Setting the CANFD_ESI bit can make
|
||||
* sense for virtual CAN interfaces to test applications with echoed frames.
|
||||
*
|
||||
* The struct can_frame and struct canfd_frame intentionally share the same
|
||||
* layout to be able to write CAN frame content into a CAN FD frame structure.
|
||||
* When this is done the former differentiation via CAN_MTU / CANFD_MTU gets
|
||||
* lost. CANFD_FDF allows programmers to mark CAN FD frames in the case of
|
||||
* using struct canfd_frame for mixed CAN / CAN FD content (dual use).
|
||||
* N.B. the Kernel APIs do NOT provide mixed CAN / CAN FD content inside of
|
||||
* struct canfd_frame therefore the CANFD_FDF flag is disregarded by Linux.
|
||||
*/
|
||||
#define CANFD_BRS 0x01 /* bit rate switch (second bitrate for payload data) */
|
||||
#define CANFD_ESI 0x02 /* error state indicator of the transmitting node */
|
||||
#define CANFD_FDF 0x04 /* mark CAN FD for dual use of struct canfd_frame */
|
||||
|
||||
/**
|
||||
* struct canfd_frame - CAN flexible data rate frame structure
|
||||
|
||||
@@ -1665,7 +1665,7 @@ static inline void cec_ops_report_current_latency(const struct cec_msg *msg,
|
||||
if (*audio_out_compensated == 3 && msg->len >= 7)
|
||||
*audio_out_delay = msg->msg[6];
|
||||
else
|
||||
*audio_out_delay = 0;
|
||||
*audio_out_delay = 1;
|
||||
}
|
||||
|
||||
static inline void cec_msg_request_current_latency(struct cec_msg *msg,
|
||||
|
||||
@@ -29,6 +29,18 @@
|
||||
___C(GET_LSA, "Get Label Storage Area"), \
|
||||
___C(GET_HEALTH_INFO, "Get Health Info"), \
|
||||
___C(GET_LOG, "Get Log"), \
|
||||
___C(SET_PARTITION_INFO, "Set Partition Information"), \
|
||||
___C(SET_LSA, "Set Label Storage Area"), \
|
||||
___C(GET_ALERT_CONFIG, "Get Alert Configuration"), \
|
||||
___C(SET_ALERT_CONFIG, "Set Alert Configuration"), \
|
||||
___C(GET_SHUTDOWN_STATE, "Get Shutdown State"), \
|
||||
___C(SET_SHUTDOWN_STATE, "Set Shutdown State"), \
|
||||
___C(GET_POISON, "Get Poison List"), \
|
||||
___C(INJECT_POISON, "Inject Poison"), \
|
||||
___C(CLEAR_POISON, "Clear Poison"), \
|
||||
___C(GET_SCAN_MEDIA_CAPS, "Get Scan Media Capabilities"), \
|
||||
___C(SCAN_MEDIA, "Scan Media"), \
|
||||
___C(GET_SCAN_MEDIA, "Get Scan Media Results"), \
|
||||
___C(MAX, "invalid / last command")
|
||||
|
||||
#define ___C(a, b) CXL_MEM_COMMAND_ID_##a
|
||||
|
||||
@@ -126,6 +126,11 @@ enum devlink_command {
|
||||
|
||||
DEVLINK_CMD_HEALTH_REPORTER_TEST,
|
||||
|
||||
DEVLINK_CMD_RATE_GET, /* can dump */
|
||||
DEVLINK_CMD_RATE_SET,
|
||||
DEVLINK_CMD_RATE_NEW,
|
||||
DEVLINK_CMD_RATE_DEL,
|
||||
|
||||
/* add new commands above here */
|
||||
__DEVLINK_CMD_MAX,
|
||||
DEVLINK_CMD_MAX = __DEVLINK_CMD_MAX - 1
|
||||
@@ -206,6 +211,11 @@ enum devlink_port_flavour {
|
||||
*/
|
||||
};
|
||||
|
||||
enum devlink_rate_type {
|
||||
DEVLINK_RATE_TYPE_LEAF,
|
||||
DEVLINK_RATE_TYPE_NODE,
|
||||
};
|
||||
|
||||
enum devlink_param_cmode {
|
||||
DEVLINK_PARAM_CMODE_RUNTIME,
|
||||
DEVLINK_PARAM_CMODE_DRIVERINIT,
|
||||
@@ -534,6 +544,13 @@ enum devlink_attr {
|
||||
DEVLINK_ATTR_RELOAD_ACTION_STATS, /* nested */
|
||||
|
||||
DEVLINK_ATTR_PORT_PCI_SF_NUMBER, /* u32 */
|
||||
|
||||
DEVLINK_ATTR_RATE_TYPE, /* u16 */
|
||||
DEVLINK_ATTR_RATE_TX_SHARE, /* u64 */
|
||||
DEVLINK_ATTR_RATE_TX_MAX, /* u64 */
|
||||
DEVLINK_ATTR_RATE_NODE_NAME, /* string */
|
||||
DEVLINK_ATTR_RATE_PARENT_NODE_NAME, /* string */
|
||||
|
||||
/* add new attributes above here, update the policy in devlink.c */
|
||||
|
||||
__DEVLINK_ATTR_MAX,
|
||||
|
||||
@@ -46,6 +46,7 @@ enum {
|
||||
ETHTOOL_MSG_FEC_SET,
|
||||
ETHTOOL_MSG_MODULE_EEPROM_GET,
|
||||
ETHTOOL_MSG_STATS_GET,
|
||||
ETHTOOL_MSG_PHC_VCLOCKS_GET,
|
||||
|
||||
/* add new constants above here */
|
||||
__ETHTOOL_MSG_USER_CNT,
|
||||
@@ -88,6 +89,7 @@ enum {
|
||||
ETHTOOL_MSG_FEC_NTF,
|
||||
ETHTOOL_MSG_MODULE_EEPROM_GET_REPLY,
|
||||
ETHTOOL_MSG_STATS_GET_REPLY,
|
||||
ETHTOOL_MSG_PHC_VCLOCKS_GET_REPLY,
|
||||
|
||||
/* add new constants above here */
|
||||
__ETHTOOL_MSG_KERNEL_CNT,
|
||||
@@ -440,6 +442,19 @@ enum {
|
||||
ETHTOOL_A_TSINFO_MAX = (__ETHTOOL_A_TSINFO_CNT - 1)
|
||||
};
|
||||
|
||||
/* PHC VCLOCKS */
|
||||
|
||||
enum {
|
||||
ETHTOOL_A_PHC_VCLOCKS_UNSPEC,
|
||||
ETHTOOL_A_PHC_VCLOCKS_HEADER, /* nest - _A_HEADER_* */
|
||||
ETHTOOL_A_PHC_VCLOCKS_NUM, /* u32 */
|
||||
ETHTOOL_A_PHC_VCLOCKS_INDEX, /* array, s32 */
|
||||
|
||||
/* add new constants above here */
|
||||
__ETHTOOL_A_PHC_VCLOCKS_CNT,
|
||||
ETHTOOL_A_PHC_VCLOCKS_MAX = (__ETHTOOL_A_PHC_VCLOCKS_CNT - 1)
|
||||
};
|
||||
|
||||
/* CABLE TEST */
|
||||
|
||||
enum {
|
||||
@@ -675,7 +690,7 @@ enum {
|
||||
ETHTOOL_A_MODULE_EEPROM_PAGE, /* u8 */
|
||||
ETHTOOL_A_MODULE_EEPROM_BANK, /* u8 */
|
||||
ETHTOOL_A_MODULE_EEPROM_I2C_ADDRESS, /* u8 */
|
||||
ETHTOOL_A_MODULE_EEPROM_DATA, /* nested */
|
||||
ETHTOOL_A_MODULE_EEPROM_DATA, /* binary */
|
||||
|
||||
__ETHTOOL_A_MODULE_EEPROM_CNT,
|
||||
ETHTOOL_A_MODULE_EEPROM_MAX = (__ETHTOOL_A_MODULE_EEPROM_CNT - 1)
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
#define FUTEX_WAKE_BITSET 10
|
||||
#define FUTEX_WAIT_REQUEUE_PI 11
|
||||
#define FUTEX_CMP_REQUEUE_PI 12
|
||||
#define FUTEX_LOCK_PI2 13
|
||||
|
||||
#define FUTEX_PRIVATE_FLAG 128
|
||||
#define FUTEX_CLOCK_REALTIME 256
|
||||
@@ -32,6 +33,7 @@
|
||||
#define FUTEX_CMP_REQUEUE_PRIVATE (FUTEX_CMP_REQUEUE | FUTEX_PRIVATE_FLAG)
|
||||
#define FUTEX_WAKE_OP_PRIVATE (FUTEX_WAKE_OP | FUTEX_PRIVATE_FLAG)
|
||||
#define FUTEX_LOCK_PI_PRIVATE (FUTEX_LOCK_PI | FUTEX_PRIVATE_FLAG)
|
||||
#define FUTEX_LOCK_PI2_PRIVATE (FUTEX_LOCK_PI2 | FUTEX_PRIVATE_FLAG)
|
||||
#define FUTEX_UNLOCK_PI_PRIVATE (FUTEX_UNLOCK_PI | FUTEX_PRIVATE_FLAG)
|
||||
#define FUTEX_TRYLOCK_PI_PRIVATE (FUTEX_TRYLOCK_PI | FUTEX_PRIVATE_FLAG)
|
||||
#define FUTEX_WAIT_BITSET_PRIVATE (FUTEX_WAIT_BITSET | FUTEX_PRIVATE_FLAG)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
|
||||
/* SPDX-License-Identifier: LGPL-2.1 WITH Linux-syscall-note */
|
||||
/* Copyright(c) 2019 Intel Corporation. All rights rsvd. */
|
||||
#ifndef _USR_IDXD_H_
|
||||
#define _USR_IDXD_H_
|
||||
|
||||
@@ -627,6 +627,8 @@ enum {
|
||||
MDBA_ROUTER_PATTR_UNSPEC,
|
||||
MDBA_ROUTER_PATTR_TIMER,
|
||||
MDBA_ROUTER_PATTR_TYPE,
|
||||
MDBA_ROUTER_PATTR_INET_TIMER,
|
||||
MDBA_ROUTER_PATTR_INET6_TIMER,
|
||||
__MDBA_ROUTER_PATTR_MAX
|
||||
};
|
||||
#define MDBA_ROUTER_PATTR_MAX (__MDBA_ROUTER_PATTR_MAX - 1)
|
||||
|
||||
@@ -341,6 +341,13 @@ enum {
|
||||
IFLA_ALT_IFNAME, /* Alternative ifname */
|
||||
IFLA_PERM_ADDRESS,
|
||||
IFLA_PROTO_DOWN_REASON,
|
||||
|
||||
/* device (sysfs) name as parent, used instead
|
||||
* of IFLA_LINK where there's no parent netdev
|
||||
*/
|
||||
IFLA_PARENT_DEV_NAME,
|
||||
IFLA_PARENT_DEV_BUS_NAME,
|
||||
|
||||
__IFLA_MAX
|
||||
};
|
||||
|
||||
@@ -1236,6 +1243,8 @@ enum {
|
||||
#define RMNET_FLAGS_INGRESS_MAP_COMMANDS (1U << 1)
|
||||
#define RMNET_FLAGS_INGRESS_MAP_CKSUMV4 (1U << 2)
|
||||
#define RMNET_FLAGS_EGRESS_MAP_CKSUMV4 (1U << 3)
|
||||
#define RMNET_FLAGS_INGRESS_MAP_CKSUMV5 (1U << 4)
|
||||
#define RMNET_FLAGS_EGRESS_MAP_CKSUMV5 (1U << 5)
|
||||
|
||||
enum {
|
||||
IFLA_RMNET_UNSPEC,
|
||||
|
||||
@@ -46,21 +46,17 @@ struct io_uring_sqe {
|
||||
__u32 unlink_flags;
|
||||
};
|
||||
__u64 user_data; /* data to be passed back at completion time */
|
||||
/* pack this to avoid bogus arm OABI complaints */
|
||||
union {
|
||||
struct {
|
||||
/* pack this to avoid bogus arm OABI complaints */
|
||||
union {
|
||||
/* index into fixed buffers, if used */
|
||||
__u16 buf_index;
|
||||
/* for grouped buffer selection */
|
||||
__u16 buf_group;
|
||||
} __attribute__((packed));
|
||||
/* personality to use, if used */
|
||||
__u16 personality;
|
||||
__s32 splice_fd_in;
|
||||
};
|
||||
__u64 __pad2[3];
|
||||
};
|
||||
/* index into fixed buffers, if used */
|
||||
__u16 buf_index;
|
||||
/* for grouped buffer selection */
|
||||
__u16 buf_group;
|
||||
} __attribute__((packed));
|
||||
/* personality to use, if used */
|
||||
__u16 personality;
|
||||
__s32 splice_fd_in;
|
||||
__u64 __pad2[2];
|
||||
};
|
||||
|
||||
enum {
|
||||
@@ -306,6 +302,10 @@ enum {
|
||||
IORING_REGISTER_BUFFERS2 = 15,
|
||||
IORING_REGISTER_BUFFERS_UPDATE = 16,
|
||||
|
||||
/* set/clear io-wq thread affinities */
|
||||
IORING_REGISTER_IOWQ_AFF = 17,
|
||||
IORING_UNREGISTER_IOWQ_AFF = 18,
|
||||
|
||||
/* this goes last */
|
||||
IORING_REGISTER_LAST
|
||||
};
|
||||
|
||||
@@ -30,9 +30,10 @@
|
||||
* - 1.1 - initial version
|
||||
* - 1.3 - Add SMI events support
|
||||
* - 1.4 - Indicate new SRAM EDC bit in device properties
|
||||
* - 1.5 - Add SVM API
|
||||
*/
|
||||
#define KFD_IOCTL_MAJOR_VERSION 1
|
||||
#define KFD_IOCTL_MINOR_VERSION 4
|
||||
#define KFD_IOCTL_MINOR_VERSION 5
|
||||
|
||||
struct kfd_ioctl_get_version_args {
|
||||
__u32 major_version; /* from KFD */
|
||||
@@ -473,6 +474,167 @@ enum kfd_mmio_remap {
|
||||
KFD_MMIO_REMAP_HDP_REG_FLUSH_CNTL = 4,
|
||||
};
|
||||
|
||||
/* Guarantee host access to memory */
|
||||
#define KFD_IOCTL_SVM_FLAG_HOST_ACCESS 0x00000001
|
||||
/* Fine grained coherency between all devices with access */
|
||||
#define KFD_IOCTL_SVM_FLAG_COHERENT 0x00000002
|
||||
/* Use any GPU in same hive as preferred device */
|
||||
#define KFD_IOCTL_SVM_FLAG_HIVE_LOCAL 0x00000004
|
||||
/* GPUs only read, allows replication */
|
||||
#define KFD_IOCTL_SVM_FLAG_GPU_RO 0x00000008
|
||||
/* Allow execution on GPU */
|
||||
#define KFD_IOCTL_SVM_FLAG_GPU_EXEC 0x00000010
|
||||
/* GPUs mostly read, may allow similar optimizations as RO, but writes fault */
|
||||
#define KFD_IOCTL_SVM_FLAG_GPU_READ_MOSTLY 0x00000020
|
||||
|
||||
/**
|
||||
* kfd_ioctl_svm_op - SVM ioctl operations
|
||||
*
|
||||
* @KFD_IOCTL_SVM_OP_SET_ATTR: Modify one or more attributes
|
||||
* @KFD_IOCTL_SVM_OP_GET_ATTR: Query one or more attributes
|
||||
*/
|
||||
enum kfd_ioctl_svm_op {
|
||||
KFD_IOCTL_SVM_OP_SET_ATTR,
|
||||
KFD_IOCTL_SVM_OP_GET_ATTR
|
||||
};
|
||||
|
||||
/** kfd_ioctl_svm_location - Enum for preferred and prefetch locations
|
||||
*
|
||||
* GPU IDs are used to specify GPUs as preferred and prefetch locations.
|
||||
* Below definitions are used for system memory or for leaving the preferred
|
||||
* location unspecified.
|
||||
*/
|
||||
enum kfd_ioctl_svm_location {
|
||||
KFD_IOCTL_SVM_LOCATION_SYSMEM = 0,
|
||||
KFD_IOCTL_SVM_LOCATION_UNDEFINED = 0xffffffff
|
||||
};
|
||||
|
||||
/**
|
||||
* kfd_ioctl_svm_attr_type - SVM attribute types
|
||||
*
|
||||
* @KFD_IOCTL_SVM_ATTR_PREFERRED_LOC: gpuid of the preferred location, 0 for
|
||||
* system memory
|
||||
* @KFD_IOCTL_SVM_ATTR_PREFETCH_LOC: gpuid of the prefetch location, 0 for
|
||||
* system memory. Setting this triggers an
|
||||
* immediate prefetch (migration).
|
||||
* @KFD_IOCTL_SVM_ATTR_ACCESS:
|
||||
* @KFD_IOCTL_SVM_ATTR_ACCESS_IN_PLACE:
|
||||
* @KFD_IOCTL_SVM_ATTR_NO_ACCESS: specify memory access for the gpuid given
|
||||
* by the attribute value
|
||||
* @KFD_IOCTL_SVM_ATTR_SET_FLAGS: bitmask of flags to set (see
|
||||
* KFD_IOCTL_SVM_FLAG_...)
|
||||
* @KFD_IOCTL_SVM_ATTR_CLR_FLAGS: bitmask of flags to clear
|
||||
* @KFD_IOCTL_SVM_ATTR_GRANULARITY: migration granularity
|
||||
* (log2 num pages)
|
||||
*/
|
||||
enum kfd_ioctl_svm_attr_type {
|
||||
KFD_IOCTL_SVM_ATTR_PREFERRED_LOC,
|
||||
KFD_IOCTL_SVM_ATTR_PREFETCH_LOC,
|
||||
KFD_IOCTL_SVM_ATTR_ACCESS,
|
||||
KFD_IOCTL_SVM_ATTR_ACCESS_IN_PLACE,
|
||||
KFD_IOCTL_SVM_ATTR_NO_ACCESS,
|
||||
KFD_IOCTL_SVM_ATTR_SET_FLAGS,
|
||||
KFD_IOCTL_SVM_ATTR_CLR_FLAGS,
|
||||
KFD_IOCTL_SVM_ATTR_GRANULARITY
|
||||
};
|
||||
|
||||
/**
|
||||
* kfd_ioctl_svm_attribute - Attributes as pairs of type and value
|
||||
*
|
||||
* The meaning of the @value depends on the attribute type.
|
||||
*
|
||||
* @type: attribute type (see enum @kfd_ioctl_svm_attr_type)
|
||||
* @value: attribute value
|
||||
*/
|
||||
struct kfd_ioctl_svm_attribute {
|
||||
__u32 type;
|
||||
__u32 value;
|
||||
};
|
||||
|
||||
/**
|
||||
* kfd_ioctl_svm_args - Arguments for SVM ioctl
|
||||
*
|
||||
* @op specifies the operation to perform (see enum
|
||||
* @kfd_ioctl_svm_op). @start_addr and @size are common for all
|
||||
* operations.
|
||||
*
|
||||
* A variable number of attributes can be given in @attrs.
|
||||
* @nattr specifies the number of attributes. New attributes can be
|
||||
* added in the future without breaking the ABI. If unknown attributes
|
||||
* are given, the function returns -EINVAL.
|
||||
*
|
||||
* @KFD_IOCTL_SVM_OP_SET_ATTR sets attributes for a virtual address
|
||||
* range. It may overlap existing virtual address ranges. If it does,
|
||||
* the existing ranges will be split such that the attribute changes
|
||||
* only apply to the specified address range.
|
||||
*
|
||||
* @KFD_IOCTL_SVM_OP_GET_ATTR returns the intersection of attributes
|
||||
* over all memory in the given range and returns the result as the
|
||||
* attribute value. If different pages have different preferred or
|
||||
* prefetch locations, 0xffffffff will be returned for
|
||||
* @KFD_IOCTL_SVM_ATTR_PREFERRED_LOC or
|
||||
* @KFD_IOCTL_SVM_ATTR_PREFETCH_LOC resepctively. For
|
||||
* @KFD_IOCTL_SVM_ATTR_SET_FLAGS, flags of all pages will be
|
||||
* aggregated by bitwise AND. The minimum migration granularity
|
||||
* throughout the range will be returned for
|
||||
* @KFD_IOCTL_SVM_ATTR_GRANULARITY.
|
||||
*
|
||||
* Querying of accessibility attributes works by initializing the
|
||||
* attribute type to @KFD_IOCTL_SVM_ATTR_ACCESS and the value to the
|
||||
* GPUID being queried. Multiple attributes can be given to allow
|
||||
* querying multiple GPUIDs. The ioctl function overwrites the
|
||||
* attribute type to indicate the access for the specified GPU.
|
||||
*
|
||||
* @KFD_IOCTL_SVM_ATTR_CLR_FLAGS is invalid for
|
||||
* @KFD_IOCTL_SVM_OP_GET_ATTR.
|
||||
*/
|
||||
struct kfd_ioctl_svm_args {
|
||||
__u64 start_addr;
|
||||
__u64 size;
|
||||
__u32 op;
|
||||
__u32 nattr;
|
||||
/* Variable length array of attributes */
|
||||
struct kfd_ioctl_svm_attribute attrs[0];
|
||||
};
|
||||
|
||||
/**
|
||||
* kfd_ioctl_set_xnack_mode_args - Arguments for set_xnack_mode
|
||||
*
|
||||
* @xnack_enabled: [in/out] Whether to enable XNACK mode for this process
|
||||
*
|
||||
* @xnack_enabled indicates whether recoverable page faults should be
|
||||
* enabled for the current process. 0 means disabled, positive means
|
||||
* enabled, negative means leave unchanged. If enabled, virtual address
|
||||
* translations on GFXv9 and later AMD GPUs can return XNACK and retry
|
||||
* the access until a valid PTE is available. This is used to implement
|
||||
* device page faults.
|
||||
*
|
||||
* On output, @xnack_enabled returns the (new) current mode (0 or
|
||||
* positive). Therefore, a negative input value can be used to query
|
||||
* the current mode without changing it.
|
||||
*
|
||||
* The XNACK mode fundamentally changes the way SVM managed memory works
|
||||
* in the driver, with subtle effects on application performance and
|
||||
* functionality.
|
||||
*
|
||||
* Enabling XNACK mode requires shader programs to be compiled
|
||||
* differently. Furthermore, not all GPUs support changing the mode
|
||||
* per-process. Therefore changing the mode is only allowed while no
|
||||
* user mode queues exist in the process. This ensure that no shader
|
||||
* code is running that may be compiled for the wrong mode. And GPUs
|
||||
* that cannot change to the requested mode will prevent the XNACK
|
||||
* mode from occurring. All GPUs used by the process must be in the
|
||||
* same XNACK mode.
|
||||
*
|
||||
* GFXv8 or older GPUs do not support 48 bit virtual addresses or SVM.
|
||||
* Therefore those GPUs are not considered for the XNACK mode switch.
|
||||
*
|
||||
* Return: 0 on success, -errno on failure
|
||||
*/
|
||||
struct kfd_ioctl_set_xnack_mode_args {
|
||||
__s32 xnack_enabled;
|
||||
};
|
||||
|
||||
#define AMDKFD_IOCTL_BASE 'K'
|
||||
#define AMDKFD_IO(nr) _IO(AMDKFD_IOCTL_BASE, nr)
|
||||
#define AMDKFD_IOR(nr, type) _IOR(AMDKFD_IOCTL_BASE, nr, type)
|
||||
@@ -573,7 +735,12 @@ enum kfd_mmio_remap {
|
||||
#define AMDKFD_IOC_SMI_EVENTS \
|
||||
AMDKFD_IOWR(0x1F, struct kfd_ioctl_smi_events_args)
|
||||
|
||||
#define AMDKFD_IOC_SVM AMDKFD_IOWR(0x20, struct kfd_ioctl_svm_args)
|
||||
|
||||
#define AMDKFD_IOC_SET_XNACK_MODE \
|
||||
AMDKFD_IOWR(0x21, struct kfd_ioctl_set_xnack_mode_args)
|
||||
|
||||
#define AMDKFD_COMMAND_START 0x01
|
||||
#define AMDKFD_COMMAND_END 0x20
|
||||
#define AMDKFD_COMMAND_END 0x22
|
||||
|
||||
#endif
|
||||
|
||||
@@ -280,6 +280,9 @@ struct kvm_xen_exit {
|
||||
/* Encounter unexpected vm-exit reason */
|
||||
#define KVM_INTERNAL_ERROR_UNEXPECTED_EXIT_REASON 4
|
||||
|
||||
/* Flags that describe what fields in emulation_failure hold valid data. */
|
||||
#define KVM_INTERNAL_ERROR_EMULATION_FLAG_INSTRUCTION_BYTES (1ULL << 0)
|
||||
|
||||
/* for KVM_RUN, returned by mmap(vcpu_fd, offset=0) */
|
||||
struct kvm_run {
|
||||
/* in */
|
||||
@@ -383,6 +386,25 @@ struct kvm_run {
|
||||
__u32 ndata;
|
||||
__u64 data[16];
|
||||
} internal;
|
||||
/*
|
||||
* KVM_INTERNAL_ERROR_EMULATION
|
||||
*
|
||||
* "struct emulation_failure" is an overlay of "struct internal"
|
||||
* that is used for the KVM_INTERNAL_ERROR_EMULATION sub-type of
|
||||
* KVM_EXIT_INTERNAL_ERROR. Note, unlike other internal error
|
||||
* sub-types, this struct is ABI! It also needs to be backwards
|
||||
* compatible with "struct internal". Take special care that
|
||||
* "ndata" is correct, that new fields are enumerated in "flags",
|
||||
* and that each flag enumerates fields that are 64-bit aligned
|
||||
* and sized (so that ndata+internal.data[] is valid/accurate).
|
||||
*/
|
||||
struct {
|
||||
__u32 suberror;
|
||||
__u32 ndata;
|
||||
__u64 flags;
|
||||
__u8 insn_size;
|
||||
__u8 insn_bytes[15];
|
||||
} emulation_failure;
|
||||
/* KVM_EXIT_OSI */
|
||||
struct {
|
||||
__u64 gprs[32];
|
||||
@@ -1083,6 +1105,13 @@ struct kvm_ppc_resize_hpt {
|
||||
#define KVM_CAP_SGX_ATTRIBUTE 196
|
||||
#define KVM_CAP_VM_COPY_ENC_CONTEXT_FROM 197
|
||||
#define KVM_CAP_PTP_KVM 198
|
||||
#define KVM_CAP_HYPERV_ENFORCE_CPUID 199
|
||||
#define KVM_CAP_SREGS2 200
|
||||
#define KVM_CAP_EXIT_HYPERCALL 201
|
||||
#define KVM_CAP_PPC_RPT_INVALIDATE 202
|
||||
#define KVM_CAP_BINARY_STATS_FD 203
|
||||
#define KVM_CAP_EXIT_ON_EMULATION_FAILURE 204
|
||||
#define KVM_CAP_ARM_MTE 205
|
||||
|
||||
#ifdef KVM_CAP_IRQ_ROUTING
|
||||
|
||||
@@ -1428,6 +1457,7 @@ struct kvm_s390_ucas_mapping {
|
||||
/* Available with KVM_CAP_PMU_EVENT_FILTER */
|
||||
#define KVM_SET_PMU_EVENT_FILTER _IOW(KVMIO, 0xb2, struct kvm_pmu_event_filter)
|
||||
#define KVM_PPC_SVM_OFF _IO(KVMIO, 0xb3)
|
||||
#define KVM_ARM_MTE_COPY_TAGS _IOR(KVMIO, 0xb4, struct kvm_arm_copy_mte_tags)
|
||||
|
||||
/* ioctl for vm fd */
|
||||
#define KVM_CREATE_DEVICE _IOWR(KVMIO, 0xe0, struct kvm_create_device)
|
||||
@@ -1621,6 +1651,9 @@ struct kvm_xen_hvm_attr {
|
||||
#define KVM_XEN_VCPU_GET_ATTR _IOWR(KVMIO, 0xca, struct kvm_xen_vcpu_attr)
|
||||
#define KVM_XEN_VCPU_SET_ATTR _IOW(KVMIO, 0xcb, struct kvm_xen_vcpu_attr)
|
||||
|
||||
#define KVM_GET_SREGS2 _IOR(KVMIO, 0xcc, struct kvm_sregs2)
|
||||
#define KVM_SET_SREGS2 _IOW(KVMIO, 0xcd, struct kvm_sregs2)
|
||||
|
||||
struct kvm_xen_vcpu_attr {
|
||||
__u16 type;
|
||||
__u16 pad[3];
|
||||
@@ -1899,4 +1932,76 @@ struct kvm_dirty_gfn {
|
||||
#define KVM_BUS_LOCK_DETECTION_OFF (1 << 0)
|
||||
#define KVM_BUS_LOCK_DETECTION_EXIT (1 << 1)
|
||||
|
||||
/**
|
||||
* struct kvm_stats_header - Header of per vm/vcpu binary statistics data.
|
||||
* @flags: Some extra information for header, always 0 for now.
|
||||
* @name_size: The size in bytes of the memory which contains statistics
|
||||
* name string including trailing '\0'. The memory is allocated
|
||||
* at the send of statistics descriptor.
|
||||
* @num_desc: The number of statistics the vm or vcpu has.
|
||||
* @id_offset: The offset of the vm/vcpu stats' id string in the file pointed
|
||||
* by vm/vcpu stats fd.
|
||||
* @desc_offset: The offset of the vm/vcpu stats' descriptor block in the file
|
||||
* pointd by vm/vcpu stats fd.
|
||||
* @data_offset: The offset of the vm/vcpu stats' data block in the file
|
||||
* pointed by vm/vcpu stats fd.
|
||||
*
|
||||
* This is the header userspace needs to read from stats fd before any other
|
||||
* readings. It is used by userspace to discover all the information about the
|
||||
* vm/vcpu's binary statistics.
|
||||
* Userspace reads this header from the start of the vm/vcpu's stats fd.
|
||||
*/
|
||||
struct kvm_stats_header {
|
||||
__u32 flags;
|
||||
__u32 name_size;
|
||||
__u32 num_desc;
|
||||
__u32 id_offset;
|
||||
__u32 desc_offset;
|
||||
__u32 data_offset;
|
||||
};
|
||||
|
||||
#define KVM_STATS_TYPE_SHIFT 0
|
||||
#define KVM_STATS_TYPE_MASK (0xF << KVM_STATS_TYPE_SHIFT)
|
||||
#define KVM_STATS_TYPE_CUMULATIVE (0x0 << KVM_STATS_TYPE_SHIFT)
|
||||
#define KVM_STATS_TYPE_INSTANT (0x1 << KVM_STATS_TYPE_SHIFT)
|
||||
#define KVM_STATS_TYPE_PEAK (0x2 << KVM_STATS_TYPE_SHIFT)
|
||||
#define KVM_STATS_TYPE_MAX KVM_STATS_TYPE_PEAK
|
||||
|
||||
#define KVM_STATS_UNIT_SHIFT 4
|
||||
#define KVM_STATS_UNIT_MASK (0xF << KVM_STATS_UNIT_SHIFT)
|
||||
#define KVM_STATS_UNIT_NONE (0x0 << KVM_STATS_UNIT_SHIFT)
|
||||
#define KVM_STATS_UNIT_BYTES (0x1 << KVM_STATS_UNIT_SHIFT)
|
||||
#define KVM_STATS_UNIT_SECONDS (0x2 << KVM_STATS_UNIT_SHIFT)
|
||||
#define KVM_STATS_UNIT_CYCLES (0x3 << KVM_STATS_UNIT_SHIFT)
|
||||
#define KVM_STATS_UNIT_MAX KVM_STATS_UNIT_CYCLES
|
||||
|
||||
#define KVM_STATS_BASE_SHIFT 8
|
||||
#define KVM_STATS_BASE_MASK (0xF << KVM_STATS_BASE_SHIFT)
|
||||
#define KVM_STATS_BASE_POW10 (0x0 << KVM_STATS_BASE_SHIFT)
|
||||
#define KVM_STATS_BASE_POW2 (0x1 << KVM_STATS_BASE_SHIFT)
|
||||
#define KVM_STATS_BASE_MAX KVM_STATS_BASE_POW2
|
||||
|
||||
/**
|
||||
* struct kvm_stats_desc - Descriptor of a KVM statistics.
|
||||
* @flags: Annotations of the stats, like type, unit, etc.
|
||||
* @exponent: Used together with @flags to determine the unit.
|
||||
* @size: The number of data items for this stats.
|
||||
* Every data item is of type __u64.
|
||||
* @offset: The offset of the stats to the start of stat structure in
|
||||
* struture kvm or kvm_vcpu.
|
||||
* @unused: Unused field for future usage. Always 0 for now.
|
||||
* @name: The name string for the stats. Its size is indicated by the
|
||||
* &kvm_stats_header->name_size.
|
||||
*/
|
||||
struct kvm_stats_desc {
|
||||
__u32 flags;
|
||||
__s16 exponent;
|
||||
__u16 size;
|
||||
__u32 offset;
|
||||
__u32 unused;
|
||||
char name[];
|
||||
};
|
||||
|
||||
#define KVM_GET_STATS_FD _IO(KVMIO, 0xce)
|
||||
|
||||
#endif /* __LINUX_KVM_H */
|
||||
|
||||
@@ -29,6 +29,7 @@
|
||||
#define KVM_HC_CLOCK_PAIRING 9
|
||||
#define KVM_HC_SEND_IPI 10
|
||||
#define KVM_HC_SCHED_YIELD 11
|
||||
#define KVM_HC_MAP_GPA_RANGE 12
|
||||
|
||||
/*
|
||||
* hypercalls use architecture specific
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
|
||||
/*
|
||||
* lirc.h - linux infrared remote control header file
|
||||
* last modified 2010/07/13 by Jarod Wilson
|
||||
*/
|
||||
|
||||
#ifndef _LINUX_LIRC_H
|
||||
|
||||
@@ -97,5 +97,6 @@
|
||||
#define DEVMEM_MAGIC 0x454d444d /* "DMEM" */
|
||||
#define Z3FOLD_MAGIC 0x33
|
||||
#define PPC_CMM_MAGIC 0xc7571590
|
||||
#define SECRETMEM_MAGIC 0x5345434d /* "SECM" */
|
||||
|
||||
#endif /* __LINUX_MAGIC_H__ */
|
||||
|
||||
@@ -60,7 +60,6 @@ enum {
|
||||
* are never OR'ed into the mode in mempolicy API arguments.
|
||||
*/
|
||||
#define MPOL_F_SHARED (1 << 0) /* identify shared policies */
|
||||
#define MPOL_F_LOCAL (1 << 1) /* preferred local allocation */
|
||||
#define MPOL_F_MOF (1 << 3) /* this policy wants migrate on fault */
|
||||
#define MPOL_F_MORON (1 << 4) /* Migrate On protnone Reference On Node */
|
||||
|
||||
|
||||
@@ -120,6 +120,7 @@ enum fsconfig_command {
|
||||
#define MOUNT_ATTR_STRICTATIME 0x00000020 /* - Always perform atime updates */
|
||||
#define MOUNT_ATTR_NODIRATIME 0x00000080 /* Do not update directory access times */
|
||||
#define MOUNT_ATTR_IDMAP 0x00100000 /* Idmap mount to @userns_fd in struct mount_attr. */
|
||||
#define MOUNT_ATTR_NOSYMFOLLOW 0x00200000 /* Do not follow symlinks */
|
||||
|
||||
/*
|
||||
* mount_setattr()
|
||||
|
||||
@@ -105,6 +105,7 @@ struct mptcp_info {
|
||||
__u64 mptcpi_rcv_nxt;
|
||||
__u8 mptcpi_local_addr_used;
|
||||
__u8 mptcpi_local_addr_max;
|
||||
__u8 mptcpi_csum_enabled;
|
||||
};
|
||||
|
||||
/*
|
||||
|
||||
@@ -1,99 +0,0 @@
|
||||
/* SPDX-License-Identifier: GPL-1.0+ WITH Linux-syscall-note */
|
||||
/* r3964 linediscipline for linux
|
||||
*
|
||||
* -----------------------------------------------------------
|
||||
* Copyright by
|
||||
* Philips Automation Projects
|
||||
* Kassel (Germany)
|
||||
* -----------------------------------------------------------
|
||||
* This software may be used and distributed according to the terms of
|
||||
* the GNU General Public License, incorporated herein by reference.
|
||||
*
|
||||
* Author:
|
||||
* L. Haag
|
||||
*
|
||||
* $Log: r3964.h,v $
|
||||
* Revision 1.4 2005/12/21 19:54:24 Kurt Huwig <kurt huwig de>
|
||||
* Fixed HZ usage on 2.6 kernels
|
||||
* Removed unnecessary include
|
||||
*
|
||||
* Revision 1.3 2001/03/18 13:02:24 dwmw2
|
||||
* Fix timer usage, use spinlocks properly.
|
||||
*
|
||||
* Revision 1.2 2001/03/18 12:53:15 dwmw2
|
||||
* Merge changes in 2.4.2
|
||||
*
|
||||
* Revision 1.1.1.1 1998/10/13 16:43:14 dwmw2
|
||||
* This'll screw the version control
|
||||
*
|
||||
* Revision 1.6 1998/09/30 00:40:38 dwmw2
|
||||
* Updated to use kernel's N_R3964 if available
|
||||
*
|
||||
* Revision 1.4 1998/04/02 20:29:44 lhaag
|
||||
* select, blocking, ...
|
||||
*
|
||||
* Revision 1.3 1998/02/12 18:58:43 root
|
||||
* fixed some memory leaks
|
||||
* calculation of checksum characters
|
||||
*
|
||||
* Revision 1.2 1998/02/07 13:03:17 root
|
||||
* ioctl read_telegram
|
||||
*
|
||||
* Revision 1.1 1998/02/06 19:19:43 root
|
||||
* Initial revision
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef _UAPI__LINUX_N_R3964_H__
|
||||
#define _UAPI__LINUX_N_R3964_H__
|
||||
|
||||
/* line disciplines for r3964 protocol */
|
||||
|
||||
|
||||
/*
|
||||
* Ioctl-commands
|
||||
*/
|
||||
|
||||
#define R3964_ENABLE_SIGNALS 0x5301
|
||||
#define R3964_SETPRIORITY 0x5302
|
||||
#define R3964_USE_BCC 0x5303
|
||||
#define R3964_READ_TELEGRAM 0x5304
|
||||
|
||||
/* Options for R3964_SETPRIORITY */
|
||||
#define R3964_MASTER 0
|
||||
#define R3964_SLAVE 1
|
||||
|
||||
/* Options for R3964_ENABLE_SIGNALS */
|
||||
#define R3964_SIG_ACK 0x0001
|
||||
#define R3964_SIG_DATA 0x0002
|
||||
#define R3964_SIG_ALL 0x000f
|
||||
#define R3964_SIG_NONE 0x0000
|
||||
#define R3964_USE_SIGIO 0x1000
|
||||
|
||||
/*
|
||||
* r3964 operation states:
|
||||
*/
|
||||
|
||||
/* types for msg_id: */
|
||||
enum {R3964_MSG_ACK=1, R3964_MSG_DATA };
|
||||
|
||||
#define R3964_MAX_MSG_COUNT 32
|
||||
|
||||
/* error codes for client messages */
|
||||
#define R3964_OK 0 /* no error. */
|
||||
#define R3964_TX_FAIL -1 /* transmission error, block NOT sent */
|
||||
#define R3964_OVERFLOW -2 /* msg queue overflow */
|
||||
|
||||
/* the client gets this struct when calling read(fd,...): */
|
||||
struct r3964_client_message {
|
||||
int msg_id;
|
||||
int arg;
|
||||
int error_code;
|
||||
};
|
||||
|
||||
#define R3964_MTU 256
|
||||
|
||||
|
||||
|
||||
#endif /* _UAPI__LINUX_N_R3964_H__ */
|
||||
@@ -35,6 +35,7 @@ enum {
|
||||
NBD_ATTR_SOCKETS,
|
||||
NBD_ATTR_DEAD_CONN_TIMEOUT,
|
||||
NBD_ATTR_DEVICE_LIST,
|
||||
NBD_ATTR_BACKEND_IDENTIFIER,
|
||||
__NBD_ATTR_MAX,
|
||||
};
|
||||
#define NBD_ATTR_MAX (__NBD_ATTR_MAX - 1)
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
#include <linux/types.h>
|
||||
#include <linux/socket.h> /* for SO_TIMESTAMPING */
|
||||
|
||||
/* SO_TIMESTAMPING gets an integer bit field comprised of these values */
|
||||
/* SO_TIMESTAMPING flags */
|
||||
enum {
|
||||
SOF_TIMESTAMPING_TX_HARDWARE = (1<<0),
|
||||
SOF_TIMESTAMPING_TX_SOFTWARE = (1<<1),
|
||||
@@ -30,8 +30,9 @@ enum {
|
||||
SOF_TIMESTAMPING_OPT_STATS = (1<<12),
|
||||
SOF_TIMESTAMPING_OPT_PKTINFO = (1<<13),
|
||||
SOF_TIMESTAMPING_OPT_TX_SWHW = (1<<14),
|
||||
SOF_TIMESTAMPING_BIND_PHC = (1 << 15),
|
||||
|
||||
SOF_TIMESTAMPING_LAST = SOF_TIMESTAMPING_OPT_TX_SWHW,
|
||||
SOF_TIMESTAMPING_LAST = SOF_TIMESTAMPING_BIND_PHC,
|
||||
SOF_TIMESTAMPING_MASK = (SOF_TIMESTAMPING_LAST - 1) |
|
||||
SOF_TIMESTAMPING_LAST
|
||||
};
|
||||
@@ -46,6 +47,18 @@ enum {
|
||||
SOF_TIMESTAMPING_TX_SCHED | \
|
||||
SOF_TIMESTAMPING_TX_ACK)
|
||||
|
||||
/**
|
||||
* struct so_timestamping - SO_TIMESTAMPING parameter
|
||||
*
|
||||
* @flags: SO_TIMESTAMPING flags
|
||||
* @bind_phc: Index of PTP virtual clock bound to sock. This is available
|
||||
* if flag SOF_TIMESTAMPING_BIND_PHC is set.
|
||||
*/
|
||||
struct so_timestamping {
|
||||
int flags;
|
||||
int bind_phc;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct hwtstamp_config - %SIOCGHWTSTAMP and %SIOCSHWTSTAMP parameter
|
||||
*
|
||||
|
||||
@@ -813,11 +813,13 @@ enum nft_exthdr_flags {
|
||||
* @NFT_EXTHDR_OP_IPV6: match against ipv6 extension headers
|
||||
* @NFT_EXTHDR_OP_TCP: match against tcp options
|
||||
* @NFT_EXTHDR_OP_IPV4: match against ipv4 options
|
||||
* @NFT_EXTHDR_OP_SCTP: match against sctp chunks
|
||||
*/
|
||||
enum nft_exthdr_op {
|
||||
NFT_EXTHDR_OP_IPV6,
|
||||
NFT_EXTHDR_OP_TCPOPT,
|
||||
NFT_EXTHDR_OP_IPV4,
|
||||
NFT_EXTHDR_OP_SCTP,
|
||||
__NFT_EXTHDR_OP_MAX
|
||||
};
|
||||
#define NFT_EXTHDR_OP_MAX (__NFT_EXTHDR_OP_MAX - 1)
|
||||
@@ -1193,6 +1195,21 @@ enum nft_counter_attributes {
|
||||
};
|
||||
#define NFTA_COUNTER_MAX (__NFTA_COUNTER_MAX - 1)
|
||||
|
||||
/**
|
||||
* enum nft_last_attributes - nf_tables last expression netlink attributes
|
||||
*
|
||||
* @NFTA_LAST_SET: last update has been set, zero means never updated (NLA_U32)
|
||||
* @NFTA_LAST_MSECS: milliseconds since last update (NLA_U64)
|
||||
*/
|
||||
enum nft_last_attributes {
|
||||
NFTA_LAST_UNSPEC,
|
||||
NFTA_LAST_SET,
|
||||
NFTA_LAST_MSECS,
|
||||
NFTA_LAST_PAD,
|
||||
__NFTA_LAST_MAX
|
||||
};
|
||||
#define NFTA_LAST_MAX (__NFTA_LAST_MAX - 1)
|
||||
|
||||
/**
|
||||
* enum nft_log_attributes - nf_tables log expression netlink attributes
|
||||
*
|
||||
|
||||
@@ -60,7 +60,8 @@ struct nfgenmsg {
|
||||
#define NFNL_SUBSYS_CTHELPER 9
|
||||
#define NFNL_SUBSYS_NFTABLES 10
|
||||
#define NFNL_SUBSYS_NFT_COMPAT 11
|
||||
#define NFNL_SUBSYS_COUNT 12
|
||||
#define NFNL_SUBSYS_HOOK 12
|
||||
#define NFNL_SUBSYS_COUNT 13
|
||||
|
||||
/* Reserved control nfnetlink messages */
|
||||
#define NFNL_MSG_BATCH_BEGIN NLMSG_MIN_TYPE
|
||||
|
||||
64
include/uapi/linux/netfilter/nfnetlink_hook.h
Normal file
64
include/uapi/linux/netfilter/nfnetlink_hook.h
Normal file
@@ -0,0 +1,64 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
|
||||
#ifndef _NFNL_HOOK_H_
|
||||
#define _NFNL_HOOK_H_
|
||||
|
||||
enum nfnl_hook_msg_types {
|
||||
NFNL_MSG_HOOK_GET,
|
||||
NFNL_MSG_HOOK_MAX,
|
||||
};
|
||||
|
||||
/**
|
||||
* enum nfnl_hook_attributes - netfilter hook netlink attributes
|
||||
*
|
||||
* @NFNLA_HOOK_HOOKNUM: netfilter hook number (NLA_U32)
|
||||
* @NFNLA_HOOK_PRIORITY: netfilter hook priority (NLA_U32)
|
||||
* @NFNLA_HOOK_DEV: netdevice name (NLA_STRING)
|
||||
* @NFNLA_HOOK_FUNCTION_NAME: hook function name (NLA_STRING)
|
||||
* @NFNLA_HOOK_MODULE_NAME: kernel module that registered this hook (NLA_STRING)
|
||||
* @NFNLA_HOOK_CHAIN_INFO: basechain hook metadata (NLA_NESTED)
|
||||
*/
|
||||
enum nfnl_hook_attributes {
|
||||
NFNLA_HOOK_UNSPEC,
|
||||
NFNLA_HOOK_HOOKNUM,
|
||||
NFNLA_HOOK_PRIORITY,
|
||||
NFNLA_HOOK_DEV,
|
||||
NFNLA_HOOK_FUNCTION_NAME,
|
||||
NFNLA_HOOK_MODULE_NAME,
|
||||
NFNLA_HOOK_CHAIN_INFO,
|
||||
__NFNLA_HOOK_MAX
|
||||
};
|
||||
#define NFNLA_HOOK_MAX (__NFNLA_HOOK_MAX - 1)
|
||||
|
||||
/**
|
||||
* enum nfnl_hook_chain_info_attributes - chain description
|
||||
*
|
||||
* NFNLA_HOOK_INFO_DESC: nft chain and table name (enum nft_table_attributes) (NLA_NESTED)
|
||||
* NFNLA_HOOK_INFO_TYPE: chain type (enum nfnl_hook_chaintype) (NLA_U32)
|
||||
*/
|
||||
enum nfnl_hook_chain_info_attributes {
|
||||
NFNLA_HOOK_INFO_UNSPEC,
|
||||
NFNLA_HOOK_INFO_DESC,
|
||||
NFNLA_HOOK_INFO_TYPE,
|
||||
__NFNLA_HOOK_INFO_MAX,
|
||||
};
|
||||
#define NFNLA_HOOK_INFO_MAX (__NFNLA_HOOK_INFO_MAX - 1)
|
||||
|
||||
enum nfnl_hook_chain_desc_attributes {
|
||||
NFNLA_CHAIN_UNSPEC,
|
||||
NFNLA_CHAIN_TABLE,
|
||||
NFNLA_CHAIN_FAMILY,
|
||||
NFNLA_CHAIN_NAME,
|
||||
__NFNLA_CHAIN_MAX,
|
||||
};
|
||||
#define NFNLA_CHAIN_MAX (__NFNLA_CHAIN_MAX - 1)
|
||||
|
||||
/**
|
||||
* enum nfnl_hook_chaintype - chain type
|
||||
*
|
||||
* @NFNL_HOOK_TYPE_NFTABLES nf_tables base chain
|
||||
*/
|
||||
enum nfnl_hook_chaintype {
|
||||
NFNL_HOOK_TYPE_NFTABLES = 0x1,
|
||||
};
|
||||
|
||||
#endif /* _NFNL_HOOK_H */
|
||||
@@ -61,7 +61,7 @@ enum nfulnl_attr_type {
|
||||
NFULA_HWTYPE, /* hardware type */
|
||||
NFULA_HWHEADER, /* hardware header */
|
||||
NFULA_HWLEN, /* hardware header length */
|
||||
NFULA_CT, /* nf_conntrack_netlink.h */
|
||||
NFULA_CT, /* nfnetlink_conntrack.h */
|
||||
NFULA_CT_INFO, /* enum ip_conntrack_info */
|
||||
NFULA_VLAN, /* nested attribute: packet vlan info */
|
||||
NFULA_L2HDR, /* full L2 header */
|
||||
|
||||
@@ -51,11 +51,11 @@ enum nfqnl_attr_type {
|
||||
NFQA_IFINDEX_PHYSOUTDEV, /* __u32 ifindex */
|
||||
NFQA_HWADDR, /* nfqnl_msg_packet_hw */
|
||||
NFQA_PAYLOAD, /* opaque data payload */
|
||||
NFQA_CT, /* nf_conntrack_netlink.h */
|
||||
NFQA_CT, /* nfnetlink_conntrack.h */
|
||||
NFQA_CT_INFO, /* enum ip_conntrack_info */
|
||||
NFQA_CAP_LEN, /* __u32 length of captured packet */
|
||||
NFQA_SKB_INFO, /* __u32 skb meta information */
|
||||
NFQA_EXP, /* nf_conntrack_netlink.h */
|
||||
NFQA_EXP, /* nfnetlink_conntrack.h */
|
||||
NFQA_UID, /* __u32 sk uid */
|
||||
NFQA_GID, /* __u32 sk gid */
|
||||
NFQA_SECCTX, /* security context string */
|
||||
|
||||
@@ -91,9 +91,10 @@ struct nlmsghdr {
|
||||
#define NLMSG_HDRLEN ((int) NLMSG_ALIGN(sizeof(struct nlmsghdr)))
|
||||
#define NLMSG_LENGTH(len) ((len) + NLMSG_HDRLEN)
|
||||
#define NLMSG_SPACE(len) NLMSG_ALIGN(NLMSG_LENGTH(len))
|
||||
#define NLMSG_DATA(nlh) ((void*)(((char*)nlh) + NLMSG_LENGTH(0)))
|
||||
#define NLMSG_DATA(nlh) ((void *)(((char *)nlh) + NLMSG_HDRLEN))
|
||||
#define NLMSG_NEXT(nlh,len) ((len) -= NLMSG_ALIGN((nlh)->nlmsg_len), \
|
||||
(struct nlmsghdr*)(((char*)(nlh)) + NLMSG_ALIGN((nlh)->nlmsg_len)))
|
||||
(struct nlmsghdr *)(((char *)(nlh)) + \
|
||||
NLMSG_ALIGN((nlh)->nlmsg_len)))
|
||||
#define NLMSG_OK(nlh,len) ((len) >= (int)sizeof(struct nlmsghdr) && \
|
||||
(nlh)->nlmsg_len >= sizeof(struct nlmsghdr) && \
|
||||
(nlh)->nlmsg_len <= (len))
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
* Copyright 2008 Jouni Malinen <jouni.malinen@atheros.com>
|
||||
* Copyright 2008 Colin McCabe <colin@cozybit.com>
|
||||
* Copyright 2015-2017 Intel Deutschland GmbH
|
||||
* Copyright (C) 2018-2020 Intel Corporation
|
||||
* Copyright (C) 2018-2021 Intel Corporation
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
@@ -3654,6 +3654,8 @@ enum nl80211_mpath_info {
|
||||
* defined
|
||||
* @NL80211_BAND_IFTYPE_ATTR_HE_6GHZ_CAPA: HE 6GHz band capabilities (__le16),
|
||||
* given for all 6 GHz band channels
|
||||
* @NL80211_BAND_IFTYPE_ATTR_VENDOR_ELEMS: vendor element capabilities that are
|
||||
* advertised on this band/for this iftype (binary)
|
||||
* @__NL80211_BAND_IFTYPE_ATTR_AFTER_LAST: internal use
|
||||
*/
|
||||
enum nl80211_band_iftype_attr {
|
||||
@@ -3665,6 +3667,7 @@ enum nl80211_band_iftype_attr {
|
||||
NL80211_BAND_IFTYPE_ATTR_HE_CAP_MCS_SET,
|
||||
NL80211_BAND_IFTYPE_ATTR_HE_CAP_PPE,
|
||||
NL80211_BAND_IFTYPE_ATTR_HE_6GHZ_CAPA,
|
||||
NL80211_BAND_IFTYPE_ATTR_VENDOR_ELEMS,
|
||||
|
||||
/* keep last */
|
||||
__NL80211_BAND_IFTYPE_ATTR_AFTER_LAST,
|
||||
@@ -6912,6 +6915,9 @@ enum nl80211_peer_measurement_ftm_capa {
|
||||
* @NL80211_PMSR_FTM_REQ_ATTR_LMR_FEEDBACK: negotiate for LMR feedback. Only
|
||||
* valid if either %NL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED or
|
||||
* %NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED is set.
|
||||
* @NL80211_PMSR_FTM_REQ_ATTR_BSS_COLOR: optional. The BSS color of the
|
||||
* responder. Only valid if %NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED
|
||||
* or %NL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED is set.
|
||||
*
|
||||
* @NUM_NL80211_PMSR_FTM_REQ_ATTR: internal
|
||||
* @NL80211_PMSR_FTM_REQ_ATTR_MAX: highest attribute number
|
||||
@@ -6931,6 +6937,7 @@ enum nl80211_peer_measurement_ftm_req {
|
||||
NL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED,
|
||||
NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED,
|
||||
NL80211_PMSR_FTM_REQ_ATTR_LMR_FEEDBACK,
|
||||
NL80211_PMSR_FTM_REQ_ATTR_BSS_COLOR,
|
||||
|
||||
/* keep last */
|
||||
NUM_NL80211_PMSR_FTM_REQ_ATTR,
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
|
||||
/**
|
||||
/*
|
||||
* pcitest.h - PCI test uapi defines
|
||||
*
|
||||
* Copyright (C) 2017 Texas Instruments
|
||||
|
||||
@@ -259,4 +259,12 @@ struct prctl_mm_map {
|
||||
#define PR_PAC_SET_ENABLED_KEYS 60
|
||||
#define PR_PAC_GET_ENABLED_KEYS 61
|
||||
|
||||
/* Request the scheduler to share a core */
|
||||
#define PR_SCHED_CORE 62
|
||||
# define PR_SCHED_CORE_GET 0
|
||||
# define PR_SCHED_CORE_CREATE 1 /* create unique core_sched cookie */
|
||||
# define PR_SCHED_CORE_SHARE_TO 2 /* push core_sched cookie to pid */
|
||||
# define PR_SCHED_CORE_SHARE_FROM 3 /* pull core_sched cookie to pid */
|
||||
# define PR_SCHED_CORE_MAX 4
|
||||
|
||||
#endif /* _LINUX_PRCTL_H */
|
||||
|
||||
@@ -1,17 +0,0 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
|
||||
#ifndef __LINUX_RAW_H
|
||||
#define __LINUX_RAW_H
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
#define RAW_SETBIND _IO( 0xac, 0 )
|
||||
#define RAW_GETBIND _IO( 0xac, 1 )
|
||||
|
||||
struct raw_config_request
|
||||
{
|
||||
int raw_minor;
|
||||
__u64 block_major;
|
||||
__u64 block_minor;
|
||||
};
|
||||
|
||||
#endif /* __LINUX_RAW_H */
|
||||
@@ -141,6 +141,7 @@ typedef __s32 sctp_assoc_t;
|
||||
#define SCTP_EXPOSE_POTENTIALLY_FAILED_STATE 131
|
||||
#define SCTP_EXPOSE_PF_STATE SCTP_EXPOSE_POTENTIALLY_FAILED_STATE
|
||||
#define SCTP_REMOTE_UDP_ENCAPS_PORT 132
|
||||
#define SCTP_PLPMTUD_PROBE_INTERVAL 133
|
||||
|
||||
/* PR-SCTP policies */
|
||||
#define SCTP_PR_SCTP_NONE 0x0000
|
||||
@@ -1213,4 +1214,11 @@ enum sctp_sched_type {
|
||||
SCTP_SS_MAX = SCTP_SS_RR
|
||||
};
|
||||
|
||||
/* Probe Interval socket option */
|
||||
struct sctp_probeinterval {
|
||||
sctp_assoc_t spi_assoc_id;
|
||||
struct sockaddr_storage spi_address;
|
||||
__u32 spi_interval;
|
||||
};
|
||||
|
||||
#endif /* _UAPI_SCTP_H */
|
||||
|
||||
@@ -64,6 +64,8 @@ enum {
|
||||
SEG6_LOCAL_ACTION_END_AM = 14,
|
||||
/* custom BPF action */
|
||||
SEG6_LOCAL_ACTION_END_BPF = 15,
|
||||
/* decap and lookup of DA in v4 or v6 table */
|
||||
SEG6_LOCAL_ACTION_END_DT46 = 16,
|
||||
|
||||
__SEG6_LOCAL_ACTION_MAX,
|
||||
};
|
||||
|
||||
@@ -47,6 +47,8 @@ enum {
|
||||
SMC_NETLINK_GET_LGR_SMCD,
|
||||
SMC_NETLINK_GET_DEV_SMCD,
|
||||
SMC_NETLINK_GET_DEV_SMCR,
|
||||
SMC_NETLINK_GET_STATS,
|
||||
SMC_NETLINK_GET_FBACK_STATS,
|
||||
};
|
||||
|
||||
/* SMC_GENL_FAMILY top level attributes */
|
||||
@@ -58,6 +60,8 @@ enum {
|
||||
SMC_GEN_LGR_SMCD, /* nest */
|
||||
SMC_GEN_DEV_SMCD, /* nest */
|
||||
SMC_GEN_DEV_SMCR, /* nest */
|
||||
SMC_GEN_STATS, /* nest */
|
||||
SMC_GEN_FBACK_STATS, /* nest */
|
||||
__SMC_GEN_MAX,
|
||||
SMC_GEN_MAX = __SMC_GEN_MAX - 1
|
||||
};
|
||||
@@ -159,4 +163,83 @@ enum {
|
||||
SMC_NLA_DEV_MAX = __SMC_NLA_DEV_MAX - 1
|
||||
};
|
||||
|
||||
/* SMC_NLA_STATS_T_TX(RX)_RMB_SIZE nested attributes */
|
||||
/* SMC_NLA_STATS_TX(RX)PLOAD_SIZE nested attributes */
|
||||
enum {
|
||||
SMC_NLA_STATS_PLOAD_PAD,
|
||||
SMC_NLA_STATS_PLOAD_8K, /* u64 */
|
||||
SMC_NLA_STATS_PLOAD_16K, /* u64 */
|
||||
SMC_NLA_STATS_PLOAD_32K, /* u64 */
|
||||
SMC_NLA_STATS_PLOAD_64K, /* u64 */
|
||||
SMC_NLA_STATS_PLOAD_128K, /* u64 */
|
||||
SMC_NLA_STATS_PLOAD_256K, /* u64 */
|
||||
SMC_NLA_STATS_PLOAD_512K, /* u64 */
|
||||
SMC_NLA_STATS_PLOAD_1024K, /* u64 */
|
||||
SMC_NLA_STATS_PLOAD_G_1024K, /* u64 */
|
||||
__SMC_NLA_STATS_PLOAD_MAX,
|
||||
SMC_NLA_STATS_PLOAD_MAX = __SMC_NLA_STATS_PLOAD_MAX - 1
|
||||
};
|
||||
|
||||
/* SMC_NLA_STATS_T_TX(RX)_RMB_STATS nested attributes */
|
||||
enum {
|
||||
SMC_NLA_STATS_RMB_PAD,
|
||||
SMC_NLA_STATS_RMB_SIZE_SM_PEER_CNT, /* u64 */
|
||||
SMC_NLA_STATS_RMB_SIZE_SM_CNT, /* u64 */
|
||||
SMC_NLA_STATS_RMB_FULL_PEER_CNT, /* u64 */
|
||||
SMC_NLA_STATS_RMB_FULL_CNT, /* u64 */
|
||||
SMC_NLA_STATS_RMB_REUSE_CNT, /* u64 */
|
||||
SMC_NLA_STATS_RMB_ALLOC_CNT, /* u64 */
|
||||
SMC_NLA_STATS_RMB_DGRADE_CNT, /* u64 */
|
||||
__SMC_NLA_STATS_RMB_MAX,
|
||||
SMC_NLA_STATS_RMB_MAX = __SMC_NLA_STATS_RMB_MAX - 1
|
||||
};
|
||||
|
||||
/* SMC_NLA_STATS_SMCD_TECH and _SMCR_TECH nested attributes */
|
||||
enum {
|
||||
SMC_NLA_STATS_T_PAD,
|
||||
SMC_NLA_STATS_T_TX_RMB_SIZE, /* nest */
|
||||
SMC_NLA_STATS_T_RX_RMB_SIZE, /* nest */
|
||||
SMC_NLA_STATS_T_TXPLOAD_SIZE, /* nest */
|
||||
SMC_NLA_STATS_T_RXPLOAD_SIZE, /* nest */
|
||||
SMC_NLA_STATS_T_TX_RMB_STATS, /* nest */
|
||||
SMC_NLA_STATS_T_RX_RMB_STATS, /* nest */
|
||||
SMC_NLA_STATS_T_CLNT_V1_SUCC, /* u64 */
|
||||
SMC_NLA_STATS_T_CLNT_V2_SUCC, /* u64 */
|
||||
SMC_NLA_STATS_T_SRV_V1_SUCC, /* u64 */
|
||||
SMC_NLA_STATS_T_SRV_V2_SUCC, /* u64 */
|
||||
SMC_NLA_STATS_T_SENDPAGE_CNT, /* u64 */
|
||||
SMC_NLA_STATS_T_SPLICE_CNT, /* u64 */
|
||||
SMC_NLA_STATS_T_CORK_CNT, /* u64 */
|
||||
SMC_NLA_STATS_T_NDLY_CNT, /* u64 */
|
||||
SMC_NLA_STATS_T_URG_DATA_CNT, /* u64 */
|
||||
SMC_NLA_STATS_T_RX_BYTES, /* u64 */
|
||||
SMC_NLA_STATS_T_TX_BYTES, /* u64 */
|
||||
SMC_NLA_STATS_T_RX_CNT, /* u64 */
|
||||
SMC_NLA_STATS_T_TX_CNT, /* u64 */
|
||||
__SMC_NLA_STATS_T_MAX,
|
||||
SMC_NLA_STATS_T_MAX = __SMC_NLA_STATS_T_MAX - 1
|
||||
};
|
||||
|
||||
/* SMC_GEN_STATS attributes */
|
||||
enum {
|
||||
SMC_NLA_STATS_PAD,
|
||||
SMC_NLA_STATS_SMCD_TECH, /* nest */
|
||||
SMC_NLA_STATS_SMCR_TECH, /* nest */
|
||||
SMC_NLA_STATS_CLNT_HS_ERR_CNT, /* u64 */
|
||||
SMC_NLA_STATS_SRV_HS_ERR_CNT, /* u64 */
|
||||
__SMC_NLA_STATS_MAX,
|
||||
SMC_NLA_STATS_MAX = __SMC_NLA_STATS_MAX - 1
|
||||
};
|
||||
|
||||
/* SMC_GEN_FBACK_STATS attributes */
|
||||
enum {
|
||||
SMC_NLA_FBACK_STATS_PAD,
|
||||
SMC_NLA_FBACK_STATS_TYPE, /* u8 */
|
||||
SMC_NLA_FBACK_STATS_SRV_CNT, /* u64 */
|
||||
SMC_NLA_FBACK_STATS_CLNT_CNT, /* u64 */
|
||||
SMC_NLA_FBACK_STATS_RSN_CODE, /* u32 */
|
||||
SMC_NLA_FBACK_STATS_RSN_CNT, /* u16 */
|
||||
__SMC_NLA_FBACK_STATS_MAX,
|
||||
SMC_NLA_FBACK_STATS_MAX = __SMC_NLA_FBACK_STATS_MAX - 1
|
||||
};
|
||||
#endif /* _UAPI_LINUX_SMC_H */
|
||||
|
||||
@@ -290,6 +290,8 @@ enum
|
||||
LINUX_MIB_TCPDUPLICATEDATAREHASH, /* TCPDuplicateDataRehash */
|
||||
LINUX_MIB_TCPDSACKRECVSEGS, /* TCPDSACKRecvSegs */
|
||||
LINUX_MIB_TCPDSACKIGNOREDDUBIOUS, /* TCPDSACKIgnoredDubious */
|
||||
LINUX_MIB_TCPMIGRATEREQSUCCESS, /* TCPMigrateReqSuccess */
|
||||
LINUX_MIB_TCPMIGRATEREQFAILURE, /* TCPMigrateReqFailure */
|
||||
__LINUX_MIB_MAX
|
||||
};
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
* device. This device provides direct user-space access to the SSAM EC.
|
||||
* Intended for debugging and development.
|
||||
*
|
||||
* Copyright (C) 2020 Maximilian Luz <luzmaximilian@gmail.com>
|
||||
* Copyright (C) 2020-2021 Maximilian Luz <luzmaximilian@gmail.com>
|
||||
*/
|
||||
|
||||
#ifndef _UAPI_LINUX_SURFACE_AGGREGATOR_CDEV_H
|
||||
@@ -73,6 +73,75 @@ struct ssam_cdev_request {
|
||||
} response;
|
||||
} __attribute__((__packed__));
|
||||
|
||||
#define SSAM_CDEV_REQUEST _IOWR(0xA5, 1, struct ssam_cdev_request)
|
||||
/**
|
||||
* struct ssam_cdev_notifier_desc - Notifier descriptor.
|
||||
* @priority: Priority value determining the order in which notifier
|
||||
* callbacks will be called. A higher value means higher
|
||||
* priority, i.e. the associated callback will be executed
|
||||
* earlier than other (lower priority) callbacks.
|
||||
* @target_category: The event target category for which this notifier should
|
||||
* receive events.
|
||||
*
|
||||
* Specifies the notifier that should be registered or unregistered,
|
||||
* specifically with which priority and for which target category of events.
|
||||
*/
|
||||
struct ssam_cdev_notifier_desc {
|
||||
__s32 priority;
|
||||
__u8 target_category;
|
||||
} __attribute__((__packed__));
|
||||
|
||||
/**
|
||||
* struct ssam_cdev_event_desc - Event descriptor.
|
||||
* @reg: Registry via which the event will be enabled/disabled.
|
||||
* @reg.target_category: Target category for the event registry requests.
|
||||
* @reg.target_id: Target ID for the event registry requests.
|
||||
* @reg.cid_enable: Command ID for the event-enable request.
|
||||
* @reg.cid_disable: Command ID for the event-disable request.
|
||||
* @id: ID specifying the event.
|
||||
* @id.target_category: Target category of the event source.
|
||||
* @id.instance: Instance ID of the event source.
|
||||
* @flags: Flags used for enabling the event.
|
||||
*
|
||||
* Specifies which event should be enabled/disabled and how to do that.
|
||||
*/
|
||||
struct ssam_cdev_event_desc {
|
||||
struct {
|
||||
__u8 target_category;
|
||||
__u8 target_id;
|
||||
__u8 cid_enable;
|
||||
__u8 cid_disable;
|
||||
} reg;
|
||||
|
||||
struct {
|
||||
__u8 target_category;
|
||||
__u8 instance;
|
||||
} id;
|
||||
|
||||
__u8 flags;
|
||||
} __attribute__((__packed__));
|
||||
|
||||
/**
|
||||
* struct ssam_cdev_event - SSAM event sent by the EC.
|
||||
* @target_category: Target category of the event source. See &enum ssam_ssh_tc.
|
||||
* @target_id: Target ID of the event source.
|
||||
* @command_id: Command ID of the event.
|
||||
* @instance_id: Instance ID of the event source.
|
||||
* @length: Length of the event payload in bytes.
|
||||
* @data: Event payload data.
|
||||
*/
|
||||
struct ssam_cdev_event {
|
||||
__u8 target_category;
|
||||
__u8 target_id;
|
||||
__u8 command_id;
|
||||
__u8 instance_id;
|
||||
__u16 length;
|
||||
__u8 data[];
|
||||
} __attribute__((__packed__));
|
||||
|
||||
#define SSAM_CDEV_REQUEST _IOWR(0xA5, 1, struct ssam_cdev_request)
|
||||
#define SSAM_CDEV_NOTIF_REGISTER _IOW(0xA5, 2, struct ssam_cdev_notifier_desc)
|
||||
#define SSAM_CDEV_NOTIF_UNREGISTER _IOW(0xA5, 3, struct ssam_cdev_notifier_desc)
|
||||
#define SSAM_CDEV_EVENT_ENABLE _IOW(0xA5, 4, struct ssam_cdev_event_desc)
|
||||
#define SSAM_CDEV_EVENT_DISABLE _IOW(0xA5, 5, struct ssam_cdev_event_desc)
|
||||
|
||||
#endif /* _UAPI_LINUX_SURFACE_AGGREGATOR_CDEV_H */
|
||||
|
||||
@@ -31,7 +31,8 @@
|
||||
UFFD_FEATURE_MISSING_SHMEM | \
|
||||
UFFD_FEATURE_SIGBUS | \
|
||||
UFFD_FEATURE_THREAD_ID | \
|
||||
UFFD_FEATURE_MINOR_HUGETLBFS)
|
||||
UFFD_FEATURE_MINOR_HUGETLBFS | \
|
||||
UFFD_FEATURE_MINOR_SHMEM)
|
||||
#define UFFD_API_IOCTLS \
|
||||
((__u64)1 << _UFFDIO_REGISTER | \
|
||||
(__u64)1 << _UFFDIO_UNREGISTER | \
|
||||
@@ -185,6 +186,9 @@ struct uffdio_api {
|
||||
* UFFD_FEATURE_MINOR_HUGETLBFS indicates that minor faults
|
||||
* can be intercepted (via REGISTER_MODE_MINOR) for
|
||||
* hugetlbfs-backed pages.
|
||||
*
|
||||
* UFFD_FEATURE_MINOR_SHMEM indicates the same support as
|
||||
* UFFD_FEATURE_MINOR_HUGETLBFS, but for shmem-backed pages instead.
|
||||
*/
|
||||
#define UFFD_FEATURE_PAGEFAULT_FLAG_WP (1<<0)
|
||||
#define UFFD_FEATURE_EVENT_FORK (1<<1)
|
||||
@@ -196,6 +200,7 @@ struct uffdio_api {
|
||||
#define UFFD_FEATURE_SIGBUS (1<<7)
|
||||
#define UFFD_FEATURE_THREAD_ID (1<<8)
|
||||
#define UFFD_FEATURE_MINOR_HUGETLBFS (1<<9)
|
||||
#define UFFD_FEATURE_MINOR_SHMEM (1<<10)
|
||||
__u64 features;
|
||||
|
||||
__u64 ioctls;
|
||||
|
||||
@@ -1863,6 +1863,118 @@ struct v4l2_ctrl_vp8_frame {
|
||||
__u64 flags;
|
||||
};
|
||||
|
||||
/* Stateless MPEG-2 controls */
|
||||
|
||||
#define V4L2_MPEG2_SEQ_FLAG_PROGRESSIVE 0x01
|
||||
|
||||
#define V4L2_CID_STATELESS_MPEG2_SEQUENCE (V4L2_CID_CODEC_STATELESS_BASE+220)
|
||||
/**
|
||||
* struct v4l2_ctrl_mpeg2_sequence - MPEG-2 sequence header
|
||||
*
|
||||
* All the members on this structure match the sequence header and sequence
|
||||
* extension syntaxes as specified by the MPEG-2 specification.
|
||||
*
|
||||
* Fields horizontal_size, vertical_size and vbv_buffer_size are a
|
||||
* combination of respective _value and extension syntax elements,
|
||||
* as described in section 6.3.3 "Sequence header".
|
||||
*
|
||||
* @horizontal_size: combination of elements horizontal_size_value and
|
||||
* horizontal_size_extension.
|
||||
* @vertical_size: combination of elements vertical_size_value and
|
||||
* vertical_size_extension.
|
||||
* @vbv_buffer_size: combination of elements vbv_buffer_size_value and
|
||||
* vbv_buffer_size_extension.
|
||||
* @profile_and_level_indication: see MPEG-2 specification.
|
||||
* @chroma_format: see MPEG-2 specification.
|
||||
* @flags: see V4L2_MPEG2_SEQ_FLAG_{}.
|
||||
*/
|
||||
struct v4l2_ctrl_mpeg2_sequence {
|
||||
__u16 horizontal_size;
|
||||
__u16 vertical_size;
|
||||
__u32 vbv_buffer_size;
|
||||
__u16 profile_and_level_indication;
|
||||
__u8 chroma_format;
|
||||
__u8 flags;
|
||||
};
|
||||
|
||||
#define V4L2_MPEG2_PIC_CODING_TYPE_I 1
|
||||
#define V4L2_MPEG2_PIC_CODING_TYPE_P 2
|
||||
#define V4L2_MPEG2_PIC_CODING_TYPE_B 3
|
||||
#define V4L2_MPEG2_PIC_CODING_TYPE_D 4
|
||||
|
||||
#define V4L2_MPEG2_PIC_TOP_FIELD 0x1
|
||||
#define V4L2_MPEG2_PIC_BOTTOM_FIELD 0x2
|
||||
#define V4L2_MPEG2_PIC_FRAME 0x3
|
||||
|
||||
#define V4L2_MPEG2_PIC_FLAG_TOP_FIELD_FIRST 0x0001
|
||||
#define V4L2_MPEG2_PIC_FLAG_FRAME_PRED_DCT 0x0002
|
||||
#define V4L2_MPEG2_PIC_FLAG_CONCEALMENT_MV 0x0004
|
||||
#define V4L2_MPEG2_PIC_FLAG_Q_SCALE_TYPE 0x0008
|
||||
#define V4L2_MPEG2_PIC_FLAG_INTRA_VLC 0x0010
|
||||
#define V4L2_MPEG2_PIC_FLAG_ALT_SCAN 0x0020
|
||||
#define V4L2_MPEG2_PIC_FLAG_REPEAT_FIRST 0x0040
|
||||
#define V4L2_MPEG2_PIC_FLAG_PROGRESSIVE 0x0080
|
||||
|
||||
#define V4L2_CID_STATELESS_MPEG2_PICTURE (V4L2_CID_CODEC_STATELESS_BASE+221)
|
||||
/**
|
||||
* struct v4l2_ctrl_mpeg2_picture - MPEG-2 picture header
|
||||
*
|
||||
* All the members on this structure match the picture header and picture
|
||||
* coding extension syntaxes as specified by the MPEG-2 specification.
|
||||
*
|
||||
* @backward_ref_ts: timestamp of the V4L2 capture buffer to use as
|
||||
* reference for backward prediction.
|
||||
* @forward_ref_ts: timestamp of the V4L2 capture buffer to use as
|
||||
* reference for forward prediction. These timestamp refers to the
|
||||
* timestamp field in struct v4l2_buffer. Use v4l2_timeval_to_ns()
|
||||
* to convert the struct timeval to a __u64.
|
||||
* @flags: see V4L2_MPEG2_PIC_FLAG_{}.
|
||||
* @f_code: see MPEG-2 specification.
|
||||
* @picture_coding_type: see MPEG-2 specification.
|
||||
* @picture_structure: see V4L2_MPEG2_PIC_{}_FIELD.
|
||||
* @intra_dc_precision: see MPEG-2 specification.
|
||||
* @reserved: padding field. Should be zeroed by applications.
|
||||
*/
|
||||
struct v4l2_ctrl_mpeg2_picture {
|
||||
__u64 backward_ref_ts;
|
||||
__u64 forward_ref_ts;
|
||||
__u32 flags;
|
||||
__u8 f_code[2][2];
|
||||
__u8 picture_coding_type;
|
||||
__u8 picture_structure;
|
||||
__u8 intra_dc_precision;
|
||||
__u8 reserved[5];
|
||||
};
|
||||
|
||||
#define V4L2_CID_STATELESS_MPEG2_QUANTISATION (V4L2_CID_CODEC_STATELESS_BASE+222)
|
||||
/**
|
||||
* struct v4l2_ctrl_mpeg2_quantisation - MPEG-2 quantisation
|
||||
*
|
||||
* Quantisation matrices as specified by section 6.3.7
|
||||
* "Quant matrix extension".
|
||||
*
|
||||
* @intra_quantiser_matrix: The quantisation matrix coefficients
|
||||
* for intra-coded frames, in zigzag scanning order. It is relevant
|
||||
* for both luma and chroma components, although it can be superseded
|
||||
* by the chroma-specific matrix for non-4:2:0 YUV formats.
|
||||
* @non_intra_quantiser_matrix: The quantisation matrix coefficients
|
||||
* for non-intra-coded frames, in zigzag scanning order. It is relevant
|
||||
* for both luma and chroma components, although it can be superseded
|
||||
* by the chroma-specific matrix for non-4:2:0 YUV formats.
|
||||
* @chroma_intra_quantiser_matrix: The quantisation matrix coefficients
|
||||
* for the chominance component of intra-coded frames, in zigzag scanning
|
||||
* order. Only relevant for 4:2:2 and 4:4:4 YUV formats.
|
||||
* @chroma_non_intra_quantiser_matrix: The quantisation matrix coefficients
|
||||
* for the chrominance component of non-intra-coded frames, in zigzag scanning
|
||||
* order. Only relevant for 4:2:2 and 4:4:4 YUV formats.
|
||||
*/
|
||||
struct v4l2_ctrl_mpeg2_quantisation {
|
||||
__u8 intra_quantiser_matrix[64];
|
||||
__u8 non_intra_quantiser_matrix[64];
|
||||
__u8 chroma_intra_quantiser_matrix[64];
|
||||
__u8 chroma_non_intra_quantiser_matrix[64];
|
||||
};
|
||||
|
||||
#define V4L2_CID_COLORIMETRY_CLASS_BASE (V4L2_CTRL_CLASS_COLORIMETRY | 0x900)
|
||||
#define V4L2_CID_COLORIMETRY_CLASS (V4L2_CTRL_CLASS_COLORIMETRY | 1)
|
||||
|
||||
|
||||
@@ -1747,6 +1747,9 @@ struct v4l2_ext_control {
|
||||
struct v4l2_ctrl_h264_decode_params __user *p_h264_decode_params;
|
||||
struct v4l2_ctrl_fwht_params __user *p_fwht_params;
|
||||
struct v4l2_ctrl_vp8_frame __user *p_vp8_frame;
|
||||
struct v4l2_ctrl_mpeg2_sequence __user *p_mpeg2_sequence;
|
||||
struct v4l2_ctrl_mpeg2_picture __user *p_mpeg2_picture;
|
||||
struct v4l2_ctrl_mpeg2_quantisation __user *p_mpeg2_quantisation;
|
||||
void __user *ptr;
|
||||
};
|
||||
} __attribute__ ((packed));
|
||||
@@ -1807,6 +1810,10 @@ enum v4l2_ctrl_type {
|
||||
V4L2_CTRL_TYPE_FWHT_PARAMS = 0x0220,
|
||||
|
||||
V4L2_CTRL_TYPE_VP8_FRAME = 0x0240,
|
||||
|
||||
V4L2_CTRL_TYPE_MPEG2_QUANTISATION = 0x0250,
|
||||
V4L2_CTRL_TYPE_MPEG2_SEQUENCE = 0x0251,
|
||||
V4L2_CTRL_TYPE_MPEG2_PICTURE = 0x0252,
|
||||
};
|
||||
|
||||
/* Used in the VIDIOC_QUERYCTRL ioctl for querying controls */
|
||||
|
||||
@@ -57,4 +57,16 @@
|
||||
#define VIRTIO_ID_MAC80211_HWSIM 29 /* virtio mac80211-hwsim */
|
||||
#define VIRTIO_ID_BT 40 /* virtio bluetooth */
|
||||
|
||||
/*
|
||||
* Virtio Transitional IDs
|
||||
*/
|
||||
|
||||
#define VIRTIO_TRANS_ID_NET 1000 /* transitional virtio net */
|
||||
#define VIRTIO_TRANS_ID_BLOCK 1001 /* transitional virtio block */
|
||||
#define VIRTIO_TRANS_ID_BALLOON 1002 /* transitional virtio balloon */
|
||||
#define VIRTIO_TRANS_ID_CONSOLE 1003 /* transitional virtio console */
|
||||
#define VIRTIO_TRANS_ID_SCSI 1004 /* transitional virtio SCSI */
|
||||
#define VIRTIO_TRANS_ID_RNG 1005 /* transitional virtio rng */
|
||||
#define VIRTIO_TRANS_ID_9P 1009 /* transitional virtio 9p console */
|
||||
|
||||
#endif /* _LINUX_VIRTIO_IDS_H */
|
||||
|
||||
64
include/uapi/linux/virtio_pcidev.h
Normal file
64
include/uapi/linux/virtio_pcidev.h
Normal file
@@ -0,0 +1,64 @@
|
||||
/* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) */
|
||||
/*
|
||||
* Copyright (C) 2021 Intel Corporation
|
||||
* Author: Johannes Berg <johannes@sipsolutions.net>
|
||||
*/
|
||||
#ifndef _UAPI_LINUX_VIRTIO_PCIDEV_H
|
||||
#define _UAPI_LINUX_VIRTIO_PCIDEV_H
|
||||
#include <linux/types.h>
|
||||
|
||||
/**
|
||||
* enum virtio_pcidev_ops - virtual PCI device operations
|
||||
* @VIRTIO_PCIDEV_OP_CFG_READ: read config space, size is 1, 2, 4 or 8;
|
||||
* the @data field should be filled in by the device (in little endian).
|
||||
* @VIRTIO_PCIDEV_OP_CFG_WRITE: write config space, size is 1, 2, 4 or 8;
|
||||
* the @data field contains the data to write (in little endian).
|
||||
* @VIRTIO_PCIDEV_OP_BAR_READ: read BAR mem/pio, size can be variable;
|
||||
* the @data field should be filled in by the device (in little endian).
|
||||
* @VIRTIO_PCIDEV_OP_BAR_WRITE: write BAR mem/pio, size can be variable;
|
||||
* the @data field contains the data to write (in little endian).
|
||||
* @VIRTIO_PCIDEV_OP_MMIO_MEMSET: memset MMIO, size is variable but
|
||||
* the @data field only has one byte (unlike @VIRTIO_PCIDEV_OP_MMIO_WRITE)
|
||||
* @VIRTIO_PCIDEV_OP_INT: legacy INTx# pin interrupt, the addr field is 1-4 for
|
||||
* the number
|
||||
* @VIRTIO_PCIDEV_OP_MSI: MSI(-X) interrupt, this message basically transports
|
||||
* the 16- or 32-bit write that would otherwise be done into memory,
|
||||
* analogous to the write messages (@VIRTIO_PCIDEV_OP_MMIO_WRITE) above
|
||||
* @VIRTIO_PCIDEV_OP_PME: Dummy message whose content is ignored (and should be
|
||||
* all zeroes) to signal the PME# pin.
|
||||
*/
|
||||
enum virtio_pcidev_ops {
|
||||
VIRTIO_PCIDEV_OP_RESERVED = 0,
|
||||
VIRTIO_PCIDEV_OP_CFG_READ,
|
||||
VIRTIO_PCIDEV_OP_CFG_WRITE,
|
||||
VIRTIO_PCIDEV_OP_MMIO_READ,
|
||||
VIRTIO_PCIDEV_OP_MMIO_WRITE,
|
||||
VIRTIO_PCIDEV_OP_MMIO_MEMSET,
|
||||
VIRTIO_PCIDEV_OP_INT,
|
||||
VIRTIO_PCIDEV_OP_MSI,
|
||||
VIRTIO_PCIDEV_OP_PME,
|
||||
};
|
||||
|
||||
/**
|
||||
* struct virtio_pcidev_msg - virtio PCI device operation
|
||||
* @op: the operation to do
|
||||
* @bar: the bar (only with BAR read/write messages)
|
||||
* @reserved: reserved
|
||||
* @size: the size of the read/write (in bytes)
|
||||
* @addr: the address to read/write
|
||||
* @data: the data, normally @size long, but just one byte for
|
||||
* %VIRTIO_PCIDEV_OP_MMIO_MEMSET
|
||||
*
|
||||
* Note: the fields are all in native (CPU) endian, however, the
|
||||
* @data values will often be in little endian (see the ops above.)
|
||||
*/
|
||||
struct virtio_pcidev_msg {
|
||||
__u8 op;
|
||||
__u8 bar;
|
||||
__u16 reserved;
|
||||
__u32 size;
|
||||
__u64 addr;
|
||||
__u8 data[];
|
||||
};
|
||||
|
||||
#endif /* _UAPI_LINUX_VIRTIO_PCIDEV_H */
|
||||
@@ -38,6 +38,9 @@
|
||||
#include <linux/virtio_ids.h>
|
||||
#include <linux/virtio_config.h>
|
||||
|
||||
/* The feature bitmap for virtio vsock */
|
||||
#define VIRTIO_VSOCK_F_SEQPACKET 1 /* SOCK_SEQPACKET supported */
|
||||
|
||||
struct virtio_vsock_config {
|
||||
__le64 guest_cid;
|
||||
} __attribute__((packed));
|
||||
@@ -65,6 +68,7 @@ struct virtio_vsock_hdr {
|
||||
|
||||
enum virtio_vsock_type {
|
||||
VIRTIO_VSOCK_TYPE_STREAM = 1,
|
||||
VIRTIO_VSOCK_TYPE_SEQPACKET = 2,
|
||||
};
|
||||
|
||||
enum virtio_vsock_op {
|
||||
@@ -91,4 +95,9 @@ enum virtio_vsock_shutdown {
|
||||
VIRTIO_VSOCK_SHUTDOWN_SEND = 2,
|
||||
};
|
||||
|
||||
/* VIRTIO_VSOCK_OP_RW flags values */
|
||||
enum virtio_vsock_rw {
|
||||
VIRTIO_VSOCK_SEQ_EOR = 1,
|
||||
};
|
||||
|
||||
#endif /* _UAPI_LINUX_VIRTIO_VSOCK_H */
|
||||
|
||||
16
include/uapi/linux/wwan.h
Normal file
16
include/uapi/linux/wwan.h
Normal file
@@ -0,0 +1,16 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-only WITH Linux-syscall-note */
|
||||
/*
|
||||
* Copyright (C) 2021 Intel Corporation.
|
||||
*/
|
||||
#ifndef _UAPI_WWAN_H_
|
||||
#define _UAPI_WWAN_H_
|
||||
|
||||
enum {
|
||||
IFLA_WWAN_UNSPEC,
|
||||
IFLA_WWAN_LINK_ID, /* u32 */
|
||||
|
||||
__IFLA_WWAN_MAX
|
||||
};
|
||||
#define IFLA_WWAN_MAX (__IFLA_WWAN_MAX - 1)
|
||||
|
||||
#endif /* _UAPI_WWAN_H_ */
|
||||
Reference in New Issue
Block a user