diff options
243 files changed, 2998 insertions, 13683 deletions
diff --git a/modified/scsi/scsi.h b/modified/scsi/scsi.h index 77ad18d..04b4e1c 100644 --- a/modified/scsi/scsi.h +++ b/modified/scsi/scsi.h @@ -14,7 +14,6 @@ #include <scsi/scsi_common.h> #endif /* __KERNEL__ */ #include <scsi/scsi_proto.h> -#include <scsi/scsi_status.h> #ifdef __KERNEL__ struct scsi_cmnd; @@ -34,8 +33,34 @@ enum scsi_timeouts { * possible channels, (target) ids, or luns on a given shost. */ #define SCAN_WILD_CARD ~0 + +/** scsi_status_is_good - check the status return. + * + * @status: the status passed up from the driver (including host and + * driver components) + * + * This returns true for known good conditions that may be treated as + * command completed normally + */ +static inline int scsi_status_is_good(int status) +{ + /* + * FIXME: bit0 is listed as reserved in SCSI-2, but is + * significant in SCSI-3. For now, we follow the SCSI-2 + * behaviour and ignore reserved bits. + */ + status &= 0xfe; + return ((status == SAM_STAT_GOOD) || + (status == SAM_STAT_CONDITION_MET) || + /* Next two "intermediate" statuses are obsolete in SAM-4 */ + (status == SAM_STAT_INTERMEDIATE) || + (status == SAM_STAT_INTERMEDIATE_CONDITION_MET) || + /* FIXME: this is obsolete in SAM-3 */ + (status == SAM_STAT_COMMAND_TERMINATED)); +} #endif /* __KERNEL__ */ + /* * standard mode-select header prepended to all mode-select commands */ @@ -68,50 +93,111 @@ static inline int scsi_is_wlun(u64 lun) { return (lun & 0xff00) == SCSI_W_LUN_BASE; } - -/** - * scsi_status_is_check_condition - check the status return. - * - * @status: the status passed up from the driver (including host and - * driver components) - * - * This returns true if the status code is SAM_STAT_CHECK_CONDITION. - */ -static inline int scsi_status_is_check_condition(int status) -{ - if (status < 0) - return false; - status &= 0xfe; - return status == SAM_STAT_CHECK_CONDITION; -} #endif /* __KERNEL__ */ + /* - * Extended message codes. + * MESSAGE CODES */ +#define COMMAND_COMPLETE 0x00 +#define EXTENDED_MESSAGE 0x01 #define EXTENDED_MODIFY_DATA_POINTER 0x00 #define EXTENDED_SDTR 0x01 #define EXTENDED_EXTENDED_IDENTIFY 0x02 /* SCSI-I only */ #define EXTENDED_WDTR 0x03 #define EXTENDED_PPR 0x04 #define EXTENDED_MODIFY_BIDI_DATA_PTR 0x05 +#define SAVE_POINTERS 0x02 +#define RESTORE_POINTERS 0x03 +#define DISCONNECT 0x04 +#define INITIATOR_ERROR 0x05 +#define ABORT_TASK_SET 0x06 +#define MESSAGE_REJECT 0x07 +#define NOP 0x08 +#define MSG_PARITY_ERROR 0x09 +#define LINKED_CMD_COMPLETE 0x0a +#define LINKED_FLG_CMD_COMPLETE 0x0b +#define TARGET_RESET 0x0c +#define ABORT_TASK 0x0d +#define CLEAR_TASK_SET 0x0e +#define INITIATE_RECOVERY 0x0f /* SCSI-II only */ +#define RELEASE_RECOVERY 0x10 /* SCSI-II only */ +#define TERMINATE_IO_PROC 0x11 /* SCSI-II only */ +#define CLEAR_ACA 0x16 +#define LOGICAL_UNIT_RESET 0x17 +#define SIMPLE_QUEUE_TAG 0x20 +#define HEAD_OF_QUEUE_TAG 0x21 +#define ORDERED_QUEUE_TAG 0x22 +#define IGNORE_WIDE_RESIDUE 0x23 +#define ACA 0x24 +#define QAS_REQUEST 0x55 + +/* Old SCSI2 names, don't use in new code */ +#define BUS_DEVICE_RESET TARGET_RESET +#define ABORT ABORT_TASK_SET #ifdef __KERNEL__ /* + * Host byte codes + */ + +#define DID_OK 0x00 /* NO error */ +#define DID_NO_CONNECT 0x01 /* Couldn't connect before timeout period */ +#define DID_BUS_BUSY 0x02 /* BUS stayed busy through time out period */ +#define DID_TIME_OUT 0x03 /* TIMED OUT for other reason */ +#define DID_BAD_TARGET 0x04 /* BAD target. */ +#define DID_ABORT 0x05 /* Told to abort for some other reason */ +#define DID_PARITY 0x06 /* Parity error */ +#define DID_ERROR 0x07 /* Internal error */ +#define DID_RESET 0x08 /* Reset by somebody. */ +#define DID_BAD_INTR 0x09 /* Got an interrupt we weren't expecting. */ +#define DID_PASSTHROUGH 0x0a /* Force command past mid-layer */ +#define DID_SOFT_ERROR 0x0b /* The low level driver just wish a retry */ +#define DID_IMM_RETRY 0x0c /* Retry without decrementing retry count */ +#define DID_REQUEUE 0x0d /* Requeue command (no immediate retry) also + * without decrementing the retry count */ +#define DID_TRANSPORT_DISRUPTED 0x0e /* Transport error disrupted execution + * and the driver blocked the port to + * recover the link. Transport class will + * retry or fail IO */ +#define DID_TRANSPORT_FAILFAST 0x0f /* Transport class fastfailed the io */ +#define DID_TARGET_FAILURE 0x10 /* Permanent target failure, do not retry on + * other paths */ +#define DID_NEXUS_FAILURE 0x11 /* Permanent nexus failure, retry on other + * paths might yield different results */ +#define DID_ALLOC_FAILURE 0x12 /* Space allocation on the device failed */ +#define DID_MEDIUM_ERROR 0x13 /* Medium error */ +#define DID_TRANSPORT_MARGINAL 0x14 /* Transport marginal errors */ +#define DRIVER_OK 0x00 /* Driver status */ + +/* + * These indicate the error that occurred, and what is available. + */ + +#define DRIVER_BUSY 0x01 +#define DRIVER_SOFT 0x02 +#define DRIVER_MEDIA 0x03 +#define DRIVER_ERROR 0x04 + +#define DRIVER_INVALID 0x05 +#define DRIVER_TIMEOUT 0x06 +#define DRIVER_HARD 0x07 +#define DRIVER_SENSE 0x08 + +/* * Internal return values. */ -enum scsi_disposition { - NEEDS_RETRY = 0x2001, - SUCCESS = 0x2002, - FAILED = 0x2003, - QUEUED = 0x2004, - SOFT_ERROR = 0x2005, - ADD_TO_MLQUEUE = 0x2006, - TIMEOUT_ERROR = 0x2007, - SCSI_RETURN_NOT_HANDLED = 0x2008, - FAST_IO_FAIL = 0x2009, -}; + +#define NEEDS_RETRY 0x2001 +#define SUCCESS 0x2002 +#define FAILED 0x2003 +#define QUEUED 0x2004 +#define SOFT_ERROR 0x2005 +#define ADD_TO_MLQUEUE 0x2006 +#define TIMEOUT_ERROR 0x2007 +#define SCSI_RETURN_NOT_HANDLED 0x2008 +#define FAST_IO_FAIL 0x2009 /* * Midlevel queue return values. @@ -127,10 +213,14 @@ enum scsi_disposition { * These are set by: * * status byte = set from target device - * msg_byte (unused) + * msg_byte = return status from host adapter itself. * host_byte = set by low-level driver to indicate status. + * driver_byte = set by mid-level. */ +#define status_byte(result) (((result) >> 1) & 0x7f) +#define msg_byte(result) (((result) >> 8) & 0xff) #define host_byte(result) (((result) >> 16) & 0xff) +#define driver_byte(result) (((result) >> 24) & 0xff) #define sense_class(sense) (((sense) >> 4) & 0x7) #define sense_error(sense) ((sense) & 0xf) @@ -195,35 +285,4 @@ enum scsi_disposition { /* Used to obtain the PCI location of a device */ #define SCSI_IOCTL_GET_PCI 0x5387 -/** scsi_status_is_good - check the status return. - * - * @status: the status passed up from the driver (including host and - * driver components) - * - * This returns true for known good conditions that may be treated as - * command completed normally - */ -static inline bool scsi_status_is_good(int status) -{ - if (status < 0) - return false; - - if (host_byte(status) == DID_NO_CONNECT) - return false; - - /* - * FIXME: bit0 is listed as reserved in SCSI-2, but is - * significant in SCSI-3. For now, we follow the SCSI-2 - * behaviour and ignore reserved bits. - */ - status &= 0xfe; - return ((status == SAM_STAT_GOOD) || - (status == SAM_STAT_CONDITION_MET) || - /* Next two "intermediate" statuses are obsolete in SAM-4 */ - (status == SAM_STAT_INTERMEDIATE) || - (status == SAM_STAT_INTERMEDIATE_CONDITION_MET) || - /* FIXME: this is obsolete in SAM-3 */ - (status == SAM_STAT_COMMAND_TERMINATED)); -} - #endif /* _SCSI_SCSI_H */ diff --git a/modified/scsi/scsi_proto.h b/modified/scsi/scsi_proto.h index 3b9519b..a351801 100644 --- a/modified/scsi/scsi_proto.h +++ b/modified/scsi/scsi_proto.h @@ -191,22 +191,40 @@ struct scsi_varlen_cdb_hdr { * SCSI Architecture Model (SAM) Status codes. Taken from SAM-3 draft * T10/1561-D Revision 4 Draft dated 7th November 2002. */ -enum sam_status { - SAM_STAT_GOOD = 0x00, - SAM_STAT_CHECK_CONDITION = 0x02, - SAM_STAT_CONDITION_MET = 0x04, - SAM_STAT_BUSY = 0x08, - SAM_STAT_INTERMEDIATE = 0x10, - SAM_STAT_INTERMEDIATE_CONDITION_MET = 0x14, - SAM_STAT_RESERVATION_CONFLICT = 0x18, - SAM_STAT_COMMAND_TERMINATED = 0x22, /* obsolete in SAM-3 */ - SAM_STAT_TASK_SET_FULL = 0x28, - SAM_STAT_ACA_ACTIVE = 0x30, - SAM_STAT_TASK_ABORTED = 0x40, -}; +#define SAM_STAT_GOOD 0x00 +#define SAM_STAT_CHECK_CONDITION 0x02 +#define SAM_STAT_CONDITION_MET 0x04 +#define SAM_STAT_BUSY 0x08 +#define SAM_STAT_INTERMEDIATE 0x10 +#define SAM_STAT_INTERMEDIATE_CONDITION_MET 0x14 +#define SAM_STAT_RESERVATION_CONFLICT 0x18 +#define SAM_STAT_COMMAND_TERMINATED 0x22 /* obsolete in SAM-3 */ +#define SAM_STAT_TASK_SET_FULL 0x28 +#define SAM_STAT_ACA_ACTIVE 0x30 +#define SAM_STAT_TASK_ABORTED 0x40 #endif /* __KERNEL__ */ -#define STATUS_MASK 0xfe +/* + * Status codes. These are deprecated as they are shifted 1 bit right + * from those found in the SCSI standards. This causes confusion for + * applications that are ported to several OSes. Prefer SAM Status codes + * above. + */ + +#define GOOD 0x00 +#define CHECK_CONDITION 0x01 +#define CONDITION_GOOD 0x02 +#define BUSY 0x04 +#define INTERMEDIATE_GOOD 0x08 +#define INTERMEDIATE_C_GOOD 0x0a +#define RESERVATION_CONFLICT 0x0c +#define COMMAND_TERMINATED 0x11 +#define QUEUE_FULL 0x14 +#define ACA_ACTIVE 0x18 +#define TASK_ABORTED 0x20 + +#define STATUS_MASK 0xfe + /* * SENSE KEYS */ @@ -327,16 +345,4 @@ enum zbc_zone_cond { ZBC_ZONE_COND_OFFLINE = 0xf, }; -/* Version descriptor values for INQUIRY */ -enum scsi_version_descriptor { - SCSI_VERSION_DESCRIPTOR_FCP4 = 0x0a40, - SCSI_VERSION_DESCRIPTOR_ISCSI = 0x0960, - SCSI_VERSION_DESCRIPTOR_SAM5 = 0x00a0, - SCSI_VERSION_DESCRIPTOR_SAS3 = 0x0c60, - SCSI_VERSION_DESCRIPTOR_SBC3 = 0x04c0, - SCSI_VERSION_DESCRIPTOR_SBP3 = 0x0980, - SCSI_VERSION_DESCRIPTOR_SPC4 = 0x0460, - SCSI_VERSION_DESCRIPTOR_SRP = 0x0940 -}; - #endif /* _SCSI_PROTO_H_ */ diff --git a/modified/scsi/scsi_status.h b/modified/scsi/scsi_status.h deleted file mode 100644 index d916e31..0000000 --- a/modified/scsi/scsi_status.h +++ /dev/null @@ -1,76 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0 */ - -#ifndef _SCSI_SCSI_STATUS_H -#define _SCSI_SCSI_STATUS_H - -#include <linux/types.h> -#include <scsi/scsi_proto.h> - -#ifdef __KERNEL__ -/* Message codes. */ -enum scsi_msg_byte { - COMMAND_COMPLETE = 0x00, - EXTENDED_MESSAGE = 0x01, - SAVE_POINTERS = 0x02, - RESTORE_POINTERS = 0x03, - DISCONNECT = 0x04, - INITIATOR_ERROR = 0x05, - ABORT_TASK_SET = 0x06, - MESSAGE_REJECT = 0x07, - NOP = 0x08, - MSG_PARITY_ERROR = 0x09, - LINKED_CMD_COMPLETE = 0x0a, - LINKED_FLG_CMD_COMPLETE = 0x0b, - TARGET_RESET = 0x0c, - ABORT_TASK = 0x0d, - CLEAR_TASK_SET = 0x0e, - INITIATE_RECOVERY = 0x0f, /* SCSI-II only */ - RELEASE_RECOVERY = 0x10, /* SCSI-II only */ - TERMINATE_IO_PROC = 0x11, /* SCSI-II only */ - CLEAR_ACA = 0x16, - LOGICAL_UNIT_RESET = 0x17, - SIMPLE_QUEUE_TAG = 0x20, - HEAD_OF_QUEUE_TAG = 0x21, - ORDERED_QUEUE_TAG = 0x22, - IGNORE_WIDE_RESIDUE = 0x23, - ACA = 0x24, - QAS_REQUEST = 0x55, - - /* Old SCSI2 names, don't use in new code */ - BUS_DEVICE_RESET = TARGET_RESET, - ABORT = ABORT_TASK_SET, -}; - -/* Host byte codes. */ -enum scsi_host_status { - DID_OK = 0x00, /* NO error */ - DID_NO_CONNECT = 0x01, /* Couldn't connect before timeout period */ - DID_BUS_BUSY = 0x02, /* BUS stayed busy through time out period */ - DID_TIME_OUT = 0x03, /* TIMED OUT for other reason */ - DID_BAD_TARGET = 0x04, /* BAD target. */ - DID_ABORT = 0x05, /* Told to abort for some other reason */ - DID_PARITY = 0x06, /* Parity error */ - DID_ERROR = 0x07, /* Internal error */ - DID_RESET = 0x08, /* Reset by somebody. */ - DID_BAD_INTR = 0x09, /* Got an interrupt we weren't expecting. */ - DID_PASSTHROUGH = 0x0a, /* Force command past mid-layer */ - DID_SOFT_ERROR = 0x0b, /* The low level driver just wish a retry */ - DID_IMM_RETRY = 0x0c, /* Retry without decrementing retry count */ - DID_REQUEUE = 0x0d, /* Requeue command (no immediate retry) also - * without decrementing the retry count */ - DID_TRANSPORT_DISRUPTED = 0x0e, /* Transport error disrupted execution - * and the driver blocked the port to - * recover the link. Transport class will - * retry or fail IO */ - DID_TRANSPORT_FAILFAST = 0x0f, /* Transport class fastfailed the io */ - DID_TARGET_FAILURE = 0x10, /* Permanent target failure, do not retry on - * other paths */ - DID_NEXUS_FAILURE = 0x11, /* Permanent nexus failure, retry on other - * paths might yield different results */ - DID_ALLOC_FAILURE = 0x12, /* Space allocation on the device failed */ - DID_MEDIUM_ERROR = 0x13, /* Medium error */ - DID_TRANSPORT_MARGINAL = 0x14, /* Transport marginal errors */ -}; -#endif /* __KERNEL__ */ - -#endif /* _SCSI_SCSI_STATUS_H */ diff --git a/original/scsi/scsi.h b/original/scsi/scsi.h index 3e46859..e75cca2 100644 --- a/original/scsi/scsi.h +++ b/original/scsi/scsi.h @@ -11,7 +11,6 @@ #include <linux/kernel.h> #include <scsi/scsi_common.h> #include <scsi/scsi_proto.h> -#include <scsi/scsi_status.h> struct scsi_cmnd; @@ -31,6 +30,32 @@ enum scsi_timeouts { */ #define SCAN_WILD_CARD ~0 +/** scsi_status_is_good - check the status return. + * + * @status: the status passed up from the driver (including host and + * driver components) + * + * This returns true for known good conditions that may be treated as + * command completed normally + */ +static inline int scsi_status_is_good(int status) +{ + /* + * FIXME: bit0 is listed as reserved in SCSI-2, but is + * significant in SCSI-3. For now, we follow the SCSI-2 + * behaviour and ignore reserved bits. + */ + status &= 0xfe; + return ((status == SAM_STAT_GOOD) || + (status == SAM_STAT_CONDITION_MET) || + /* Next two "intermediate" statuses are obsolete in SAM-4 */ + (status == SAM_STAT_INTERMEDIATE) || + (status == SAM_STAT_INTERMEDIATE_CONDITION_MET) || + /* FIXME: this is obsolete in SAM-3 */ + (status == SAM_STAT_COMMAND_TERMINATED)); +} + + /* * standard mode-select header prepended to all mode-select commands */ @@ -63,46 +88,108 @@ static inline int scsi_is_wlun(u64 lun) return (lun & 0xff00) == SCSI_W_LUN_BASE; } -/** - * scsi_status_is_check_condition - check the status return. - * - * @status: the status passed up from the driver (including host and - * driver components) - * - * This returns true if the status code is SAM_STAT_CHECK_CONDITION. - */ -static inline int scsi_status_is_check_condition(int status) -{ - if (status < 0) - return false; - status &= 0xfe; - return status == SAM_STAT_CHECK_CONDITION; -} /* - * Extended message codes. + * MESSAGE CODES */ + +#define COMMAND_COMPLETE 0x00 +#define EXTENDED_MESSAGE 0x01 #define EXTENDED_MODIFY_DATA_POINTER 0x00 #define EXTENDED_SDTR 0x01 #define EXTENDED_EXTENDED_IDENTIFY 0x02 /* SCSI-I only */ #define EXTENDED_WDTR 0x03 #define EXTENDED_PPR 0x04 #define EXTENDED_MODIFY_BIDI_DATA_PTR 0x05 +#define SAVE_POINTERS 0x02 +#define RESTORE_POINTERS 0x03 +#define DISCONNECT 0x04 +#define INITIATOR_ERROR 0x05 +#define ABORT_TASK_SET 0x06 +#define MESSAGE_REJECT 0x07 +#define NOP 0x08 +#define MSG_PARITY_ERROR 0x09 +#define LINKED_CMD_COMPLETE 0x0a +#define LINKED_FLG_CMD_COMPLETE 0x0b +#define TARGET_RESET 0x0c +#define ABORT_TASK 0x0d +#define CLEAR_TASK_SET 0x0e +#define INITIATE_RECOVERY 0x0f /* SCSI-II only */ +#define RELEASE_RECOVERY 0x10 /* SCSI-II only */ +#define TERMINATE_IO_PROC 0x11 /* SCSI-II only */ +#define CLEAR_ACA 0x16 +#define LOGICAL_UNIT_RESET 0x17 +#define SIMPLE_QUEUE_TAG 0x20 +#define HEAD_OF_QUEUE_TAG 0x21 +#define ORDERED_QUEUE_TAG 0x22 +#define IGNORE_WIDE_RESIDUE 0x23 +#define ACA 0x24 +#define QAS_REQUEST 0x55 + +/* Old SCSI2 names, don't use in new code */ +#define BUS_DEVICE_RESET TARGET_RESET +#define ABORT ABORT_TASK_SET + +/* + * Host byte codes + */ + +#define DID_OK 0x00 /* NO error */ +#define DID_NO_CONNECT 0x01 /* Couldn't connect before timeout period */ +#define DID_BUS_BUSY 0x02 /* BUS stayed busy through time out period */ +#define DID_TIME_OUT 0x03 /* TIMED OUT for other reason */ +#define DID_BAD_TARGET 0x04 /* BAD target. */ +#define DID_ABORT 0x05 /* Told to abort for some other reason */ +#define DID_PARITY 0x06 /* Parity error */ +#define DID_ERROR 0x07 /* Internal error */ +#define DID_RESET 0x08 /* Reset by somebody. */ +#define DID_BAD_INTR 0x09 /* Got an interrupt we weren't expecting. */ +#define DID_PASSTHROUGH 0x0a /* Force command past mid-layer */ +#define DID_SOFT_ERROR 0x0b /* The low level driver just wish a retry */ +#define DID_IMM_RETRY 0x0c /* Retry without decrementing retry count */ +#define DID_REQUEUE 0x0d /* Requeue command (no immediate retry) also + * without decrementing the retry count */ +#define DID_TRANSPORT_DISRUPTED 0x0e /* Transport error disrupted execution + * and the driver blocked the port to + * recover the link. Transport class will + * retry or fail IO */ +#define DID_TRANSPORT_FAILFAST 0x0f /* Transport class fastfailed the io */ +#define DID_TARGET_FAILURE 0x10 /* Permanent target failure, do not retry on + * other paths */ +#define DID_NEXUS_FAILURE 0x11 /* Permanent nexus failure, retry on other + * paths might yield different results */ +#define DID_ALLOC_FAILURE 0x12 /* Space allocation on the device failed */ +#define DID_MEDIUM_ERROR 0x13 /* Medium error */ +#define DID_TRANSPORT_MARGINAL 0x14 /* Transport marginal errors */ +#define DRIVER_OK 0x00 /* Driver status */ + +/* + * These indicate the error that occurred, and what is available. + */ + +#define DRIVER_BUSY 0x01 +#define DRIVER_SOFT 0x02 +#define DRIVER_MEDIA 0x03 +#define DRIVER_ERROR 0x04 + +#define DRIVER_INVALID 0x05 +#define DRIVER_TIMEOUT 0x06 +#define DRIVER_HARD 0x07 +#define DRIVER_SENSE 0x08 /* * Internal return values. */ -enum scsi_disposition { - NEEDS_RETRY = 0x2001, - SUCCESS = 0x2002, - FAILED = 0x2003, - QUEUED = 0x2004, - SOFT_ERROR = 0x2005, - ADD_TO_MLQUEUE = 0x2006, - TIMEOUT_ERROR = 0x2007, - SCSI_RETURN_NOT_HANDLED = 0x2008, - FAST_IO_FAIL = 0x2009, -}; + +#define NEEDS_RETRY 0x2001 +#define SUCCESS 0x2002 +#define FAILED 0x2003 +#define QUEUED 0x2004 +#define SOFT_ERROR 0x2005 +#define ADD_TO_MLQUEUE 0x2006 +#define TIMEOUT_ERROR 0x2007 +#define SCSI_RETURN_NOT_HANDLED 0x2008 +#define FAST_IO_FAIL 0x2009 /* * Midlevel queue return values. @@ -118,10 +205,14 @@ enum scsi_disposition { * These are set by: * * status byte = set from target device - * msg_byte (unused) + * msg_byte = return status from host adapter itself. * host_byte = set by low-level driver to indicate status. + * driver_byte = set by mid-level. */ +#define status_byte(result) (((result) >> 1) & 0x7f) +#define msg_byte(result) (((result) >> 8) & 0xff) #define host_byte(result) (((result) >> 16) & 0xff) +#define driver_byte(result) (((result) >> 24) & 0xff) #define sense_class(sense) (((sense) >> 4) & 0x7) #define sense_error(sense) ((sense) & 0xf) @@ -185,35 +276,4 @@ enum scsi_disposition { /* Used to obtain the PCI location of a device */ #define SCSI_IOCTL_GET_PCI 0x5387 -/** scsi_status_is_good - check the status return. - * - * @status: the status passed up from the driver (including host and - * driver components) - * - * This returns true for known good conditions that may be treated as - * command completed normally - */ -static inline bool scsi_status_is_good(int status) -{ - if (status < 0) - return false; - - if (host_byte(status) == DID_NO_CONNECT) - return false; - - /* - * FIXME: bit0 is listed as reserved in SCSI-2, but is - * significant in SCSI-3. For now, we follow the SCSI-2 - * behaviour and ignore reserved bits. - */ - status &= 0xfe; - return ((status == SAM_STAT_GOOD) || - (status == SAM_STAT_CONDITION_MET) || - /* Next two "intermediate" statuses are obsolete in SAM-4 */ - (status == SAM_STAT_INTERMEDIATE) || - (status == SAM_STAT_INTERMEDIATE_CONDITION_MET) || - /* FIXME: this is obsolete in SAM-3 */ - (status == SAM_STAT_COMMAND_TERMINATED)); -} - #endif /* _SCSI_SCSI_H */ diff --git a/original/scsi/scsi_ioctl.h b/original/scsi/scsi_ioctl.h index beac64e..b465799 100644 --- a/original/scsi/scsi_ioctl.h +++ b/original/scsi/scsi_ioctl.h @@ -18,9 +18,7 @@ #ifdef __KERNEL__ -struct gendisk; struct scsi_device; -struct sg_io_hdr; /* * Structures used for scsi_ioctl et al. @@ -45,11 +43,8 @@ typedef struct scsi_fctargaddress { int scsi_ioctl_block_when_processing_errors(struct scsi_device *sdev, int cmd, bool ndelay); -int scsi_ioctl(struct scsi_device *sdev, fmode_t mode, int cmd, - void __user *arg); -int get_sg_io_hdr(struct sg_io_hdr *hdr, const void __user *argp); -int put_sg_io_hdr(const struct sg_io_hdr *hdr, void __user *argp); -bool scsi_cmd_allowed(unsigned char *cmd, fmode_t mode); +extern int scsi_ioctl(struct scsi_device *, int, void __user *); +extern int scsi_compat_ioctl(struct scsi_device *sdev, int cmd, void __user *arg); #endif /* __KERNEL__ */ #endif /* _SCSI_IOCTL_H */ diff --git a/original/scsi/scsi_proto.h b/original/scsi/scsi_proto.h index f017843..c368601 100644 --- a/original/scsi/scsi_proto.h +++ b/original/scsi/scsi_proto.h @@ -190,21 +190,39 @@ struct scsi_varlen_cdb_hdr { * SCSI Architecture Model (SAM) Status codes. Taken from SAM-3 draft * T10/1561-D Revision 4 Draft dated 7th November 2002. */ -enum sam_status { - SAM_STAT_GOOD = 0x00, - SAM_STAT_CHECK_CONDITION = 0x02, - SAM_STAT_CONDITION_MET = 0x04, - SAM_STAT_BUSY = 0x08, - SAM_STAT_INTERMEDIATE = 0x10, - SAM_STAT_INTERMEDIATE_CONDITION_MET = 0x14, - SAM_STAT_RESERVATION_CONFLICT = 0x18, - SAM_STAT_COMMAND_TERMINATED = 0x22, /* obsolete in SAM-3 */ - SAM_STAT_TASK_SET_FULL = 0x28, - SAM_STAT_ACA_ACTIVE = 0x30, - SAM_STAT_TASK_ABORTED = 0x40, -}; +#define SAM_STAT_GOOD 0x00 +#define SAM_STAT_CHECK_CONDITION 0x02 +#define SAM_STAT_CONDITION_MET 0x04 +#define SAM_STAT_BUSY 0x08 +#define SAM_STAT_INTERMEDIATE 0x10 +#define SAM_STAT_INTERMEDIATE_CONDITION_MET 0x14 +#define SAM_STAT_RESERVATION_CONFLICT 0x18 +#define SAM_STAT_COMMAND_TERMINATED 0x22 /* obsolete in SAM-3 */ +#define SAM_STAT_TASK_SET_FULL 0x28 +#define SAM_STAT_ACA_ACTIVE 0x30 +#define SAM_STAT_TASK_ABORTED 0x40 + +/* + * Status codes. These are deprecated as they are shifted 1 bit right + * from those found in the SCSI standards. This causes confusion for + * applications that are ported to several OSes. Prefer SAM Status codes + * above. + */ + +#define GOOD 0x00 +#define CHECK_CONDITION 0x01 +#define CONDITION_GOOD 0x02 +#define BUSY 0x04 +#define INTERMEDIATE_GOOD 0x08 +#define INTERMEDIATE_C_GOOD 0x0a +#define RESERVATION_CONFLICT 0x0c +#define COMMAND_TERMINATED 0x11 +#define QUEUE_FULL 0x14 +#define ACA_ACTIVE 0x18 +#define TASK_ABORTED 0x20 + +#define STATUS_MASK 0xfe -#define STATUS_MASK 0xfe /* * SENSE KEYS */ @@ -323,16 +341,4 @@ enum zbc_zone_cond { ZBC_ZONE_COND_OFFLINE = 0xf, }; -/* Version descriptor values for INQUIRY */ -enum scsi_version_descriptor { - SCSI_VERSION_DESCRIPTOR_FCP4 = 0x0a40, - SCSI_VERSION_DESCRIPTOR_ISCSI = 0x0960, - SCSI_VERSION_DESCRIPTOR_SAM5 = 0x00a0, - SCSI_VERSION_DESCRIPTOR_SAS3 = 0x0c60, - SCSI_VERSION_DESCRIPTOR_SBC3 = 0x04c0, - SCSI_VERSION_DESCRIPTOR_SBP3 = 0x0980, - SCSI_VERSION_DESCRIPTOR_SPC4 = 0x0460, - SCSI_VERSION_DESCRIPTOR_SRP = 0x0940 -}; - #endif /* _SCSI_PROTO_H_ */ diff --git a/original/scsi/scsi_status.h b/original/scsi/scsi_status.h deleted file mode 100644 index 31d30ce..0000000 --- a/original/scsi/scsi_status.h +++ /dev/null @@ -1,74 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0 */ - -#ifndef _SCSI_SCSI_STATUS_H -#define _SCSI_SCSI_STATUS_H - -#include <linux/types.h> -#include <scsi/scsi_proto.h> - -/* Message codes. */ -enum scsi_msg_byte { - COMMAND_COMPLETE = 0x00, - EXTENDED_MESSAGE = 0x01, - SAVE_POINTERS = 0x02, - RESTORE_POINTERS = 0x03, - DISCONNECT = 0x04, - INITIATOR_ERROR = 0x05, - ABORT_TASK_SET = 0x06, - MESSAGE_REJECT = 0x07, - NOP = 0x08, - MSG_PARITY_ERROR = 0x09, - LINKED_CMD_COMPLETE = 0x0a, - LINKED_FLG_CMD_COMPLETE = 0x0b, - TARGET_RESET = 0x0c, - ABORT_TASK = 0x0d, - CLEAR_TASK_SET = 0x0e, - INITIATE_RECOVERY = 0x0f, /* SCSI-II only */ - RELEASE_RECOVERY = 0x10, /* SCSI-II only */ - TERMINATE_IO_PROC = 0x11, /* SCSI-II only */ - CLEAR_ACA = 0x16, - LOGICAL_UNIT_RESET = 0x17, - SIMPLE_QUEUE_TAG = 0x20, - HEAD_OF_QUEUE_TAG = 0x21, - ORDERED_QUEUE_TAG = 0x22, - IGNORE_WIDE_RESIDUE = 0x23, - ACA = 0x24, - QAS_REQUEST = 0x55, - - /* Old SCSI2 names, don't use in new code */ - BUS_DEVICE_RESET = TARGET_RESET, - ABORT = ABORT_TASK_SET, -}; - -/* Host byte codes. */ -enum scsi_host_status { - DID_OK = 0x00, /* NO error */ - DID_NO_CONNECT = 0x01, /* Couldn't connect before timeout period */ - DID_BUS_BUSY = 0x02, /* BUS stayed busy through time out period */ - DID_TIME_OUT = 0x03, /* TIMED OUT for other reason */ - DID_BAD_TARGET = 0x04, /* BAD target. */ - DID_ABORT = 0x05, /* Told to abort for some other reason */ - DID_PARITY = 0x06, /* Parity error */ - DID_ERROR = 0x07, /* Internal error */ - DID_RESET = 0x08, /* Reset by somebody. */ - DID_BAD_INTR = 0x09, /* Got an interrupt we weren't expecting. */ - DID_PASSTHROUGH = 0x0a, /* Force command past mid-layer */ - DID_SOFT_ERROR = 0x0b, /* The low level driver just wish a retry */ - DID_IMM_RETRY = 0x0c, /* Retry without decrementing retry count */ - DID_REQUEUE = 0x0d, /* Requeue command (no immediate retry) also - * without decrementing the retry count */ - DID_TRANSPORT_DISRUPTED = 0x0e, /* Transport error disrupted execution - * and the driver blocked the port to - * recover the link. Transport class will - * retry or fail IO */ - DID_TRANSPORT_FAILFAST = 0x0f, /* Transport class fastfailed the io */ - DID_TARGET_FAILURE = 0x10, /* Permanent target failure, do not retry on - * other paths */ - DID_NEXUS_FAILURE = 0x11, /* Permanent nexus failure, retry on other - * paths might yield different results */ - DID_ALLOC_FAILURE = 0x12, /* Space allocation on the device failed */ - DID_MEDIUM_ERROR = 0x13, /* Medium error */ - DID_TRANSPORT_MARGINAL = 0x14, /* Transport marginal errors */ -}; - -#endif /* _SCSI_SCSI_STATUS_H */ diff --git a/original/scsi/sg.h b/original/scsi/sg.h index 068e35d..7327e12 100644 --- a/original/scsi/sg.h +++ b/original/scsi/sg.h @@ -29,6 +29,10 @@ * For utility and test programs see: http://sg.danny.cz/sg/sg3_utils.html */ +#ifdef __KERNEL__ +extern int sg_big_buff; /* for sysctl */ +#endif + typedef struct sg_iovec /* same structure as used by readv() Linux system */ { /* call. It defines one scatter-gather element. */ @@ -127,39 +131,6 @@ struct compat_sg_io_hdr { #define SG_INFO_DIRECT_IO 0x2 /* direct IO requested and performed */ #define SG_INFO_MIXED_IO 0x4 /* part direct, part indirect IO */ -/* - * Obsolete DRIVER_SENSE driver byte - * - * Originally the SCSI midlayer would set the DRIVER_SENSE driver byte when - * a sense code was generated and a sense buffer was allocated. - * However, as nowadays every scsi command has a sense code allocated this - * distinction became moot as one could check the sense buffer directly. - * Consequently this byte is not set anymore from the midlayer, but SG will - * keep setting this byte to be compatible with previous releases. - */ -#define DRIVER_SENSE 0x08 -/* Obsolete driver_byte() declaration */ -#define driver_byte(result) (((result) >> 24) & 0xff) - -/* - * Original linux SCSI Status codes. They are shifted 1 bit right - * from those found in the SCSI standards. - */ - -#define GOOD 0x00 -#define CHECK_CONDITION 0x01 -#define CONDITION_GOOD 0x02 -#define BUSY 0x04 -#define INTERMEDIATE_GOOD 0x08 -#define INTERMEDIATE_C_GOOD 0x0a -#define RESERVATION_CONFLICT 0x0c -#define COMMAND_TERMINATED 0x11 -#define QUEUE_FULL 0x14 -#define ACA_ACTIVE 0x18 -#define TASK_ABORTED 0x20 - -/* Obsolete status_byte() declaration */ -#define status_byte(result) (((result) >> 1) & 0x7f) typedef struct sg_scsi_id { /* used by SG_GET_SCSI_ID ioctl() */ int host_no; /* as in "scsi<n>" where 'n' is one of 0, 1, 2 etc */ @@ -174,7 +145,7 @@ typedef struct sg_scsi_id { /* used by SG_GET_SCSI_ID ioctl() */ typedef struct sg_req_info { /* used by SG_GET_REQUEST_TABLE ioctl() */ char req_state; /* 0 -> not used, 1 -> written, 2 -> ready to read */ - char orphan; /* 0 -> normal request, 1 -> from interrupted SG_IO */ + char orphan; /* 0 -> normal request, 1 -> from interruped SG_IO */ char sg_io_owned; /* 0 -> complete with read(), 1 -> owned by SG_IO */ char problem; /* 0 -> no problem detected, 1 -> error to report */ int pack_id; /* pack_id associated with request */ diff --git a/original/uapi/asm-arm/asm/hwcap.h b/original/uapi/asm-arm/asm/hwcap.h index 990199d..b5971df 100644 --- a/original/uapi/asm-arm/asm/hwcap.h +++ b/original/uapi/asm-arm/asm/hwcap.h @@ -15,7 +15,7 @@ #define HWCAP_EDSP (1 << 7) #define HWCAP_JAVA (1 << 8) #define HWCAP_IWMMXT (1 << 9) -#define HWCAP_CRUNCH (1 << 10) /* Obsolete */ +#define HWCAP_CRUNCH (1 << 10) #define HWCAP_THUMBEE (1 << 11) #define HWCAP_NEON (1 << 12) #define HWCAP_VFPv3 (1 << 13) diff --git a/original/uapi/asm-arm/asm/ptrace.h b/original/uapi/asm-arm/asm/ptrace.h index 8896c23..e61c65b 100644 --- a/original/uapi/asm-arm/asm/ptrace.h +++ b/original/uapi/asm-arm/asm/ptrace.h @@ -26,8 +26,8 @@ #define PTRACE_GET_THREAD_AREA 22 #define PTRACE_SET_SYSCALL 23 /* PTRACE_SYSCALL is 24 */ -#define PTRACE_GETCRUNCHREGS 25 /* obsolete */ -#define PTRACE_SETCRUNCHREGS 26 /* obsolete */ +#define PTRACE_GETCRUNCHREGS 25 +#define PTRACE_SETCRUNCHREGS 26 #define PTRACE_GETVFPREGS 27 #define PTRACE_SETVFPREGS 28 #define PTRACE_GETHBPREGS 29 diff --git a/original/uapi/asm-arm/asm/setup.h b/original/uapi/asm-arm/asm/setup.h index 25ceda6..345bf0a 100644 --- a/original/uapi/asm-arm/asm/setup.h +++ b/original/uapi/asm-arm/asm/setup.h @@ -17,7 +17,7 @@ #include <linux/types.h> -#define COMMAND_LINE_SIZE 1024 +#define COMMAND_LINE_SIZE 2048 /* The list ends with an ATAG_NONE node. */ #define ATAG_NONE 0x00000000 diff --git a/original/uapi/asm-arm/asm/unistd-common.h b/original/uapi/asm-arm/asm/unistd-common.h new file mode 100644 index 0000000..e38b11c --- /dev/null +++ b/original/uapi/asm-arm/asm/unistd-common.h @@ -0,0 +1,401 @@ +#ifndef _UAPI_ASM_ARM_UNISTD_COMMON_H +#define _UAPI_ASM_ARM_UNISTD_COMMON_H 1 + +#define __NR_restart_syscall (__NR_SYSCALL_BASE + 0) +#define __NR_exit (__NR_SYSCALL_BASE + 1) +#define __NR_fork (__NR_SYSCALL_BASE + 2) +#define __NR_read (__NR_SYSCALL_BASE + 3) +#define __NR_write (__NR_SYSCALL_BASE + 4) +#define __NR_open (__NR_SYSCALL_BASE + 5) +#define __NR_close (__NR_SYSCALL_BASE + 6) +#define __NR_creat (__NR_SYSCALL_BASE + 8) +#define __NR_link (__NR_SYSCALL_BASE + 9) +#define __NR_unlink (__NR_SYSCALL_BASE + 10) +#define __NR_execve (__NR_SYSCALL_BASE + 11) +#define __NR_chdir (__NR_SYSCALL_BASE + 12) +#define __NR_mknod (__NR_SYSCALL_BASE + 14) +#define __NR_chmod (__NR_SYSCALL_BASE + 15) +#define __NR_lchown (__NR_SYSCALL_BASE + 16) +#define __NR_lseek (__NR_SYSCALL_BASE + 19) +#define __NR_getpid (__NR_SYSCALL_BASE + 20) +#define __NR_mount (__NR_SYSCALL_BASE + 21) +#define __NR_setuid (__NR_SYSCALL_BASE + 23) +#define __NR_getuid (__NR_SYSCALL_BASE + 24) +#define __NR_ptrace (__NR_SYSCALL_BASE + 26) +#define __NR_pause (__NR_SYSCALL_BASE + 29) +#define __NR_access (__NR_SYSCALL_BASE + 33) +#define __NR_nice (__NR_SYSCALL_BASE + 34) +#define __NR_sync (__NR_SYSCALL_BASE + 36) +#define __NR_kill (__NR_SYSCALL_BASE + 37) +#define __NR_rename (__NR_SYSCALL_BASE + 38) +#define __NR_mkdir (__NR_SYSCALL_BASE + 39) +#define __NR_rmdir (__NR_SYSCALL_BASE + 40) +#define __NR_dup (__NR_SYSCALL_BASE + 41) +#define __NR_pipe (__NR_SYSCALL_BASE + 42) +#define __NR_times (__NR_SYSCALL_BASE + 43) +#define __NR_brk (__NR_SYSCALL_BASE + 45) +#define __NR_setgid (__NR_SYSCALL_BASE + 46) +#define __NR_getgid (__NR_SYSCALL_BASE + 47) +#define __NR_geteuid (__NR_SYSCALL_BASE + 49) +#define __NR_getegid (__NR_SYSCALL_BASE + 50) +#define __NR_acct (__NR_SYSCALL_BASE + 51) +#define __NR_umount2 (__NR_SYSCALL_BASE + 52) +#define __NR_ioctl (__NR_SYSCALL_BASE + 54) +#define __NR_fcntl (__NR_SYSCALL_BASE + 55) +#define __NR_setpgid (__NR_SYSCALL_BASE + 57) +#define __NR_umask (__NR_SYSCALL_BASE + 60) +#define __NR_chroot (__NR_SYSCALL_BASE + 61) +#define __NR_ustat (__NR_SYSCALL_BASE + 62) +#define __NR_dup2 (__NR_SYSCALL_BASE + 63) +#define __NR_getppid (__NR_SYSCALL_BASE + 64) +#define __NR_getpgrp (__NR_SYSCALL_BASE + 65) +#define __NR_setsid (__NR_SYSCALL_BASE + 66) +#define __NR_sigaction (__NR_SYSCALL_BASE + 67) +#define __NR_setreuid (__NR_SYSCALL_BASE + 70) +#define __NR_setregid (__NR_SYSCALL_BASE + 71) +#define __NR_sigsuspend (__NR_SYSCALL_BASE + 72) +#define __NR_sigpending (__NR_SYSCALL_BASE + 73) +#define __NR_sethostname (__NR_SYSCALL_BASE + 74) +#define __NR_setrlimit (__NR_SYSCALL_BASE + 75) +#define __NR_getrusage (__NR_SYSCALL_BASE + 77) +#define __NR_gettimeofday (__NR_SYSCALL_BASE + 78) +#define __NR_settimeofday (__NR_SYSCALL_BASE + 79) +#define __NR_getgroups (__NR_SYSCALL_BASE + 80) +#define __NR_setgroups (__NR_SYSCALL_BASE + 81) +#define __NR_symlink (__NR_SYSCALL_BASE + 83) +#define __NR_readlink (__NR_SYSCALL_BASE + 85) +#define __NR_uselib (__NR_SYSCALL_BASE + 86) +#define __NR_swapon (__NR_SYSCALL_BASE + 87) +#define __NR_reboot (__NR_SYSCALL_BASE + 88) +#define __NR_munmap (__NR_SYSCALL_BASE + 91) +#define __NR_truncate (__NR_SYSCALL_BASE + 92) +#define __NR_ftruncate (__NR_SYSCALL_BASE + 93) +#define __NR_fchmod (__NR_SYSCALL_BASE + 94) +#define __NR_fchown (__NR_SYSCALL_BASE + 95) +#define __NR_getpriority (__NR_SYSCALL_BASE + 96) +#define __NR_setpriority (__NR_SYSCALL_BASE + 97) +#define __NR_statfs (__NR_SYSCALL_BASE + 99) +#define __NR_fstatfs (__NR_SYSCALL_BASE + 100) +#define __NR_syslog (__NR_SYSCALL_BASE + 103) +#define __NR_setitimer (__NR_SYSCALL_BASE + 104) +#define __NR_getitimer (__NR_SYSCALL_BASE + 105) +#define __NR_stat (__NR_SYSCALL_BASE + 106) +#define __NR_lstat (__NR_SYSCALL_BASE + 107) +#define __NR_fstat (__NR_SYSCALL_BASE + 108) +#define __NR_vhangup (__NR_SYSCALL_BASE + 111) +#define __NR_wait4 (__NR_SYSCALL_BASE + 114) +#define __NR_swapoff (__NR_SYSCALL_BASE + 115) +#define __NR_sysinfo (__NR_SYSCALL_BASE + 116) +#define __NR_fsync (__NR_SYSCALL_BASE + 118) +#define __NR_sigreturn (__NR_SYSCALL_BASE + 119) +#define __NR_clone (__NR_SYSCALL_BASE + 120) +#define __NR_setdomainname (__NR_SYSCALL_BASE + 121) +#define __NR_uname (__NR_SYSCALL_BASE + 122) +#define __NR_adjtimex (__NR_SYSCALL_BASE + 124) +#define __NR_mprotect (__NR_SYSCALL_BASE + 125) +#define __NR_sigprocmask (__NR_SYSCALL_BASE + 126) +#define __NR_init_module (__NR_SYSCALL_BASE + 128) +#define __NR_delete_module (__NR_SYSCALL_BASE + 129) +#define __NR_quotactl (__NR_SYSCALL_BASE + 131) +#define __NR_getpgid (__NR_SYSCALL_BASE + 132) +#define __NR_fchdir (__NR_SYSCALL_BASE + 133) +#define __NR_bdflush (__NR_SYSCALL_BASE + 134) +#define __NR_sysfs (__NR_SYSCALL_BASE + 135) +#define __NR_personality (__NR_SYSCALL_BASE + 136) +#define __NR_setfsuid (__NR_SYSCALL_BASE + 138) +#define __NR_setfsgid (__NR_SYSCALL_BASE + 139) +#define __NR__llseek (__NR_SYSCALL_BASE + 140) +#define __NR_getdents (__NR_SYSCALL_BASE + 141) +#define __NR__newselect (__NR_SYSCALL_BASE + 142) +#define __NR_flock (__NR_SYSCALL_BASE + 143) +#define __NR_msync (__NR_SYSCALL_BASE + 144) +#define __NR_readv (__NR_SYSCALL_BASE + 145) +#define __NR_writev (__NR_SYSCALL_BASE + 146) +#define __NR_getsid (__NR_SYSCALL_BASE + 147) +#define __NR_fdatasync (__NR_SYSCALL_BASE + 148) +#define __NR__sysctl (__NR_SYSCALL_BASE + 149) +#define __NR_mlock (__NR_SYSCALL_BASE + 150) +#define __NR_munlock (__NR_SYSCALL_BASE + 151) +#define __NR_mlockall (__NR_SYSCALL_BASE + 152) +#define __NR_munlockall (__NR_SYSCALL_BASE + 153) +#define __NR_sched_setparam (__NR_SYSCALL_BASE + 154) +#define __NR_sched_getparam (__NR_SYSCALL_BASE + 155) +#define __NR_sched_setscheduler (__NR_SYSCALL_BASE + 156) +#define __NR_sched_getscheduler (__NR_SYSCALL_BASE + 157) +#define __NR_sched_yield (__NR_SYSCALL_BASE + 158) +#define __NR_sched_get_priority_max (__NR_SYSCALL_BASE + 159) +#define __NR_sched_get_priority_min (__NR_SYSCALL_BASE + 160) +#define __NR_sched_rr_get_interval (__NR_SYSCALL_BASE + 161) +#define __NR_nanosleep (__NR_SYSCALL_BASE + 162) +#define __NR_mremap (__NR_SYSCALL_BASE + 163) +#define __NR_setresuid (__NR_SYSCALL_BASE + 164) +#define __NR_getresuid (__NR_SYSCALL_BASE + 165) +#define __NR_poll (__NR_SYSCALL_BASE + 168) +#define __NR_nfsservctl (__NR_SYSCALL_BASE + 169) +#define __NR_setresgid (__NR_SYSCALL_BASE + 170) +#define __NR_getresgid (__NR_SYSCALL_BASE + 171) +#define __NR_prctl (__NR_SYSCALL_BASE + 172) +#define __NR_rt_sigreturn (__NR_SYSCALL_BASE + 173) +#define __NR_rt_sigaction (__NR_SYSCALL_BASE + 174) +#define __NR_rt_sigprocmask (__NR_SYSCALL_BASE + 175) +#define __NR_rt_sigpending (__NR_SYSCALL_BASE + 176) +#define __NR_rt_sigtimedwait (__NR_SYSCALL_BASE + 177) +#define __NR_rt_sigqueueinfo (__NR_SYSCALL_BASE + 178) +#define __NR_rt_sigsuspend (__NR_SYSCALL_BASE + 179) +#define __NR_pread64 (__NR_SYSCALL_BASE + 180) +#define __NR_pwrite64 (__NR_SYSCALL_BASE + 181) +#define __NR_chown (__NR_SYSCALL_BASE + 182) +#define __NR_getcwd (__NR_SYSCALL_BASE + 183) +#define __NR_capget (__NR_SYSCALL_BASE + 184) +#define __NR_capset (__NR_SYSCALL_BASE + 185) +#define __NR_sigaltstack (__NR_SYSCALL_BASE + 186) +#define __NR_sendfile (__NR_SYSCALL_BASE + 187) +#define __NR_vfork (__NR_SYSCALL_BASE + 190) +#define __NR_ugetrlimit (__NR_SYSCALL_BASE + 191) +#define __NR_mmap2 (__NR_SYSCALL_BASE + 192) +#define __NR_truncate64 (__NR_SYSCALL_BASE + 193) +#define __NR_ftruncate64 (__NR_SYSCALL_BASE + 194) +#define __NR_stat64 (__NR_SYSCALL_BASE + 195) +#define __NR_lstat64 (__NR_SYSCALL_BASE + 196) +#define __NR_fstat64 (__NR_SYSCALL_BASE + 197) +#define __NR_lchown32 (__NR_SYSCALL_BASE + 198) +#define __NR_getuid32 (__NR_SYSCALL_BASE + 199) +#define __NR_getgid32 (__NR_SYSCALL_BASE + 200) +#define __NR_geteuid32 (__NR_SYSCALL_BASE + 201) +#define __NR_getegid32 (__NR_SYSCALL_BASE + 202) +#define __NR_setreuid32 (__NR_SYSCALL_BASE + 203) +#define __NR_setregid32 (__NR_SYSCALL_BASE + 204) +#define __NR_getgroups32 (__NR_SYSCALL_BASE + 205) +#define __NR_setgroups32 (__NR_SYSCALL_BASE + 206) +#define __NR_fchown32 (__NR_SYSCALL_BASE + 207) +#define __NR_setresuid32 (__NR_SYSCALL_BASE + 208) +#define __NR_getresuid32 (__NR_SYSCALL_BASE + 209) +#define __NR_setresgid32 (__NR_SYSCALL_BASE + 210) +#define __NR_getresgid32 (__NR_SYSCALL_BASE + 211) +#define __NR_chown32 (__NR_SYSCALL_BASE + 212) +#define __NR_setuid32 (__NR_SYSCALL_BASE + 213) +#define __NR_setgid32 (__NR_SYSCALL_BASE + 214) +#define __NR_setfsuid32 (__NR_SYSCALL_BASE + 215) +#define __NR_setfsgid32 (__NR_SYSCALL_BASE + 216) +#define __NR_getdents64 (__NR_SYSCALL_BASE + 217) +#define __NR_pivot_root (__NR_SYSCALL_BASE + 218) +#define __NR_mincore (__NR_SYSCALL_BASE + 219) +#define __NR_madvise (__NR_SYSCALL_BASE + 220) +#define __NR_fcntl64 (__NR_SYSCALL_BASE + 221) +#define __NR_gettid (__NR_SYSCALL_BASE + 224) +#define __NR_readahead (__NR_SYSCALL_BASE + 225) +#define __NR_setxattr (__NR_SYSCALL_BASE + 226) +#define __NR_lsetxattr (__NR_SYSCALL_BASE + 227) +#define __NR_fsetxattr (__NR_SYSCALL_BASE + 228) +#define __NR_getxattr (__NR_SYSCALL_BASE + 229) +#define __NR_lgetxattr (__NR_SYSCALL_BASE + 230) +#define __NR_fgetxattr (__NR_SYSCALL_BASE + 231) +#define __NR_listxattr (__NR_SYSCALL_BASE + 232) +#define __NR_llistxattr (__NR_SYSCALL_BASE + 233) +#define __NR_flistxattr (__NR_SYSCALL_BASE + 234) +#define __NR_removexattr (__NR_SYSCALL_BASE + 235) +#define __NR_lremovexattr (__NR_SYSCALL_BASE + 236) +#define __NR_fremovexattr (__NR_SYSCALL_BASE + 237) +#define __NR_tkill (__NR_SYSCALL_BASE + 238) +#define __NR_sendfile64 (__NR_SYSCALL_BASE + 239) +#define __NR_futex (__NR_SYSCALL_BASE + 240) +#define __NR_sched_setaffinity (__NR_SYSCALL_BASE + 241) +#define __NR_sched_getaffinity (__NR_SYSCALL_BASE + 242) +#define __NR_io_setup (__NR_SYSCALL_BASE + 243) +#define __NR_io_destroy (__NR_SYSCALL_BASE + 244) +#define __NR_io_getevents (__NR_SYSCALL_BASE + 245) +#define __NR_io_submit (__NR_SYSCALL_BASE + 246) +#define __NR_io_cancel (__NR_SYSCALL_BASE + 247) +#define __NR_exit_group (__NR_SYSCALL_BASE + 248) +#define __NR_lookup_dcookie (__NR_SYSCALL_BASE + 249) +#define __NR_epoll_create (__NR_SYSCALL_BASE + 250) +#define __NR_epoll_ctl (__NR_SYSCALL_BASE + 251) +#define __NR_epoll_wait (__NR_SYSCALL_BASE + 252) +#define __NR_remap_file_pages (__NR_SYSCALL_BASE + 253) +#define __NR_set_tid_address (__NR_SYSCALL_BASE + 256) +#define __NR_timer_create (__NR_SYSCALL_BASE + 257) +#define __NR_timer_settime (__NR_SYSCALL_BASE + 258) +#define __NR_timer_gettime (__NR_SYSCALL_BASE + 259) +#define __NR_timer_getoverrun (__NR_SYSCALL_BASE + 260) +#define __NR_timer_delete (__NR_SYSCALL_BASE + 261) +#define __NR_clock_settime (__NR_SYSCALL_BASE + 262) +#define __NR_clock_gettime (__NR_SYSCALL_BASE + 263) +#define __NR_clock_getres (__NR_SYSCALL_BASE + 264) +#define __NR_clock_nanosleep (__NR_SYSCALL_BASE + 265) +#define __NR_statfs64 (__NR_SYSCALL_BASE + 266) +#define __NR_fstatfs64 (__NR_SYSCALL_BASE + 267) +#define __NR_tgkill (__NR_SYSCALL_BASE + 268) +#define __NR_utimes (__NR_SYSCALL_BASE + 269) +#define __NR_arm_fadvise64_64 (__NR_SYSCALL_BASE + 270) +#define __NR_pciconfig_iobase (__NR_SYSCALL_BASE + 271) +#define __NR_pciconfig_read (__NR_SYSCALL_BASE + 272) +#define __NR_pciconfig_write (__NR_SYSCALL_BASE + 273) +#define __NR_mq_open (__NR_SYSCALL_BASE + 274) +#define __NR_mq_unlink (__NR_SYSCALL_BASE + 275) +#define __NR_mq_timedsend (__NR_SYSCALL_BASE + 276) +#define __NR_mq_timedreceive (__NR_SYSCALL_BASE + 277) +#define __NR_mq_notify (__NR_SYSCALL_BASE + 278) +#define __NR_mq_getsetattr (__NR_SYSCALL_BASE + 279) +#define __NR_waitid (__NR_SYSCALL_BASE + 280) +#define __NR_socket (__NR_SYSCALL_BASE + 281) +#define __NR_bind (__NR_SYSCALL_BASE + 282) +#define __NR_connect (__NR_SYSCALL_BASE + 283) +#define __NR_listen (__NR_SYSCALL_BASE + 284) +#define __NR_accept (__NR_SYSCALL_BASE + 285) +#define __NR_getsockname (__NR_SYSCALL_BASE + 286) +#define __NR_getpeername (__NR_SYSCALL_BASE + 287) +#define __NR_socketpair (__NR_SYSCALL_BASE + 288) +#define __NR_send (__NR_SYSCALL_BASE + 289) +#define __NR_sendto (__NR_SYSCALL_BASE + 290) +#define __NR_recv (__NR_SYSCALL_BASE + 291) +#define __NR_recvfrom (__NR_SYSCALL_BASE + 292) +#define __NR_shutdown (__NR_SYSCALL_BASE + 293) +#define __NR_setsockopt (__NR_SYSCALL_BASE + 294) +#define __NR_getsockopt (__NR_SYSCALL_BASE + 295) +#define __NR_sendmsg (__NR_SYSCALL_BASE + 296) +#define __NR_recvmsg (__NR_SYSCALL_BASE + 297) +#define __NR_semop (__NR_SYSCALL_BASE + 298) +#define __NR_semget (__NR_SYSCALL_BASE + 299) +#define __NR_semctl (__NR_SYSCALL_BASE + 300) +#define __NR_msgsnd (__NR_SYSCALL_BASE + 301) +#define __NR_msgrcv (__NR_SYSCALL_BASE + 302) +#define __NR_msgget (__NR_SYSCALL_BASE + 303) +#define __NR_msgctl (__NR_SYSCALL_BASE + 304) +#define __NR_shmat (__NR_SYSCALL_BASE + 305) +#define __NR_shmdt (__NR_SYSCALL_BASE + 306) +#define __NR_shmget (__NR_SYSCALL_BASE + 307) +#define __NR_shmctl (__NR_SYSCALL_BASE + 308) +#define __NR_add_key (__NR_SYSCALL_BASE + 309) +#define __NR_request_key (__NR_SYSCALL_BASE + 310) +#define __NR_keyctl (__NR_SYSCALL_BASE + 311) +#define __NR_semtimedop (__NR_SYSCALL_BASE + 312) +#define __NR_vserver (__NR_SYSCALL_BASE + 313) +#define __NR_ioprio_set (__NR_SYSCALL_BASE + 314) +#define __NR_ioprio_get (__NR_SYSCALL_BASE + 315) +#define __NR_inotify_init (__NR_SYSCALL_BASE + 316) +#define __NR_inotify_add_watch (__NR_SYSCALL_BASE + 317) +#define __NR_inotify_rm_watch (__NR_SYSCALL_BASE + 318) +#define __NR_mbind (__NR_SYSCALL_BASE + 319) +#define __NR_get_mempolicy (__NR_SYSCALL_BASE + 320) +#define __NR_set_mempolicy (__NR_SYSCALL_BASE + 321) +#define __NR_openat (__NR_SYSCALL_BASE + 322) +#define __NR_mkdirat (__NR_SYSCALL_BASE + 323) +#define __NR_mknodat (__NR_SYSCALL_BASE + 324) +#define __NR_fchownat (__NR_SYSCALL_BASE + 325) +#define __NR_futimesat (__NR_SYSCALL_BASE + 326) +#define __NR_fstatat64 (__NR_SYSCALL_BASE + 327) +#define __NR_unlinkat (__NR_SYSCALL_BASE + 328) +#define __NR_renameat (__NR_SYSCALL_BASE + 329) +#define __NR_linkat (__NR_SYSCALL_BASE + 330) +#define __NR_symlinkat (__NR_SYSCALL_BASE + 331) +#define __NR_readlinkat (__NR_SYSCALL_BASE + 332) +#define __NR_fchmodat (__NR_SYSCALL_BASE + 333) +#define __NR_faccessat (__NR_SYSCALL_BASE + 334) +#define __NR_pselect6 (__NR_SYSCALL_BASE + 335) +#define __NR_ppoll (__NR_SYSCALL_BASE + 336) +#define __NR_unshare (__NR_SYSCALL_BASE + 337) +#define __NR_set_robust_list (__NR_SYSCALL_BASE + 338) +#define __NR_get_robust_list (__NR_SYSCALL_BASE + 339) +#define __NR_splice (__NR_SYSCALL_BASE + 340) +#define __NR_arm_sync_file_range (__NR_SYSCALL_BASE + 341) +#define __NR_tee (__NR_SYSCALL_BASE + 342) +#define __NR_vmsplice (__NR_SYSCALL_BASE + 343) +#define __NR_move_pages (__NR_SYSCALL_BASE + 344) +#define __NR_getcpu (__NR_SYSCALL_BASE + 345) +#define __NR_epoll_pwait (__NR_SYSCALL_BASE + 346) +#define __NR_kexec_load (__NR_SYSCALL_BASE + 347) +#define __NR_utimensat (__NR_SYSCALL_BASE + 348) +#define __NR_signalfd (__NR_SYSCALL_BASE + 349) +#define __NR_timerfd_create (__NR_SYSCALL_BASE + 350) +#define __NR_eventfd (__NR_SYSCALL_BASE + 351) +#define __NR_fallocate (__NR_SYSCALL_BASE + 352) +#define __NR_timerfd_settime (__NR_SYSCALL_BASE + 353) +#define __NR_timerfd_gettime (__NR_SYSCALL_BASE + 354) +#define __NR_signalfd4 (__NR_SYSCALL_BASE + 355) +#define __NR_eventfd2 (__NR_SYSCALL_BASE + 356) +#define __NR_epoll_create1 (__NR_SYSCALL_BASE + 357) +#define __NR_dup3 (__NR_SYSCALL_BASE + 358) +#define __NR_pipe2 (__NR_SYSCALL_BASE + 359) +#define __NR_inotify_init1 (__NR_SYSCALL_BASE + 360) +#define __NR_preadv (__NR_SYSCALL_BASE + 361) +#define __NR_pwritev (__NR_SYSCALL_BASE + 362) +#define __NR_rt_tgsigqueueinfo (__NR_SYSCALL_BASE + 363) +#define __NR_perf_event_open (__NR_SYSCALL_BASE + 364) +#define __NR_recvmmsg (__NR_SYSCALL_BASE + 365) +#define __NR_accept4 (__NR_SYSCALL_BASE + 366) +#define __NR_fanotify_init (__NR_SYSCALL_BASE + 367) +#define __NR_fanotify_mark (__NR_SYSCALL_BASE + 368) +#define __NR_prlimit64 (__NR_SYSCALL_BASE + 369) +#define __NR_name_to_handle_at (__NR_SYSCALL_BASE + 370) +#define __NR_open_by_handle_at (__NR_SYSCALL_BASE + 371) +#define __NR_clock_adjtime (__NR_SYSCALL_BASE + 372) +#define __NR_syncfs (__NR_SYSCALL_BASE + 373) +#define __NR_sendmmsg (__NR_SYSCALL_BASE + 374) +#define __NR_setns (__NR_SYSCALL_BASE + 375) +#define __NR_process_vm_readv (__NR_SYSCALL_BASE + 376) +#define __NR_process_vm_writev (__NR_SYSCALL_BASE + 377) +#define __NR_kcmp (__NR_SYSCALL_BASE + 378) +#define __NR_finit_module (__NR_SYSCALL_BASE + 379) +#define __NR_sched_setattr (__NR_SYSCALL_BASE + 380) +#define __NR_sched_getattr (__NR_SYSCALL_BASE + 381) +#define __NR_renameat2 (__NR_SYSCALL_BASE + 382) +#define __NR_seccomp (__NR_SYSCALL_BASE + 383) +#define __NR_getrandom (__NR_SYSCALL_BASE + 384) +#define __NR_memfd_create (__NR_SYSCALL_BASE + 385) +#define __NR_bpf (__NR_SYSCALL_BASE + 386) +#define __NR_execveat (__NR_SYSCALL_BASE + 387) +#define __NR_userfaultfd (__NR_SYSCALL_BASE + 388) +#define __NR_membarrier (__NR_SYSCALL_BASE + 389) +#define __NR_mlock2 (__NR_SYSCALL_BASE + 390) +#define __NR_copy_file_range (__NR_SYSCALL_BASE + 391) +#define __NR_preadv2 (__NR_SYSCALL_BASE + 392) +#define __NR_pwritev2 (__NR_SYSCALL_BASE + 393) +#define __NR_pkey_mprotect (__NR_SYSCALL_BASE + 394) +#define __NR_pkey_alloc (__NR_SYSCALL_BASE + 395) +#define __NR_pkey_free (__NR_SYSCALL_BASE + 396) +#define __NR_statx (__NR_SYSCALL_BASE + 397) +#define __NR_rseq (__NR_SYSCALL_BASE + 398) +#define __NR_io_pgetevents (__NR_SYSCALL_BASE + 399) +#define __NR_migrate_pages (__NR_SYSCALL_BASE + 400) +#define __NR_kexec_file_load (__NR_SYSCALL_BASE + 401) +#define __NR_clock_gettime64 (__NR_SYSCALL_BASE + 403) +#define __NR_clock_settime64 (__NR_SYSCALL_BASE + 404) +#define __NR_clock_adjtime64 (__NR_SYSCALL_BASE + 405) +#define __NR_clock_getres_time64 (__NR_SYSCALL_BASE + 406) +#define __NR_clock_nanosleep_time64 (__NR_SYSCALL_BASE + 407) +#define __NR_timer_gettime64 (__NR_SYSCALL_BASE + 408) +#define __NR_timer_settime64 (__NR_SYSCALL_BASE + 409) +#define __NR_timerfd_gettime64 (__NR_SYSCALL_BASE + 410) +#define __NR_timerfd_settime64 (__NR_SYSCALL_BASE + 411) +#define __NR_utimensat_time64 (__NR_SYSCALL_BASE + 412) +#define __NR_pselect6_time64 (__NR_SYSCALL_BASE + 413) +#define __NR_ppoll_time64 (__NR_SYSCALL_BASE + 414) +#define __NR_io_pgetevents_time64 (__NR_SYSCALL_BASE + 416) +#define __NR_recvmmsg_time64 (__NR_SYSCALL_BASE + 417) +#define __NR_mq_timedsend_time64 (__NR_SYSCALL_BASE + 418) +#define __NR_mq_timedreceive_time64 (__NR_SYSCALL_BASE + 419) +#define __NR_semtimedop_time64 (__NR_SYSCALL_BASE + 420) +#define __NR_rt_sigtimedwait_time64 (__NR_SYSCALL_BASE + 421) +#define __NR_futex_time64 (__NR_SYSCALL_BASE + 422) +#define __NR_sched_rr_get_interval_time64 (__NR_SYSCALL_BASE + 423) +#define __NR_pidfd_send_signal (__NR_SYSCALL_BASE + 424) +#define __NR_io_uring_setup (__NR_SYSCALL_BASE + 425) +#define __NR_io_uring_enter (__NR_SYSCALL_BASE + 426) +#define __NR_io_uring_register (__NR_SYSCALL_BASE + 427) +#define __NR_open_tree (__NR_SYSCALL_BASE + 428) +#define __NR_move_mount (__NR_SYSCALL_BASE + 429) +#define __NR_fsopen (__NR_SYSCALL_BASE + 430) +#define __NR_fsconfig (__NR_SYSCALL_BASE + 431) +#define __NR_fsmount (__NR_SYSCALL_BASE + 432) +#define __NR_fspick (__NR_SYSCALL_BASE + 433) +#define __NR_pidfd_open (__NR_SYSCALL_BASE + 434) +#define __NR_clone3 (__NR_SYSCALL_BASE + 435) +#define __NR_close_range (__NR_SYSCALL_BASE + 436) +#define __NR_openat2 (__NR_SYSCALL_BASE + 437) +#define __NR_pidfd_getfd (__NR_SYSCALL_BASE + 438) +#define __NR_faccessat2 (__NR_SYSCALL_BASE + 439) +#define __NR_process_madvise (__NR_SYSCALL_BASE + 440) +#define __NR_epoll_pwait2 (__NR_SYSCALL_BASE + 441) +#define __NR_mount_setattr (__NR_SYSCALL_BASE + 442) + +#endif /* _UAPI_ASM_ARM_UNISTD_COMMON_H */ diff --git a/original/uapi/asm-arm/asm/unistd-eabi.h b/original/uapi/asm-arm/asm/unistd-eabi.h index 55f8300..274bb88 100644 --- a/original/uapi/asm-arm/asm/unistd-eabi.h +++ b/original/uapi/asm-arm/asm/unistd-eabi.h @@ -1,408 +1,5 @@ -#ifndef _UAPI_ASM_UNISTD_EABI_H -#define _UAPI_ASM_UNISTD_EABI_H +#ifndef _UAPI_ASM_ARM_UNISTD_EABI_H +#define _UAPI_ASM_ARM_UNISTD_EABI_H 1 -#define __NR_restart_syscall (__NR_SYSCALL_BASE + 0) -#define __NR_exit (__NR_SYSCALL_BASE + 1) -#define __NR_fork (__NR_SYSCALL_BASE + 2) -#define __NR_read (__NR_SYSCALL_BASE + 3) -#define __NR_write (__NR_SYSCALL_BASE + 4) -#define __NR_open (__NR_SYSCALL_BASE + 5) -#define __NR_close (__NR_SYSCALL_BASE + 6) -#define __NR_creat (__NR_SYSCALL_BASE + 8) -#define __NR_link (__NR_SYSCALL_BASE + 9) -#define __NR_unlink (__NR_SYSCALL_BASE + 10) -#define __NR_execve (__NR_SYSCALL_BASE + 11) -#define __NR_chdir (__NR_SYSCALL_BASE + 12) -#define __NR_mknod (__NR_SYSCALL_BASE + 14) -#define __NR_chmod (__NR_SYSCALL_BASE + 15) -#define __NR_lchown (__NR_SYSCALL_BASE + 16) -#define __NR_lseek (__NR_SYSCALL_BASE + 19) -#define __NR_getpid (__NR_SYSCALL_BASE + 20) -#define __NR_mount (__NR_SYSCALL_BASE + 21) -#define __NR_setuid (__NR_SYSCALL_BASE + 23) -#define __NR_getuid (__NR_SYSCALL_BASE + 24) -#define __NR_ptrace (__NR_SYSCALL_BASE + 26) -#define __NR_pause (__NR_SYSCALL_BASE + 29) -#define __NR_access (__NR_SYSCALL_BASE + 33) -#define __NR_nice (__NR_SYSCALL_BASE + 34) -#define __NR_sync (__NR_SYSCALL_BASE + 36) -#define __NR_kill (__NR_SYSCALL_BASE + 37) -#define __NR_rename (__NR_SYSCALL_BASE + 38) -#define __NR_mkdir (__NR_SYSCALL_BASE + 39) -#define __NR_rmdir (__NR_SYSCALL_BASE + 40) -#define __NR_dup (__NR_SYSCALL_BASE + 41) -#define __NR_pipe (__NR_SYSCALL_BASE + 42) -#define __NR_times (__NR_SYSCALL_BASE + 43) -#define __NR_brk (__NR_SYSCALL_BASE + 45) -#define __NR_setgid (__NR_SYSCALL_BASE + 46) -#define __NR_getgid (__NR_SYSCALL_BASE + 47) -#define __NR_geteuid (__NR_SYSCALL_BASE + 49) -#define __NR_getegid (__NR_SYSCALL_BASE + 50) -#define __NR_acct (__NR_SYSCALL_BASE + 51) -#define __NR_umount2 (__NR_SYSCALL_BASE + 52) -#define __NR_ioctl (__NR_SYSCALL_BASE + 54) -#define __NR_fcntl (__NR_SYSCALL_BASE + 55) -#define __NR_setpgid (__NR_SYSCALL_BASE + 57) -#define __NR_umask (__NR_SYSCALL_BASE + 60) -#define __NR_chroot (__NR_SYSCALL_BASE + 61) -#define __NR_ustat (__NR_SYSCALL_BASE + 62) -#define __NR_dup2 (__NR_SYSCALL_BASE + 63) -#define __NR_getppid (__NR_SYSCALL_BASE + 64) -#define __NR_getpgrp (__NR_SYSCALL_BASE + 65) -#define __NR_setsid (__NR_SYSCALL_BASE + 66) -#define __NR_sigaction (__NR_SYSCALL_BASE + 67) -#define __NR_setreuid (__NR_SYSCALL_BASE + 70) -#define __NR_setregid (__NR_SYSCALL_BASE + 71) -#define __NR_sigsuspend (__NR_SYSCALL_BASE + 72) -#define __NR_sigpending (__NR_SYSCALL_BASE + 73) -#define __NR_sethostname (__NR_SYSCALL_BASE + 74) -#define __NR_setrlimit (__NR_SYSCALL_BASE + 75) -#define __NR_getrusage (__NR_SYSCALL_BASE + 77) -#define __NR_gettimeofday (__NR_SYSCALL_BASE + 78) -#define __NR_settimeofday (__NR_SYSCALL_BASE + 79) -#define __NR_getgroups (__NR_SYSCALL_BASE + 80) -#define __NR_setgroups (__NR_SYSCALL_BASE + 81) -#define __NR_symlink (__NR_SYSCALL_BASE + 83) -#define __NR_readlink (__NR_SYSCALL_BASE + 85) -#define __NR_uselib (__NR_SYSCALL_BASE + 86) -#define __NR_swapon (__NR_SYSCALL_BASE + 87) -#define __NR_reboot (__NR_SYSCALL_BASE + 88) -#define __NR_munmap (__NR_SYSCALL_BASE + 91) -#define __NR_truncate (__NR_SYSCALL_BASE + 92) -#define __NR_ftruncate (__NR_SYSCALL_BASE + 93) -#define __NR_fchmod (__NR_SYSCALL_BASE + 94) -#define __NR_fchown (__NR_SYSCALL_BASE + 95) -#define __NR_getpriority (__NR_SYSCALL_BASE + 96) -#define __NR_setpriority (__NR_SYSCALL_BASE + 97) -#define __NR_statfs (__NR_SYSCALL_BASE + 99) -#define __NR_fstatfs (__NR_SYSCALL_BASE + 100) -#define __NR_syslog (__NR_SYSCALL_BASE + 103) -#define __NR_setitimer (__NR_SYSCALL_BASE + 104) -#define __NR_getitimer (__NR_SYSCALL_BASE + 105) -#define __NR_stat (__NR_SYSCALL_BASE + 106) -#define __NR_lstat (__NR_SYSCALL_BASE + 107) -#define __NR_fstat (__NR_SYSCALL_BASE + 108) -#define __NR_vhangup (__NR_SYSCALL_BASE + 111) -#define __NR_wait4 (__NR_SYSCALL_BASE + 114) -#define __NR_swapoff (__NR_SYSCALL_BASE + 115) -#define __NR_sysinfo (__NR_SYSCALL_BASE + 116) -#define __NR_fsync (__NR_SYSCALL_BASE + 118) -#define __NR_sigreturn (__NR_SYSCALL_BASE + 119) -#define __NR_clone (__NR_SYSCALL_BASE + 120) -#define __NR_setdomainname (__NR_SYSCALL_BASE + 121) -#define __NR_uname (__NR_SYSCALL_BASE + 122) -#define __NR_adjtimex (__NR_SYSCALL_BASE + 124) -#define __NR_mprotect (__NR_SYSCALL_BASE + 125) -#define __NR_sigprocmask (__NR_SYSCALL_BASE + 126) -#define __NR_init_module (__NR_SYSCALL_BASE + 128) -#define __NR_delete_module (__NR_SYSCALL_BASE + 129) -#define __NR_quotactl (__NR_SYSCALL_BASE + 131) -#define __NR_getpgid (__NR_SYSCALL_BASE + 132) -#define __NR_fchdir (__NR_SYSCALL_BASE + 133) -#define __NR_bdflush (__NR_SYSCALL_BASE + 134) -#define __NR_sysfs (__NR_SYSCALL_BASE + 135) -#define __NR_personality (__NR_SYSCALL_BASE + 136) -#define __NR_setfsuid (__NR_SYSCALL_BASE + 138) -#define __NR_setfsgid (__NR_SYSCALL_BASE + 139) -#define __NR__llseek (__NR_SYSCALL_BASE + 140) -#define __NR_getdents (__NR_SYSCALL_BASE + 141) -#define __NR__newselect (__NR_SYSCALL_BASE + 142) -#define __NR_flock (__NR_SYSCALL_BASE + 143) -#define __NR_msync (__NR_SYSCALL_BASE + 144) -#define __NR_readv (__NR_SYSCALL_BASE + 145) -#define __NR_writev (__NR_SYSCALL_BASE + 146) -#define __NR_getsid (__NR_SYSCALL_BASE + 147) -#define __NR_fdatasync (__NR_SYSCALL_BASE + 148) -#define __NR__sysctl (__NR_SYSCALL_BASE + 149) -#define __NR_mlock (__NR_SYSCALL_BASE + 150) -#define __NR_munlock (__NR_SYSCALL_BASE + 151) -#define __NR_mlockall (__NR_SYSCALL_BASE + 152) -#define __NR_munlockall (__NR_SYSCALL_BASE + 153) -#define __NR_sched_setparam (__NR_SYSCALL_BASE + 154) -#define __NR_sched_getparam (__NR_SYSCALL_BASE + 155) -#define __NR_sched_setscheduler (__NR_SYSCALL_BASE + 156) -#define __NR_sched_getscheduler (__NR_SYSCALL_BASE + 157) -#define __NR_sched_yield (__NR_SYSCALL_BASE + 158) -#define __NR_sched_get_priority_max (__NR_SYSCALL_BASE + 159) -#define __NR_sched_get_priority_min (__NR_SYSCALL_BASE + 160) -#define __NR_sched_rr_get_interval (__NR_SYSCALL_BASE + 161) -#define __NR_nanosleep (__NR_SYSCALL_BASE + 162) -#define __NR_mremap (__NR_SYSCALL_BASE + 163) -#define __NR_setresuid (__NR_SYSCALL_BASE + 164) -#define __NR_getresuid (__NR_SYSCALL_BASE + 165) -#define __NR_poll (__NR_SYSCALL_BASE + 168) -#define __NR_nfsservctl (__NR_SYSCALL_BASE + 169) -#define __NR_setresgid (__NR_SYSCALL_BASE + 170) -#define __NR_getresgid (__NR_SYSCALL_BASE + 171) -#define __NR_prctl (__NR_SYSCALL_BASE + 172) -#define __NR_rt_sigreturn (__NR_SYSCALL_BASE + 173) -#define __NR_rt_sigaction (__NR_SYSCALL_BASE + 174) -#define __NR_rt_sigprocmask (__NR_SYSCALL_BASE + 175) -#define __NR_rt_sigpending (__NR_SYSCALL_BASE + 176) -#define __NR_rt_sigtimedwait (__NR_SYSCALL_BASE + 177) -#define __NR_rt_sigqueueinfo (__NR_SYSCALL_BASE + 178) -#define __NR_rt_sigsuspend (__NR_SYSCALL_BASE + 179) -#define __NR_pread64 (__NR_SYSCALL_BASE + 180) -#define __NR_pwrite64 (__NR_SYSCALL_BASE + 181) -#define __NR_chown (__NR_SYSCALL_BASE + 182) -#define __NR_getcwd (__NR_SYSCALL_BASE + 183) -#define __NR_capget (__NR_SYSCALL_BASE + 184) -#define __NR_capset (__NR_SYSCALL_BASE + 185) -#define __NR_sigaltstack (__NR_SYSCALL_BASE + 186) -#define __NR_sendfile (__NR_SYSCALL_BASE + 187) -#define __NR_vfork (__NR_SYSCALL_BASE + 190) -#define __NR_ugetrlimit (__NR_SYSCALL_BASE + 191) -#define __NR_mmap2 (__NR_SYSCALL_BASE + 192) -#define __NR_truncate64 (__NR_SYSCALL_BASE + 193) -#define __NR_ftruncate64 (__NR_SYSCALL_BASE + 194) -#define __NR_stat64 (__NR_SYSCALL_BASE + 195) -#define __NR_lstat64 (__NR_SYSCALL_BASE + 196) -#define __NR_fstat64 (__NR_SYSCALL_BASE + 197) -#define __NR_lchown32 (__NR_SYSCALL_BASE + 198) -#define __NR_getuid32 (__NR_SYSCALL_BASE + 199) -#define __NR_getgid32 (__NR_SYSCALL_BASE + 200) -#define __NR_geteuid32 (__NR_SYSCALL_BASE + 201) -#define __NR_getegid32 (__NR_SYSCALL_BASE + 202) -#define __NR_setreuid32 (__NR_SYSCALL_BASE + 203) -#define __NR_setregid32 (__NR_SYSCALL_BASE + 204) -#define __NR_getgroups32 (__NR_SYSCALL_BASE + 205) -#define __NR_setgroups32 (__NR_SYSCALL_BASE + 206) -#define __NR_fchown32 (__NR_SYSCALL_BASE + 207) -#define __NR_setresuid32 (__NR_SYSCALL_BASE + 208) -#define __NR_getresuid32 (__NR_SYSCALL_BASE + 209) -#define __NR_setresgid32 (__NR_SYSCALL_BASE + 210) -#define __NR_getresgid32 (__NR_SYSCALL_BASE + 211) -#define __NR_chown32 (__NR_SYSCALL_BASE + 212) -#define __NR_setuid32 (__NR_SYSCALL_BASE + 213) -#define __NR_setgid32 (__NR_SYSCALL_BASE + 214) -#define __NR_setfsuid32 (__NR_SYSCALL_BASE + 215) -#define __NR_setfsgid32 (__NR_SYSCALL_BASE + 216) -#define __NR_getdents64 (__NR_SYSCALL_BASE + 217) -#define __NR_pivot_root (__NR_SYSCALL_BASE + 218) -#define __NR_mincore (__NR_SYSCALL_BASE + 219) -#define __NR_madvise (__NR_SYSCALL_BASE + 220) -#define __NR_fcntl64 (__NR_SYSCALL_BASE + 221) -#define __NR_gettid (__NR_SYSCALL_BASE + 224) -#define __NR_readahead (__NR_SYSCALL_BASE + 225) -#define __NR_setxattr (__NR_SYSCALL_BASE + 226) -#define __NR_lsetxattr (__NR_SYSCALL_BASE + 227) -#define __NR_fsetxattr (__NR_SYSCALL_BASE + 228) -#define __NR_getxattr (__NR_SYSCALL_BASE + 229) -#define __NR_lgetxattr (__NR_SYSCALL_BASE + 230) -#define __NR_fgetxattr (__NR_SYSCALL_BASE + 231) -#define __NR_listxattr (__NR_SYSCALL_BASE + 232) -#define __NR_llistxattr (__NR_SYSCALL_BASE + 233) -#define __NR_flistxattr (__NR_SYSCALL_BASE + 234) -#define __NR_removexattr (__NR_SYSCALL_BASE + 235) -#define __NR_lremovexattr (__NR_SYSCALL_BASE + 236) -#define __NR_fremovexattr (__NR_SYSCALL_BASE + 237) -#define __NR_tkill (__NR_SYSCALL_BASE + 238) -#define __NR_sendfile64 (__NR_SYSCALL_BASE + 239) -#define __NR_futex (__NR_SYSCALL_BASE + 240) -#define __NR_sched_setaffinity (__NR_SYSCALL_BASE + 241) -#define __NR_sched_getaffinity (__NR_SYSCALL_BASE + 242) -#define __NR_io_setup (__NR_SYSCALL_BASE + 243) -#define __NR_io_destroy (__NR_SYSCALL_BASE + 244) -#define __NR_io_getevents (__NR_SYSCALL_BASE + 245) -#define __NR_io_submit (__NR_SYSCALL_BASE + 246) -#define __NR_io_cancel (__NR_SYSCALL_BASE + 247) -#define __NR_exit_group (__NR_SYSCALL_BASE + 248) -#define __NR_lookup_dcookie (__NR_SYSCALL_BASE + 249) -#define __NR_epoll_create (__NR_SYSCALL_BASE + 250) -#define __NR_epoll_ctl (__NR_SYSCALL_BASE + 251) -#define __NR_epoll_wait (__NR_SYSCALL_BASE + 252) -#define __NR_remap_file_pages (__NR_SYSCALL_BASE + 253) -#define __NR_set_tid_address (__NR_SYSCALL_BASE + 256) -#define __NR_timer_create (__NR_SYSCALL_BASE + 257) -#define __NR_timer_settime (__NR_SYSCALL_BASE + 258) -#define __NR_timer_gettime (__NR_SYSCALL_BASE + 259) -#define __NR_timer_getoverrun (__NR_SYSCALL_BASE + 260) -#define __NR_timer_delete (__NR_SYSCALL_BASE + 261) -#define __NR_clock_settime (__NR_SYSCALL_BASE + 262) -#define __NR_clock_gettime (__NR_SYSCALL_BASE + 263) -#define __NR_clock_getres (__NR_SYSCALL_BASE + 264) -#define __NR_clock_nanosleep (__NR_SYSCALL_BASE + 265) -#define __NR_statfs64 (__NR_SYSCALL_BASE + 266) -#define __NR_fstatfs64 (__NR_SYSCALL_BASE + 267) -#define __NR_tgkill (__NR_SYSCALL_BASE + 268) -#define __NR_utimes (__NR_SYSCALL_BASE + 269) -#define __NR_arm_fadvise64_64 (__NR_SYSCALL_BASE + 270) -#define __NR_pciconfig_iobase (__NR_SYSCALL_BASE + 271) -#define __NR_pciconfig_read (__NR_SYSCALL_BASE + 272) -#define __NR_pciconfig_write (__NR_SYSCALL_BASE + 273) -#define __NR_mq_open (__NR_SYSCALL_BASE + 274) -#define __NR_mq_unlink (__NR_SYSCALL_BASE + 275) -#define __NR_mq_timedsend (__NR_SYSCALL_BASE + 276) -#define __NR_mq_timedreceive (__NR_SYSCALL_BASE + 277) -#define __NR_mq_notify (__NR_SYSCALL_BASE + 278) -#define __NR_mq_getsetattr (__NR_SYSCALL_BASE + 279) -#define __NR_waitid (__NR_SYSCALL_BASE + 280) -#define __NR_socket (__NR_SYSCALL_BASE + 281) -#define __NR_bind (__NR_SYSCALL_BASE + 282) -#define __NR_connect (__NR_SYSCALL_BASE + 283) -#define __NR_listen (__NR_SYSCALL_BASE + 284) -#define __NR_accept (__NR_SYSCALL_BASE + 285) -#define __NR_getsockname (__NR_SYSCALL_BASE + 286) -#define __NR_getpeername (__NR_SYSCALL_BASE + 287) -#define __NR_socketpair (__NR_SYSCALL_BASE + 288) -#define __NR_send (__NR_SYSCALL_BASE + 289) -#define __NR_sendto (__NR_SYSCALL_BASE + 290) -#define __NR_recv (__NR_SYSCALL_BASE + 291) -#define __NR_recvfrom (__NR_SYSCALL_BASE + 292) -#define __NR_shutdown (__NR_SYSCALL_BASE + 293) -#define __NR_setsockopt (__NR_SYSCALL_BASE + 294) -#define __NR_getsockopt (__NR_SYSCALL_BASE + 295) -#define __NR_sendmsg (__NR_SYSCALL_BASE + 296) -#define __NR_recvmsg (__NR_SYSCALL_BASE + 297) -#define __NR_semop (__NR_SYSCALL_BASE + 298) -#define __NR_semget (__NR_SYSCALL_BASE + 299) -#define __NR_semctl (__NR_SYSCALL_BASE + 300) -#define __NR_msgsnd (__NR_SYSCALL_BASE + 301) -#define __NR_msgrcv (__NR_SYSCALL_BASE + 302) -#define __NR_msgget (__NR_SYSCALL_BASE + 303) -#define __NR_msgctl (__NR_SYSCALL_BASE + 304) -#define __NR_shmat (__NR_SYSCALL_BASE + 305) -#define __NR_shmdt (__NR_SYSCALL_BASE + 306) -#define __NR_shmget (__NR_SYSCALL_BASE + 307) -#define __NR_shmctl (__NR_SYSCALL_BASE + 308) -#define __NR_add_key (__NR_SYSCALL_BASE + 309) -#define __NR_request_key (__NR_SYSCALL_BASE + 310) -#define __NR_keyctl (__NR_SYSCALL_BASE + 311) -#define __NR_semtimedop (__NR_SYSCALL_BASE + 312) -#define __NR_vserver (__NR_SYSCALL_BASE + 313) -#define __NR_ioprio_set (__NR_SYSCALL_BASE + 314) -#define __NR_ioprio_get (__NR_SYSCALL_BASE + 315) -#define __NR_inotify_init (__NR_SYSCALL_BASE + 316) -#define __NR_inotify_add_watch (__NR_SYSCALL_BASE + 317) -#define __NR_inotify_rm_watch (__NR_SYSCALL_BASE + 318) -#define __NR_mbind (__NR_SYSCALL_BASE + 319) -#define __NR_get_mempolicy (__NR_SYSCALL_BASE + 320) -#define __NR_set_mempolicy (__NR_SYSCALL_BASE + 321) -#define __NR_openat (__NR_SYSCALL_BASE + 322) -#define __NR_mkdirat (__NR_SYSCALL_BASE + 323) -#define __NR_mknodat (__NR_SYSCALL_BASE + 324) -#define __NR_fchownat (__NR_SYSCALL_BASE + 325) -#define __NR_futimesat (__NR_SYSCALL_BASE + 326) -#define __NR_fstatat64 (__NR_SYSCALL_BASE + 327) -#define __NR_unlinkat (__NR_SYSCALL_BASE + 328) -#define __NR_renameat (__NR_SYSCALL_BASE + 329) -#define __NR_linkat (__NR_SYSCALL_BASE + 330) -#define __NR_symlinkat (__NR_SYSCALL_BASE + 331) -#define __NR_readlinkat (__NR_SYSCALL_BASE + 332) -#define __NR_fchmodat (__NR_SYSCALL_BASE + 333) -#define __NR_faccessat (__NR_SYSCALL_BASE + 334) -#define __NR_pselect6 (__NR_SYSCALL_BASE + 335) -#define __NR_ppoll (__NR_SYSCALL_BASE + 336) -#define __NR_unshare (__NR_SYSCALL_BASE + 337) -#define __NR_set_robust_list (__NR_SYSCALL_BASE + 338) -#define __NR_get_robust_list (__NR_SYSCALL_BASE + 339) -#define __NR_splice (__NR_SYSCALL_BASE + 340) -#define __NR_arm_sync_file_range (__NR_SYSCALL_BASE + 341) -#define __NR_tee (__NR_SYSCALL_BASE + 342) -#define __NR_vmsplice (__NR_SYSCALL_BASE + 343) -#define __NR_move_pages (__NR_SYSCALL_BASE + 344) -#define __NR_getcpu (__NR_SYSCALL_BASE + 345) -#define __NR_epoll_pwait (__NR_SYSCALL_BASE + 346) -#define __NR_kexec_load (__NR_SYSCALL_BASE + 347) -#define __NR_utimensat (__NR_SYSCALL_BASE + 348) -#define __NR_signalfd (__NR_SYSCALL_BASE + 349) -#define __NR_timerfd_create (__NR_SYSCALL_BASE + 350) -#define __NR_eventfd (__NR_SYSCALL_BASE + 351) -#define __NR_fallocate (__NR_SYSCALL_BASE + 352) -#define __NR_timerfd_settime (__NR_SYSCALL_BASE + 353) -#define __NR_timerfd_gettime (__NR_SYSCALL_BASE + 354) -#define __NR_signalfd4 (__NR_SYSCALL_BASE + 355) -#define __NR_eventfd2 (__NR_SYSCALL_BASE + 356) -#define __NR_epoll_create1 (__NR_SYSCALL_BASE + 357) -#define __NR_dup3 (__NR_SYSCALL_BASE + 358) -#define __NR_pipe2 (__NR_SYSCALL_BASE + 359) -#define __NR_inotify_init1 (__NR_SYSCALL_BASE + 360) -#define __NR_preadv (__NR_SYSCALL_BASE + 361) -#define __NR_pwritev (__NR_SYSCALL_BASE + 362) -#define __NR_rt_tgsigqueueinfo (__NR_SYSCALL_BASE + 363) -#define __NR_perf_event_open (__NR_SYSCALL_BASE + 364) -#define __NR_recvmmsg (__NR_SYSCALL_BASE + 365) -#define __NR_accept4 (__NR_SYSCALL_BASE + 366) -#define __NR_fanotify_init (__NR_SYSCALL_BASE + 367) -#define __NR_fanotify_mark (__NR_SYSCALL_BASE + 368) -#define __NR_prlimit64 (__NR_SYSCALL_BASE + 369) -#define __NR_name_to_handle_at (__NR_SYSCALL_BASE + 370) -#define __NR_open_by_handle_at (__NR_SYSCALL_BASE + 371) -#define __NR_clock_adjtime (__NR_SYSCALL_BASE + 372) -#define __NR_syncfs (__NR_SYSCALL_BASE + 373) -#define __NR_sendmmsg (__NR_SYSCALL_BASE + 374) -#define __NR_setns (__NR_SYSCALL_BASE + 375) -#define __NR_process_vm_readv (__NR_SYSCALL_BASE + 376) -#define __NR_process_vm_writev (__NR_SYSCALL_BASE + 377) -#define __NR_kcmp (__NR_SYSCALL_BASE + 378) -#define __NR_finit_module (__NR_SYSCALL_BASE + 379) -#define __NR_sched_setattr (__NR_SYSCALL_BASE + 380) -#define __NR_sched_getattr (__NR_SYSCALL_BASE + 381) -#define __NR_renameat2 (__NR_SYSCALL_BASE + 382) -#define __NR_seccomp (__NR_SYSCALL_BASE + 383) -#define __NR_getrandom (__NR_SYSCALL_BASE + 384) -#define __NR_memfd_create (__NR_SYSCALL_BASE + 385) -#define __NR_bpf (__NR_SYSCALL_BASE + 386) -#define __NR_execveat (__NR_SYSCALL_BASE + 387) -#define __NR_userfaultfd (__NR_SYSCALL_BASE + 388) -#define __NR_membarrier (__NR_SYSCALL_BASE + 389) -#define __NR_mlock2 (__NR_SYSCALL_BASE + 390) -#define __NR_copy_file_range (__NR_SYSCALL_BASE + 391) -#define __NR_preadv2 (__NR_SYSCALL_BASE + 392) -#define __NR_pwritev2 (__NR_SYSCALL_BASE + 393) -#define __NR_pkey_mprotect (__NR_SYSCALL_BASE + 394) -#define __NR_pkey_alloc (__NR_SYSCALL_BASE + 395) -#define __NR_pkey_free (__NR_SYSCALL_BASE + 396) -#define __NR_statx (__NR_SYSCALL_BASE + 397) -#define __NR_rseq (__NR_SYSCALL_BASE + 398) -#define __NR_io_pgetevents (__NR_SYSCALL_BASE + 399) -#define __NR_migrate_pages (__NR_SYSCALL_BASE + 400) -#define __NR_kexec_file_load (__NR_SYSCALL_BASE + 401) -#define __NR_clock_gettime64 (__NR_SYSCALL_BASE + 403) -#define __NR_clock_settime64 (__NR_SYSCALL_BASE + 404) -#define __NR_clock_adjtime64 (__NR_SYSCALL_BASE + 405) -#define __NR_clock_getres_time64 (__NR_SYSCALL_BASE + 406) -#define __NR_clock_nanosleep_time64 (__NR_SYSCALL_BASE + 407) -#define __NR_timer_gettime64 (__NR_SYSCALL_BASE + 408) -#define __NR_timer_settime64 (__NR_SYSCALL_BASE + 409) -#define __NR_timerfd_gettime64 (__NR_SYSCALL_BASE + 410) -#define __NR_timerfd_settime64 (__NR_SYSCALL_BASE + 411) -#define __NR_utimensat_time64 (__NR_SYSCALL_BASE + 412) -#define __NR_pselect6_time64 (__NR_SYSCALL_BASE + 413) -#define __NR_ppoll_time64 (__NR_SYSCALL_BASE + 414) -#define __NR_io_pgetevents_time64 (__NR_SYSCALL_BASE + 416) -#define __NR_recvmmsg_time64 (__NR_SYSCALL_BASE + 417) -#define __NR_mq_timedsend_time64 (__NR_SYSCALL_BASE + 418) -#define __NR_mq_timedreceive_time64 (__NR_SYSCALL_BASE + 419) -#define __NR_semtimedop_time64 (__NR_SYSCALL_BASE + 420) -#define __NR_rt_sigtimedwait_time64 (__NR_SYSCALL_BASE + 421) -#define __NR_futex_time64 (__NR_SYSCALL_BASE + 422) -#define __NR_sched_rr_get_interval_time64 (__NR_SYSCALL_BASE + 423) -#define __NR_pidfd_send_signal (__NR_SYSCALL_BASE + 424) -#define __NR_io_uring_setup (__NR_SYSCALL_BASE + 425) -#define __NR_io_uring_enter (__NR_SYSCALL_BASE + 426) -#define __NR_io_uring_register (__NR_SYSCALL_BASE + 427) -#define __NR_open_tree (__NR_SYSCALL_BASE + 428) -#define __NR_move_mount (__NR_SYSCALL_BASE + 429) -#define __NR_fsopen (__NR_SYSCALL_BASE + 430) -#define __NR_fsconfig (__NR_SYSCALL_BASE + 431) -#define __NR_fsmount (__NR_SYSCALL_BASE + 432) -#define __NR_fspick (__NR_SYSCALL_BASE + 433) -#define __NR_pidfd_open (__NR_SYSCALL_BASE + 434) -#define __NR_clone3 (__NR_SYSCALL_BASE + 435) -#define __NR_close_range (__NR_SYSCALL_BASE + 436) -#define __NR_openat2 (__NR_SYSCALL_BASE + 437) -#define __NR_pidfd_getfd (__NR_SYSCALL_BASE + 438) -#define __NR_faccessat2 (__NR_SYSCALL_BASE + 439) -#define __NR_process_madvise (__NR_SYSCALL_BASE + 440) -#define __NR_epoll_pwait2 (__NR_SYSCALL_BASE + 441) -#define __NR_mount_setattr (__NR_SYSCALL_BASE + 442) -#define __NR_quotactl_fd (__NR_SYSCALL_BASE + 443) -#define __NR_landlock_create_ruleset (__NR_SYSCALL_BASE + 444) -#define __NR_landlock_add_rule (__NR_SYSCALL_BASE + 445) -#define __NR_landlock_restrict_self (__NR_SYSCALL_BASE + 446) -#define __NR_process_mrelease (__NR_SYSCALL_BASE + 448) -#define __NR_futex_waitv (__NR_SYSCALL_BASE + 449) -#define __NR_set_mempolicy_home_node (__NR_SYSCALL_BASE + 450) -#endif /* _UAPI_ASM_UNISTD_EABI_H */ +#endif /* _UAPI_ASM_ARM_UNISTD_EABI_H */ diff --git a/original/uapi/asm-arm/asm/unistd-oabi.h b/original/uapi/asm-arm/asm/unistd-oabi.h index 45d0e16..2281bca 100644 --- a/original/uapi/asm-arm/asm/unistd-oabi.h +++ b/original/uapi/asm-arm/asm/unistd-oabi.h @@ -1,420 +1,17 @@ -#ifndef _UAPI_ASM_UNISTD_OABI_H -#define _UAPI_ASM_UNISTD_OABI_H +#ifndef _UAPI_ASM_ARM_UNISTD_OABI_H +#define _UAPI_ASM_ARM_UNISTD_OABI_H 1 -#define __NR_restart_syscall (__NR_SYSCALL_BASE + 0) -#define __NR_exit (__NR_SYSCALL_BASE + 1) -#define __NR_fork (__NR_SYSCALL_BASE + 2) -#define __NR_read (__NR_SYSCALL_BASE + 3) -#define __NR_write (__NR_SYSCALL_BASE + 4) -#define __NR_open (__NR_SYSCALL_BASE + 5) -#define __NR_close (__NR_SYSCALL_BASE + 6) -#define __NR_creat (__NR_SYSCALL_BASE + 8) -#define __NR_link (__NR_SYSCALL_BASE + 9) -#define __NR_unlink (__NR_SYSCALL_BASE + 10) -#define __NR_execve (__NR_SYSCALL_BASE + 11) -#define __NR_chdir (__NR_SYSCALL_BASE + 12) #define __NR_time (__NR_SYSCALL_BASE + 13) -#define __NR_mknod (__NR_SYSCALL_BASE + 14) -#define __NR_chmod (__NR_SYSCALL_BASE + 15) -#define __NR_lchown (__NR_SYSCALL_BASE + 16) -#define __NR_lseek (__NR_SYSCALL_BASE + 19) -#define __NR_getpid (__NR_SYSCALL_BASE + 20) -#define __NR_mount (__NR_SYSCALL_BASE + 21) #define __NR_umount (__NR_SYSCALL_BASE + 22) -#define __NR_setuid (__NR_SYSCALL_BASE + 23) -#define __NR_getuid (__NR_SYSCALL_BASE + 24) #define __NR_stime (__NR_SYSCALL_BASE + 25) -#define __NR_ptrace (__NR_SYSCALL_BASE + 26) #define __NR_alarm (__NR_SYSCALL_BASE + 27) -#define __NR_pause (__NR_SYSCALL_BASE + 29) #define __NR_utime (__NR_SYSCALL_BASE + 30) -#define __NR_access (__NR_SYSCALL_BASE + 33) -#define __NR_nice (__NR_SYSCALL_BASE + 34) -#define __NR_sync (__NR_SYSCALL_BASE + 36) -#define __NR_kill (__NR_SYSCALL_BASE + 37) -#define __NR_rename (__NR_SYSCALL_BASE + 38) -#define __NR_mkdir (__NR_SYSCALL_BASE + 39) -#define __NR_rmdir (__NR_SYSCALL_BASE + 40) -#define __NR_dup (__NR_SYSCALL_BASE + 41) -#define __NR_pipe (__NR_SYSCALL_BASE + 42) -#define __NR_times (__NR_SYSCALL_BASE + 43) -#define __NR_brk (__NR_SYSCALL_BASE + 45) -#define __NR_setgid (__NR_SYSCALL_BASE + 46) -#define __NR_getgid (__NR_SYSCALL_BASE + 47) -#define __NR_geteuid (__NR_SYSCALL_BASE + 49) -#define __NR_getegid (__NR_SYSCALL_BASE + 50) -#define __NR_acct (__NR_SYSCALL_BASE + 51) -#define __NR_umount2 (__NR_SYSCALL_BASE + 52) -#define __NR_ioctl (__NR_SYSCALL_BASE + 54) -#define __NR_fcntl (__NR_SYSCALL_BASE + 55) -#define __NR_setpgid (__NR_SYSCALL_BASE + 57) -#define __NR_umask (__NR_SYSCALL_BASE + 60) -#define __NR_chroot (__NR_SYSCALL_BASE + 61) -#define __NR_ustat (__NR_SYSCALL_BASE + 62) -#define __NR_dup2 (__NR_SYSCALL_BASE + 63) -#define __NR_getppid (__NR_SYSCALL_BASE + 64) -#define __NR_getpgrp (__NR_SYSCALL_BASE + 65) -#define __NR_setsid (__NR_SYSCALL_BASE + 66) -#define __NR_sigaction (__NR_SYSCALL_BASE + 67) -#define __NR_setreuid (__NR_SYSCALL_BASE + 70) -#define __NR_setregid (__NR_SYSCALL_BASE + 71) -#define __NR_sigsuspend (__NR_SYSCALL_BASE + 72) -#define __NR_sigpending (__NR_SYSCALL_BASE + 73) -#define __NR_sethostname (__NR_SYSCALL_BASE + 74) -#define __NR_setrlimit (__NR_SYSCALL_BASE + 75) #define __NR_getrlimit (__NR_SYSCALL_BASE + 76) -#define __NR_getrusage (__NR_SYSCALL_BASE + 77) -#define __NR_gettimeofday (__NR_SYSCALL_BASE + 78) -#define __NR_settimeofday (__NR_SYSCALL_BASE + 79) -#define __NR_getgroups (__NR_SYSCALL_BASE + 80) -#define __NR_setgroups (__NR_SYSCALL_BASE + 81) #define __NR_select (__NR_SYSCALL_BASE + 82) -#define __NR_symlink (__NR_SYSCALL_BASE + 83) -#define __NR_readlink (__NR_SYSCALL_BASE + 85) -#define __NR_uselib (__NR_SYSCALL_BASE + 86) -#define __NR_swapon (__NR_SYSCALL_BASE + 87) -#define __NR_reboot (__NR_SYSCALL_BASE + 88) #define __NR_readdir (__NR_SYSCALL_BASE + 89) #define __NR_mmap (__NR_SYSCALL_BASE + 90) -#define __NR_munmap (__NR_SYSCALL_BASE + 91) -#define __NR_truncate (__NR_SYSCALL_BASE + 92) -#define __NR_ftruncate (__NR_SYSCALL_BASE + 93) -#define __NR_fchmod (__NR_SYSCALL_BASE + 94) -#define __NR_fchown (__NR_SYSCALL_BASE + 95) -#define __NR_getpriority (__NR_SYSCALL_BASE + 96) -#define __NR_setpriority (__NR_SYSCALL_BASE + 97) -#define __NR_statfs (__NR_SYSCALL_BASE + 99) -#define __NR_fstatfs (__NR_SYSCALL_BASE + 100) #define __NR_socketcall (__NR_SYSCALL_BASE + 102) -#define __NR_syslog (__NR_SYSCALL_BASE + 103) -#define __NR_setitimer (__NR_SYSCALL_BASE + 104) -#define __NR_getitimer (__NR_SYSCALL_BASE + 105) -#define __NR_stat (__NR_SYSCALL_BASE + 106) -#define __NR_lstat (__NR_SYSCALL_BASE + 107) -#define __NR_fstat (__NR_SYSCALL_BASE + 108) -#define __NR_vhangup (__NR_SYSCALL_BASE + 111) #define __NR_syscall (__NR_SYSCALL_BASE + 113) -#define __NR_wait4 (__NR_SYSCALL_BASE + 114) -#define __NR_swapoff (__NR_SYSCALL_BASE + 115) -#define __NR_sysinfo (__NR_SYSCALL_BASE + 116) #define __NR_ipc (__NR_SYSCALL_BASE + 117) -#define __NR_fsync (__NR_SYSCALL_BASE + 118) -#define __NR_sigreturn (__NR_SYSCALL_BASE + 119) -#define __NR_clone (__NR_SYSCALL_BASE + 120) -#define __NR_setdomainname (__NR_SYSCALL_BASE + 121) -#define __NR_uname (__NR_SYSCALL_BASE + 122) -#define __NR_adjtimex (__NR_SYSCALL_BASE + 124) -#define __NR_mprotect (__NR_SYSCALL_BASE + 125) -#define __NR_sigprocmask (__NR_SYSCALL_BASE + 126) -#define __NR_init_module (__NR_SYSCALL_BASE + 128) -#define __NR_delete_module (__NR_SYSCALL_BASE + 129) -#define __NR_quotactl (__NR_SYSCALL_BASE + 131) -#define __NR_getpgid (__NR_SYSCALL_BASE + 132) -#define __NR_fchdir (__NR_SYSCALL_BASE + 133) -#define __NR_bdflush (__NR_SYSCALL_BASE + 134) -#define __NR_sysfs (__NR_SYSCALL_BASE + 135) -#define __NR_personality (__NR_SYSCALL_BASE + 136) -#define __NR_setfsuid (__NR_SYSCALL_BASE + 138) -#define __NR_setfsgid (__NR_SYSCALL_BASE + 139) -#define __NR__llseek (__NR_SYSCALL_BASE + 140) -#define __NR_getdents (__NR_SYSCALL_BASE + 141) -#define __NR__newselect (__NR_SYSCALL_BASE + 142) -#define __NR_flock (__NR_SYSCALL_BASE + 143) -#define __NR_msync (__NR_SYSCALL_BASE + 144) -#define __NR_readv (__NR_SYSCALL_BASE + 145) -#define __NR_writev (__NR_SYSCALL_BASE + 146) -#define __NR_getsid (__NR_SYSCALL_BASE + 147) -#define __NR_fdatasync (__NR_SYSCALL_BASE + 148) -#define __NR__sysctl (__NR_SYSCALL_BASE + 149) -#define __NR_mlock (__NR_SYSCALL_BASE + 150) -#define __NR_munlock (__NR_SYSCALL_BASE + 151) -#define __NR_mlockall (__NR_SYSCALL_BASE + 152) -#define __NR_munlockall (__NR_SYSCALL_BASE + 153) -#define __NR_sched_setparam (__NR_SYSCALL_BASE + 154) -#define __NR_sched_getparam (__NR_SYSCALL_BASE + 155) -#define __NR_sched_setscheduler (__NR_SYSCALL_BASE + 156) -#define __NR_sched_getscheduler (__NR_SYSCALL_BASE + 157) -#define __NR_sched_yield (__NR_SYSCALL_BASE + 158) -#define __NR_sched_get_priority_max (__NR_SYSCALL_BASE + 159) -#define __NR_sched_get_priority_min (__NR_SYSCALL_BASE + 160) -#define __NR_sched_rr_get_interval (__NR_SYSCALL_BASE + 161) -#define __NR_nanosleep (__NR_SYSCALL_BASE + 162) -#define __NR_mremap (__NR_SYSCALL_BASE + 163) -#define __NR_setresuid (__NR_SYSCALL_BASE + 164) -#define __NR_getresuid (__NR_SYSCALL_BASE + 165) -#define __NR_poll (__NR_SYSCALL_BASE + 168) -#define __NR_nfsservctl (__NR_SYSCALL_BASE + 169) -#define __NR_setresgid (__NR_SYSCALL_BASE + 170) -#define __NR_getresgid (__NR_SYSCALL_BASE + 171) -#define __NR_prctl (__NR_SYSCALL_BASE + 172) -#define __NR_rt_sigreturn (__NR_SYSCALL_BASE + 173) -#define __NR_rt_sigaction (__NR_SYSCALL_BASE + 174) -#define __NR_rt_sigprocmask (__NR_SYSCALL_BASE + 175) -#define __NR_rt_sigpending (__NR_SYSCALL_BASE + 176) -#define __NR_rt_sigtimedwait (__NR_SYSCALL_BASE + 177) -#define __NR_rt_sigqueueinfo (__NR_SYSCALL_BASE + 178) -#define __NR_rt_sigsuspend (__NR_SYSCALL_BASE + 179) -#define __NR_pread64 (__NR_SYSCALL_BASE + 180) -#define __NR_pwrite64 (__NR_SYSCALL_BASE + 181) -#define __NR_chown (__NR_SYSCALL_BASE + 182) -#define __NR_getcwd (__NR_SYSCALL_BASE + 183) -#define __NR_capget (__NR_SYSCALL_BASE + 184) -#define __NR_capset (__NR_SYSCALL_BASE + 185) -#define __NR_sigaltstack (__NR_SYSCALL_BASE + 186) -#define __NR_sendfile (__NR_SYSCALL_BASE + 187) -#define __NR_vfork (__NR_SYSCALL_BASE + 190) -#define __NR_ugetrlimit (__NR_SYSCALL_BASE + 191) -#define __NR_mmap2 (__NR_SYSCALL_BASE + 192) -#define __NR_truncate64 (__NR_SYSCALL_BASE + 193) -#define __NR_ftruncate64 (__NR_SYSCALL_BASE + 194) -#define __NR_stat64 (__NR_SYSCALL_BASE + 195) -#define __NR_lstat64 (__NR_SYSCALL_BASE + 196) -#define __NR_fstat64 (__NR_SYSCALL_BASE + 197) -#define __NR_lchown32 (__NR_SYSCALL_BASE + 198) -#define __NR_getuid32 (__NR_SYSCALL_BASE + 199) -#define __NR_getgid32 (__NR_SYSCALL_BASE + 200) -#define __NR_geteuid32 (__NR_SYSCALL_BASE + 201) -#define __NR_getegid32 (__NR_SYSCALL_BASE + 202) -#define __NR_setreuid32 (__NR_SYSCALL_BASE + 203) -#define __NR_setregid32 (__NR_SYSCALL_BASE + 204) -#define __NR_getgroups32 (__NR_SYSCALL_BASE + 205) -#define __NR_setgroups32 (__NR_SYSCALL_BASE + 206) -#define __NR_fchown32 (__NR_SYSCALL_BASE + 207) -#define __NR_setresuid32 (__NR_SYSCALL_BASE + 208) -#define __NR_getresuid32 (__NR_SYSCALL_BASE + 209) -#define __NR_setresgid32 (__NR_SYSCALL_BASE + 210) -#define __NR_getresgid32 (__NR_SYSCALL_BASE + 211) -#define __NR_chown32 (__NR_SYSCALL_BASE + 212) -#define __NR_setuid32 (__NR_SYSCALL_BASE + 213) -#define __NR_setgid32 (__NR_SYSCALL_BASE + 214) -#define __NR_setfsuid32 (__NR_SYSCALL_BASE + 215) -#define __NR_setfsgid32 (__NR_SYSCALL_BASE + 216) -#define __NR_getdents64 (__NR_SYSCALL_BASE + 217) -#define __NR_pivot_root (__NR_SYSCALL_BASE + 218) -#define __NR_mincore (__NR_SYSCALL_BASE + 219) -#define __NR_madvise (__NR_SYSCALL_BASE + 220) -#define __NR_fcntl64 (__NR_SYSCALL_BASE + 221) -#define __NR_gettid (__NR_SYSCALL_BASE + 224) -#define __NR_readahead (__NR_SYSCALL_BASE + 225) -#define __NR_setxattr (__NR_SYSCALL_BASE + 226) -#define __NR_lsetxattr (__NR_SYSCALL_BASE + 227) -#define __NR_fsetxattr (__NR_SYSCALL_BASE + 228) -#define __NR_getxattr (__NR_SYSCALL_BASE + 229) -#define __NR_lgetxattr (__NR_SYSCALL_BASE + 230) -#define __NR_fgetxattr (__NR_SYSCALL_BASE + 231) -#define __NR_listxattr (__NR_SYSCALL_BASE + 232) -#define __NR_llistxattr (__NR_SYSCALL_BASE + 233) -#define __NR_flistxattr (__NR_SYSCALL_BASE + 234) -#define __NR_removexattr (__NR_SYSCALL_BASE + 235) -#define __NR_lremovexattr (__NR_SYSCALL_BASE + 236) -#define __NR_fremovexattr (__NR_SYSCALL_BASE + 237) -#define __NR_tkill (__NR_SYSCALL_BASE + 238) -#define __NR_sendfile64 (__NR_SYSCALL_BASE + 239) -#define __NR_futex (__NR_SYSCALL_BASE + 240) -#define __NR_sched_setaffinity (__NR_SYSCALL_BASE + 241) -#define __NR_sched_getaffinity (__NR_SYSCALL_BASE + 242) -#define __NR_io_setup (__NR_SYSCALL_BASE + 243) -#define __NR_io_destroy (__NR_SYSCALL_BASE + 244) -#define __NR_io_getevents (__NR_SYSCALL_BASE + 245) -#define __NR_io_submit (__NR_SYSCALL_BASE + 246) -#define __NR_io_cancel (__NR_SYSCALL_BASE + 247) -#define __NR_exit_group (__NR_SYSCALL_BASE + 248) -#define __NR_lookup_dcookie (__NR_SYSCALL_BASE + 249) -#define __NR_epoll_create (__NR_SYSCALL_BASE + 250) -#define __NR_epoll_ctl (__NR_SYSCALL_BASE + 251) -#define __NR_epoll_wait (__NR_SYSCALL_BASE + 252) -#define __NR_remap_file_pages (__NR_SYSCALL_BASE + 253) -#define __NR_set_tid_address (__NR_SYSCALL_BASE + 256) -#define __NR_timer_create (__NR_SYSCALL_BASE + 257) -#define __NR_timer_settime (__NR_SYSCALL_BASE + 258) -#define __NR_timer_gettime (__NR_SYSCALL_BASE + 259) -#define __NR_timer_getoverrun (__NR_SYSCALL_BASE + 260) -#define __NR_timer_delete (__NR_SYSCALL_BASE + 261) -#define __NR_clock_settime (__NR_SYSCALL_BASE + 262) -#define __NR_clock_gettime (__NR_SYSCALL_BASE + 263) -#define __NR_clock_getres (__NR_SYSCALL_BASE + 264) -#define __NR_clock_nanosleep (__NR_SYSCALL_BASE + 265) -#define __NR_statfs64 (__NR_SYSCALL_BASE + 266) -#define __NR_fstatfs64 (__NR_SYSCALL_BASE + 267) -#define __NR_tgkill (__NR_SYSCALL_BASE + 268) -#define __NR_utimes (__NR_SYSCALL_BASE + 269) -#define __NR_arm_fadvise64_64 (__NR_SYSCALL_BASE + 270) -#define __NR_pciconfig_iobase (__NR_SYSCALL_BASE + 271) -#define __NR_pciconfig_read (__NR_SYSCALL_BASE + 272) -#define __NR_pciconfig_write (__NR_SYSCALL_BASE + 273) -#define __NR_mq_open (__NR_SYSCALL_BASE + 274) -#define __NR_mq_unlink (__NR_SYSCALL_BASE + 275) -#define __NR_mq_timedsend (__NR_SYSCALL_BASE + 276) -#define __NR_mq_timedreceive (__NR_SYSCALL_BASE + 277) -#define __NR_mq_notify (__NR_SYSCALL_BASE + 278) -#define __NR_mq_getsetattr (__NR_SYSCALL_BASE + 279) -#define __NR_waitid (__NR_SYSCALL_BASE + 280) -#define __NR_socket (__NR_SYSCALL_BASE + 281) -#define __NR_bind (__NR_SYSCALL_BASE + 282) -#define __NR_connect (__NR_SYSCALL_BASE + 283) -#define __NR_listen (__NR_SYSCALL_BASE + 284) -#define __NR_accept (__NR_SYSCALL_BASE + 285) -#define __NR_getsockname (__NR_SYSCALL_BASE + 286) -#define __NR_getpeername (__NR_SYSCALL_BASE + 287) -#define __NR_socketpair (__NR_SYSCALL_BASE + 288) -#define __NR_send (__NR_SYSCALL_BASE + 289) -#define __NR_sendto (__NR_SYSCALL_BASE + 290) -#define __NR_recv (__NR_SYSCALL_BASE + 291) -#define __NR_recvfrom (__NR_SYSCALL_BASE + 292) -#define __NR_shutdown (__NR_SYSCALL_BASE + 293) -#define __NR_setsockopt (__NR_SYSCALL_BASE + 294) -#define __NR_getsockopt (__NR_SYSCALL_BASE + 295) -#define __NR_sendmsg (__NR_SYSCALL_BASE + 296) -#define __NR_recvmsg (__NR_SYSCALL_BASE + 297) -#define __NR_semop (__NR_SYSCALL_BASE + 298) -#define __NR_semget (__NR_SYSCALL_BASE + 299) -#define __NR_semctl (__NR_SYSCALL_BASE + 300) -#define __NR_msgsnd (__NR_SYSCALL_BASE + 301) -#define __NR_msgrcv (__NR_SYSCALL_BASE + 302) -#define __NR_msgget (__NR_SYSCALL_BASE + 303) -#define __NR_msgctl (__NR_SYSCALL_BASE + 304) -#define __NR_shmat (__NR_SYSCALL_BASE + 305) -#define __NR_shmdt (__NR_SYSCALL_BASE + 306) -#define __NR_shmget (__NR_SYSCALL_BASE + 307) -#define __NR_shmctl (__NR_SYSCALL_BASE + 308) -#define __NR_add_key (__NR_SYSCALL_BASE + 309) -#define __NR_request_key (__NR_SYSCALL_BASE + 310) -#define __NR_keyctl (__NR_SYSCALL_BASE + 311) -#define __NR_semtimedop (__NR_SYSCALL_BASE + 312) -#define __NR_vserver (__NR_SYSCALL_BASE + 313) -#define __NR_ioprio_set (__NR_SYSCALL_BASE + 314) -#define __NR_ioprio_get (__NR_SYSCALL_BASE + 315) -#define __NR_inotify_init (__NR_SYSCALL_BASE + 316) -#define __NR_inotify_add_watch (__NR_SYSCALL_BASE + 317) -#define __NR_inotify_rm_watch (__NR_SYSCALL_BASE + 318) -#define __NR_mbind (__NR_SYSCALL_BASE + 319) -#define __NR_get_mempolicy (__NR_SYSCALL_BASE + 320) -#define __NR_set_mempolicy (__NR_SYSCALL_BASE + 321) -#define __NR_openat (__NR_SYSCALL_BASE + 322) -#define __NR_mkdirat (__NR_SYSCALL_BASE + 323) -#define __NR_mknodat (__NR_SYSCALL_BASE + 324) -#define __NR_fchownat (__NR_SYSCALL_BASE + 325) -#define __NR_futimesat (__NR_SYSCALL_BASE + 326) -#define __NR_fstatat64 (__NR_SYSCALL_BASE + 327) -#define __NR_unlinkat (__NR_SYSCALL_BASE + 328) -#define __NR_renameat (__NR_SYSCALL_BASE + 329) -#define __NR_linkat (__NR_SYSCALL_BASE + 330) -#define __NR_symlinkat (__NR_SYSCALL_BASE + 331) -#define __NR_readlinkat (__NR_SYSCALL_BASE + 332) -#define __NR_fchmodat (__NR_SYSCALL_BASE + 333) -#define __NR_faccessat (__NR_SYSCALL_BASE + 334) -#define __NR_pselect6 (__NR_SYSCALL_BASE + 335) -#define __NR_ppoll (__NR_SYSCALL_BASE + 336) -#define __NR_unshare (__NR_SYSCALL_BASE + 337) -#define __NR_set_robust_list (__NR_SYSCALL_BASE + 338) -#define __NR_get_robust_list (__NR_SYSCALL_BASE + 339) -#define __NR_splice (__NR_SYSCALL_BASE + 340) -#define __NR_arm_sync_file_range (__NR_SYSCALL_BASE + 341) -#define __NR_tee (__NR_SYSCALL_BASE + 342) -#define __NR_vmsplice (__NR_SYSCALL_BASE + 343) -#define __NR_move_pages (__NR_SYSCALL_BASE + 344) -#define __NR_getcpu (__NR_SYSCALL_BASE + 345) -#define __NR_epoll_pwait (__NR_SYSCALL_BASE + 346) -#define __NR_kexec_load (__NR_SYSCALL_BASE + 347) -#define __NR_utimensat (__NR_SYSCALL_BASE + 348) -#define __NR_signalfd (__NR_SYSCALL_BASE + 349) -#define __NR_timerfd_create (__NR_SYSCALL_BASE + 350) -#define __NR_eventfd (__NR_SYSCALL_BASE + 351) -#define __NR_fallocate (__NR_SYSCALL_BASE + 352) -#define __NR_timerfd_settime (__NR_SYSCALL_BASE + 353) -#define __NR_timerfd_gettime (__NR_SYSCALL_BASE + 354) -#define __NR_signalfd4 (__NR_SYSCALL_BASE + 355) -#define __NR_eventfd2 (__NR_SYSCALL_BASE + 356) -#define __NR_epoll_create1 (__NR_SYSCALL_BASE + 357) -#define __NR_dup3 (__NR_SYSCALL_BASE + 358) -#define __NR_pipe2 (__NR_SYSCALL_BASE + 359) -#define __NR_inotify_init1 (__NR_SYSCALL_BASE + 360) -#define __NR_preadv (__NR_SYSCALL_BASE + 361) -#define __NR_pwritev (__NR_SYSCALL_BASE + 362) -#define __NR_rt_tgsigqueueinfo (__NR_SYSCALL_BASE + 363) -#define __NR_perf_event_open (__NR_SYSCALL_BASE + 364) -#define __NR_recvmmsg (__NR_SYSCALL_BASE + 365) -#define __NR_accept4 (__NR_SYSCALL_BASE + 366) -#define __NR_fanotify_init (__NR_SYSCALL_BASE + 367) -#define __NR_fanotify_mark (__NR_SYSCALL_BASE + 368) -#define __NR_prlimit64 (__NR_SYSCALL_BASE + 369) -#define __NR_name_to_handle_at (__NR_SYSCALL_BASE + 370) -#define __NR_open_by_handle_at (__NR_SYSCALL_BASE + 371) -#define __NR_clock_adjtime (__NR_SYSCALL_BASE + 372) -#define __NR_syncfs (__NR_SYSCALL_BASE + 373) -#define __NR_sendmmsg (__NR_SYSCALL_BASE + 374) -#define __NR_setns (__NR_SYSCALL_BASE + 375) -#define __NR_process_vm_readv (__NR_SYSCALL_BASE + 376) -#define __NR_process_vm_writev (__NR_SYSCALL_BASE + 377) -#define __NR_kcmp (__NR_SYSCALL_BASE + 378) -#define __NR_finit_module (__NR_SYSCALL_BASE + 379) -#define __NR_sched_setattr (__NR_SYSCALL_BASE + 380) -#define __NR_sched_getattr (__NR_SYSCALL_BASE + 381) -#define __NR_renameat2 (__NR_SYSCALL_BASE + 382) -#define __NR_seccomp (__NR_SYSCALL_BASE + 383) -#define __NR_getrandom (__NR_SYSCALL_BASE + 384) -#define __NR_memfd_create (__NR_SYSCALL_BASE + 385) -#define __NR_bpf (__NR_SYSCALL_BASE + 386) -#define __NR_execveat (__NR_SYSCALL_BASE + 387) -#define __NR_userfaultfd (__NR_SYSCALL_BASE + 388) -#define __NR_membarrier (__NR_SYSCALL_BASE + 389) -#define __NR_mlock2 (__NR_SYSCALL_BASE + 390) -#define __NR_copy_file_range (__NR_SYSCALL_BASE + 391) -#define __NR_preadv2 (__NR_SYSCALL_BASE + 392) -#define __NR_pwritev2 (__NR_SYSCALL_BASE + 393) -#define __NR_pkey_mprotect (__NR_SYSCALL_BASE + 394) -#define __NR_pkey_alloc (__NR_SYSCALL_BASE + 395) -#define __NR_pkey_free (__NR_SYSCALL_BASE + 396) -#define __NR_statx (__NR_SYSCALL_BASE + 397) -#define __NR_rseq (__NR_SYSCALL_BASE + 398) -#define __NR_io_pgetevents (__NR_SYSCALL_BASE + 399) -#define __NR_migrate_pages (__NR_SYSCALL_BASE + 400) -#define __NR_kexec_file_load (__NR_SYSCALL_BASE + 401) -#define __NR_clock_gettime64 (__NR_SYSCALL_BASE + 403) -#define __NR_clock_settime64 (__NR_SYSCALL_BASE + 404) -#define __NR_clock_adjtime64 (__NR_SYSCALL_BASE + 405) -#define __NR_clock_getres_time64 (__NR_SYSCALL_BASE + 406) -#define __NR_clock_nanosleep_time64 (__NR_SYSCALL_BASE + 407) -#define __NR_timer_gettime64 (__NR_SYSCALL_BASE + 408) -#define __NR_timer_settime64 (__NR_SYSCALL_BASE + 409) -#define __NR_timerfd_gettime64 (__NR_SYSCALL_BASE + 410) -#define __NR_timerfd_settime64 (__NR_SYSCALL_BASE + 411) -#define __NR_utimensat_time64 (__NR_SYSCALL_BASE + 412) -#define __NR_pselect6_time64 (__NR_SYSCALL_BASE + 413) -#define __NR_ppoll_time64 (__NR_SYSCALL_BASE + 414) -#define __NR_io_pgetevents_time64 (__NR_SYSCALL_BASE + 416) -#define __NR_recvmmsg_time64 (__NR_SYSCALL_BASE + 417) -#define __NR_mq_timedsend_time64 (__NR_SYSCALL_BASE + 418) -#define __NR_mq_timedreceive_time64 (__NR_SYSCALL_BASE + 419) -#define __NR_semtimedop_time64 (__NR_SYSCALL_BASE + 420) -#define __NR_rt_sigtimedwait_time64 (__NR_SYSCALL_BASE + 421) -#define __NR_futex_time64 (__NR_SYSCALL_BASE + 422) -#define __NR_sched_rr_get_interval_time64 (__NR_SYSCALL_BASE + 423) -#define __NR_pidfd_send_signal (__NR_SYSCALL_BASE + 424) -#define __NR_io_uring_setup (__NR_SYSCALL_BASE + 425) -#define __NR_io_uring_enter (__NR_SYSCALL_BASE + 426) -#define __NR_io_uring_register (__NR_SYSCALL_BASE + 427) -#define __NR_open_tree (__NR_SYSCALL_BASE + 428) -#define __NR_move_mount (__NR_SYSCALL_BASE + 429) -#define __NR_fsopen (__NR_SYSCALL_BASE + 430) -#define __NR_fsconfig (__NR_SYSCALL_BASE + 431) -#define __NR_fsmount (__NR_SYSCALL_BASE + 432) -#define __NR_fspick (__NR_SYSCALL_BASE + 433) -#define __NR_pidfd_open (__NR_SYSCALL_BASE + 434) -#define __NR_clone3 (__NR_SYSCALL_BASE + 435) -#define __NR_close_range (__NR_SYSCALL_BASE + 436) -#define __NR_openat2 (__NR_SYSCALL_BASE + 437) -#define __NR_pidfd_getfd (__NR_SYSCALL_BASE + 438) -#define __NR_faccessat2 (__NR_SYSCALL_BASE + 439) -#define __NR_process_madvise (__NR_SYSCALL_BASE + 440) -#define __NR_epoll_pwait2 (__NR_SYSCALL_BASE + 441) -#define __NR_mount_setattr (__NR_SYSCALL_BASE + 442) -#define __NR_quotactl_fd (__NR_SYSCALL_BASE + 443) -#define __NR_landlock_create_ruleset (__NR_SYSCALL_BASE + 444) -#define __NR_landlock_add_rule (__NR_SYSCALL_BASE + 445) -#define __NR_landlock_restrict_self (__NR_SYSCALL_BASE + 446) -#define __NR_process_mrelease (__NR_SYSCALL_BASE + 448) -#define __NR_futex_waitv (__NR_SYSCALL_BASE + 449) -#define __NR_set_mempolicy_home_node (__NR_SYSCALL_BASE + 450) -#endif /* _UAPI_ASM_UNISTD_OABI_H */ +#endif /* _UAPI_ASM_ARM_UNISTD_OABI_H */ diff --git a/original/uapi/asm-arm/asm/unistd.h b/original/uapi/asm-arm/asm/unistd.h index a114991..93ecf8a 100644 --- a/original/uapi/asm-arm/asm/unistd.h +++ b/original/uapi/asm-arm/asm/unistd.h @@ -15,7 +15,6 @@ #define _UAPI__ASM_ARM_UNISTD_H #define __NR_OABI_SYSCALL_BASE 0x900000 -#define __NR_SYSCALL_MASK 0x0fffff #if defined(__thumb__) || defined(__ARM_EABI__) #define __NR_SYSCALL_BASE 0 @@ -25,6 +24,7 @@ #include <asm/unistd-oabi.h> #endif +#include <asm/unistd-common.h> #define __NR_sync_file_range2 __NR_arm_sync_file_range /* diff --git a/original/uapi/asm-arm64/asm/hwcap.h b/original/uapi/asm-arm64/asm/hwcap.h index f037318..b8f41aa 100644 --- a/original/uapi/asm-arm64/asm/hwcap.h +++ b/original/uapi/asm-arm64/asm/hwcap.h @@ -75,8 +75,5 @@ #define HWCAP2_RNG (1 << 16) #define HWCAP2_BTI (1 << 17) #define HWCAP2_MTE (1 << 18) -#define HWCAP2_ECV (1 << 19) -#define HWCAP2_AFP (1 << 20) -#define HWCAP2_RPRES (1 << 21) #endif /* _UAPI__ASM_HWCAP_H */ diff --git a/original/uapi/asm-arm64/asm/kvm.h b/original/uapi/asm-arm64/asm/kvm.h index 323e251..24223ad 100644 --- a/original/uapi/asm-arm64/asm/kvm.h +++ b/original/uapi/asm-arm64/asm/kvm.h @@ -184,17 +184,6 @@ struct kvm_vcpu_events { __u32 reserved[12]; }; -struct kvm_arm_copy_mte_tags { - __u64 guest_ipa; - __u64 length; - void __user *addr; - __u64 flags; - __u64 reserved[2]; -}; - -#define KVM_ARM_TAGS_TO_GUEST 0 -#define KVM_ARM_TAGS_FROM_GUEST 1 - /* If you need to interpret the index values, here is the key: */ #define KVM_REG_ARM_COPROC_MASK 0x000000000FFF0000 #define KVM_REG_ARM_COPROC_SHIFT 16 @@ -281,11 +270,6 @@ struct kvm_arm_copy_mte_tags { #define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_2_NOT_REQUIRED 3 #define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_2_ENABLED (1U << 4) -#define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_3 KVM_REG_ARM_FW_REG(3) -#define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_3_NOT_AVAIL 0 -#define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_3_AVAIL 1 -#define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_3_NOT_REQUIRED 2 - /* SVE registers */ #define KVM_REG_ARM64_SVE (0x15 << KVM_REG_ARM_COPROC_SHIFT) diff --git a/original/uapi/asm-arm64/asm/unistd.h b/original/uapi/asm-arm64/asm/unistd.h index ce2ee8f..f83a70e 100644 --- a/original/uapi/asm-arm64/asm/unistd.h +++ b/original/uapi/asm-arm64/asm/unistd.h @@ -20,6 +20,5 @@ #define __ARCH_WANT_SET_GET_RLIMIT #define __ARCH_WANT_TIME32_SYSCALLS #define __ARCH_WANT_SYS_CLONE3 -#define __ARCH_WANT_MEMFD_SECRET #include <asm-generic/unistd.h> diff --git a/original/uapi/asm-generic/fcntl.h b/original/uapi/asm-generic/fcntl.h index ecd0f5b..9dc0bf0 100644 --- a/original/uapi/asm-generic/fcntl.h +++ b/original/uapi/asm-generic/fcntl.h @@ -181,10 +181,6 @@ struct f_owner_ex { blocking */ #define LOCK_UN 8 /* remove lock */ -/* - * LOCK_MAND support has been removed from the kernel. We leave the symbols - * here to not break legacy builds, but these should not be used in new code. - */ #define LOCK_MAND 32 /* This is a mandatory flock ... */ #define LOCK_READ 64 /* which allows concurrent read operations */ #define LOCK_WRITE 128 /* which allows concurrent write operations */ diff --git a/original/uapi/asm-generic/mman-common.h b/original/uapi/asm-generic/mman-common.h index 1567a32..f94f65d 100644 --- a/original/uapi/asm-generic/mman-common.h +++ b/original/uapi/asm-generic/mman-common.h @@ -72,9 +72,6 @@ #define MADV_COLD 20 /* deactivate these pages */ #define MADV_PAGEOUT 21 /* reclaim these pages */ -#define MADV_POPULATE_READ 22 /* populate (prefault) page tables readable */ -#define MADV_POPULATE_WRITE 23 /* populate (prefault) page tables writable */ - /* compatibility flags */ #define MAP_FILE 0 diff --git a/original/uapi/asm-generic/poll.h b/original/uapi/asm-generic/poll.h index f9c520c..41b509f 100644 --- a/original/uapi/asm-generic/poll.h +++ b/original/uapi/asm-generic/poll.h @@ -29,7 +29,7 @@ #define POLLRDHUP 0x2000 #endif -#define POLLFREE (__force __poll_t)0x4000 +#define POLLFREE (__force __poll_t)0x4000 /* currently only for epoll */ #define POLL_BUSY_LOOP (__force __poll_t)0x8000 diff --git a/original/uapi/asm-generic/siginfo.h b/original/uapi/asm-generic/siginfo.h index 3ba180f..d259700 100644 --- a/original/uapi/asm-generic/siginfo.h +++ b/original/uapi/asm-generic/siginfo.h @@ -29,11 +29,6 @@ typedef union sigval { #define __ARCH_SI_ATTRIBUTES #endif -/* - * Be careful when extending this union. On 32bit siginfo_t is 32bit - * aligned. Which means that a 64bit field or any other field that - * would increase the alignment of siginfo_t will break the ABI. - */ union __sifields { /* kill() */ struct { @@ -68,6 +63,9 @@ union __sifields { /* SIGILL, SIGFPE, SIGSEGV, SIGBUS, SIGTRAP, SIGEMT */ struct { void __user *_addr; /* faulting insn/memory ref. */ +#ifdef __ARCH_SI_TRAPNO + int _trapno; /* TRAP # which caused the signal */ +#endif #ifdef __ia64__ int _imm; /* immediate value for "break" */ unsigned int _flags; /* see ia64 si_flags */ @@ -77,8 +75,6 @@ union __sifields { #define __ADDR_BND_PKEY_PAD (__alignof__(void *) < sizeof(short) ? \ sizeof(short) : __alignof__(void *)) union { - /* used on alpha and sparc */ - int _trapno; /* TRAP # which caused the signal */ /* * used when si_code=BUS_MCEERR_AR or * used when si_code=BUS_MCEERR_AO @@ -95,11 +91,6 @@ union __sifields { char _dummy_pkey[__ADDR_BND_PKEY_PAD]; __u32 _pkey; } _addr_pkey; - /* used when si_code=TRAP_PERF */ - struct { - unsigned long _data; - __u32 _type; - } _perf; }; } _sigfault; @@ -157,13 +148,13 @@ typedef struct siginfo { #define si_int _sifields._rt._sigval.sival_int #define si_ptr _sifields._rt._sigval.sival_ptr #define si_addr _sifields._sigfault._addr +#ifdef __ARCH_SI_TRAPNO #define si_trapno _sifields._sigfault._trapno +#endif #define si_addr_lsb _sifields._sigfault._addr_lsb #define si_lower _sifields._sigfault._addr_bnd._lower #define si_upper _sifields._sigfault._addr_bnd._upper #define si_pkey _sifields._sigfault._addr_pkey._pkey -#define si_perf_data _sifields._sigfault._perf._data -#define si_perf_type _sifields._sigfault._perf._type #define si_band _sifields._sigpoll._band #define si_fd _sifields._sigpoll._fd #define si_call_addr _sifields._sigsys._call_addr @@ -262,8 +253,7 @@ typedef struct siginfo { #define TRAP_BRANCH 3 /* process taken branch trap */ #define TRAP_HWBKPT 4 /* hardware breakpoint/watchpoint */ #define TRAP_UNK 5 /* undiagnosed trap */ -#define TRAP_PERF 6 /* perf event with sigtrap=1 */ -#define NSIGTRAP 6 +#define NSIGTRAP 5 /* * There is an additional set of SIGTRAP si_codes used by ptrace diff --git a/original/uapi/asm-generic/signal-defs.h b/original/uapi/asm-generic/signal-defs.h index 7572f2f..fe929e7 100644 --- a/original/uapi/asm-generic/signal-defs.h +++ b/original/uapi/asm-generic/signal-defs.h @@ -45,7 +45,6 @@ #define SA_UNSUPPORTED 0x00000400 #define SA_EXPOSE_TAGBITS 0x00000800 /* 0x00010000 used on mips */ -/* 0x00800000 used for internal SA_IMMUTABLE */ /* 0x01000000 used on x86 */ /* 0x02000000 used on x86 */ /* diff --git a/original/uapi/asm-generic/socket.h b/original/uapi/asm-generic/socket.h index c77a131..4dcd13d 100644 --- a/original/uapi/asm-generic/socket.h +++ b/original/uapi/asm-generic/socket.h @@ -122,12 +122,6 @@ #define SO_PREFER_BUSY_POLL 69 #define SO_BUSY_POLL_BUDGET 70 -#define SO_NETNS_COOKIE 71 - -#define SO_BUF_LOCK 72 - -#define SO_RESERVE_MEM 73 - #if !defined(__KERNEL__) #if __BITS_PER_LONG == 64 || (defined(__x86_64__) && defined(__ILP32__)) diff --git a/original/uapi/asm-generic/unistd.h b/original/uapi/asm-generic/unistd.h index 1c48b0a..ce58cff 100644 --- a/original/uapi/asm-generic/unistd.h +++ b/original/uapi/asm-generic/unistd.h @@ -673,15 +673,15 @@ __SYSCALL(__NR_madvise, sys_madvise) #define __NR_remap_file_pages 234 __SYSCALL(__NR_remap_file_pages, sys_remap_file_pages) #define __NR_mbind 235 -__SYSCALL(__NR_mbind, sys_mbind) +__SC_COMP(__NR_mbind, sys_mbind, compat_sys_mbind) #define __NR_get_mempolicy 236 -__SYSCALL(__NR_get_mempolicy, sys_get_mempolicy) +__SC_COMP(__NR_get_mempolicy, sys_get_mempolicy, compat_sys_get_mempolicy) #define __NR_set_mempolicy 237 -__SYSCALL(__NR_set_mempolicy, sys_set_mempolicy) +__SC_COMP(__NR_set_mempolicy, sys_set_mempolicy, compat_sys_set_mempolicy) #define __NR_migrate_pages 238 -__SYSCALL(__NR_migrate_pages, sys_migrate_pages) +__SC_COMP(__NR_migrate_pages, sys_migrate_pages, compat_sys_migrate_pages) #define __NR_move_pages 239 -__SYSCALL(__NR_move_pages, sys_move_pages) +__SC_COMP(__NR_move_pages, sys_move_pages, compat_sys_move_pages) #endif #define __NR_rt_tgsigqueueinfo 240 @@ -863,31 +863,9 @@ __SYSCALL(__NR_process_madvise, sys_process_madvise) __SC_COMP(__NR_epoll_pwait2, sys_epoll_pwait2, compat_sys_epoll_pwait2) #define __NR_mount_setattr 442 __SYSCALL(__NR_mount_setattr, sys_mount_setattr) -#define __NR_quotactl_fd 443 -__SYSCALL(__NR_quotactl_fd, sys_quotactl_fd) - -#define __NR_landlock_create_ruleset 444 -__SYSCALL(__NR_landlock_create_ruleset, sys_landlock_create_ruleset) -#define __NR_landlock_add_rule 445 -__SYSCALL(__NR_landlock_add_rule, sys_landlock_add_rule) -#define __NR_landlock_restrict_self 446 -__SYSCALL(__NR_landlock_restrict_self, sys_landlock_restrict_self) - -#ifdef __ARCH_WANT_MEMFD_SECRET -#define __NR_memfd_secret 447 -__SYSCALL(__NR_memfd_secret, sys_memfd_secret) -#endif -#define __NR_process_mrelease 448 -__SYSCALL(__NR_process_mrelease, sys_process_mrelease) - -#define __NR_futex_waitv 449 -__SYSCALL(__NR_futex_waitv, sys_futex_waitv) - -#define __NR_set_mempolicy_home_node 450 -__SYSCALL(__NR_set_mempolicy_home_node, sys_set_mempolicy_home_node) #undef __NR_syscalls -#define __NR_syscalls 451 +#define __NR_syscalls 443 /* * 32 bit systems traditionally used different diff --git a/original/uapi/asm-x86/asm/auxvec.h b/original/uapi/asm-x86/asm/auxvec.h index 6beb55b..580e3c5 100644 --- a/original/uapi/asm-x86/asm/auxvec.h +++ b/original/uapi/asm-x86/asm/auxvec.h @@ -12,9 +12,9 @@ /* entries in ARCH_DLINFO: */ #if defined(CONFIG_IA32_EMULATION) || !defined(CONFIG_X86_64) -# define AT_VECTOR_SIZE_ARCH 3 -#else /* else it's non-compat x86-64 */ # define AT_VECTOR_SIZE_ARCH 2 +#else /* else it's non-compat x86-64 */ +# define AT_VECTOR_SIZE_ARCH 1 #endif #endif /* _ASM_X86_AUXVEC_H */ diff --git a/original/uapi/asm-x86/asm/bootparam.h b/original/uapi/asm-x86/asm/bootparam.h index b25d3f8..600a141 100644 --- a/original/uapi/asm-x86/asm/bootparam.h +++ b/original/uapi/asm-x86/asm/bootparam.h @@ -234,7 +234,7 @@ struct boot_params { * handling of page tables. * * These enums should only ever be used by x86 code, and the code that uses - * it should be well contained and compartmentalized. + * it should be well contained and compartamentalized. * * KVM and Xen HVM do not have a subarch as these are expected to follow * standard x86 boot entries. If there is a genuine need for "hypervisor" type @@ -252,7 +252,7 @@ struct boot_params { * @X86_SUBARCH_XEN: Used for Xen guest types which follow the PV boot path, * which start at asm startup_xen() entry point and later jump to the C * xen_start_kernel() entry point. Both domU and dom0 type of guests are - * currently supported through this PV boot path. + * currently supportd through this PV boot path. * @X86_SUBARCH_INTEL_MID: Used for Intel MID (Mobile Internet Device) platform * systems which do not have the PCI legacy interfaces. * @X86_SUBARCH_CE4100: Used for Intel CE media processor (CE4100) SoC diff --git a/original/uapi/asm-x86/asm/debugreg.h b/original/uapi/asm-x86/asm/debugreg.h index 0007ba0..d95d080 100644 --- a/original/uapi/asm-x86/asm/debugreg.h +++ b/original/uapi/asm-x86/asm/debugreg.h @@ -24,7 +24,6 @@ #define DR_TRAP3 (0x8) /* db3 */ #define DR_TRAP_BITS (DR_TRAP0|DR_TRAP1|DR_TRAP2|DR_TRAP3) -#define DR_BUS_LOCK (0x800) /* bus_lock */ #define DR_STEP (0x4000) /* single-step */ #define DR_SWITCH (0x8000) /* task switch */ diff --git a/original/uapi/asm-x86/asm/hwcap2.h b/original/uapi/asm-x86/asm/hwcap2.h index 054604a..5fdfcb4 100644 --- a/original/uapi/asm-x86/asm/hwcap2.h +++ b/original/uapi/asm-x86/asm/hwcap2.h @@ -2,12 +2,10 @@ #ifndef _ASM_X86_HWCAP2_H #define _ASM_X86_HWCAP2_H -#include <linux/const.h> - /* MONITOR/MWAIT enabled in Ring 3 */ -#define HWCAP2_RING3MWAIT _BITUL(0) +#define HWCAP2_RING3MWAIT (1 << 0) /* Kernel allows FSGSBASE instructions available in Ring 3 */ -#define HWCAP2_FSGSBASE _BITUL(1) +#define HWCAP2_FSGSBASE BIT(1) #endif diff --git a/original/uapi/asm-x86/asm/kvm.h b/original/uapi/asm-x86/asm/kvm.h index bf6e960..5a3022c 100644 --- a/original/uapi/asm-x86/asm/kvm.h +++ b/original/uapi/asm-x86/asm/kvm.h @@ -159,19 +159,6 @@ struct kvm_sregs { __u64 interrupt_bitmap[(KVM_NR_INTERRUPTS + 63) / 64]; }; -struct kvm_sregs2 { - /* out (KVM_GET_SREGS2) / in (KVM_SET_SREGS2) */ - struct kvm_segment cs, ds, es, fs, gs, ss; - struct kvm_segment tr, ldt; - struct kvm_dtable gdt, idt; - __u64 cr0, cr2, cr3, cr4, cr8; - __u64 efer; - __u64 apic_base; - __u64 flags; - __u64 pdptrs[4]; -}; -#define KVM_SREGS2_FLAGS_PDPTRS_VALID 1 - /* for KVM_GET_FPU and KVM_SET_FPU */ struct kvm_fpu { __u8 fpr[8][16]; @@ -295,7 +282,6 @@ struct kvm_debug_exit_arch { #define KVM_GUESTDBG_USE_HW_BP 0x00020000 #define KVM_GUESTDBG_INJECT_DB 0x00040000 #define KVM_GUESTDBG_INJECT_BP 0x00080000 -#define KVM_GUESTDBG_BLOCKIRQ 0x00100000 /* for KVM_SET_GUEST_DEBUG */ struct kvm_guest_debug_arch { @@ -373,23 +359,9 @@ struct kvm_debugregs { __u64 reserved[9]; }; -/* for KVM_CAP_XSAVE and KVM_CAP_XSAVE2 */ +/* for KVM_CAP_XSAVE */ struct kvm_xsave { - /* - * KVM_GET_XSAVE2 and KVM_SET_XSAVE write and read as many bytes - * as are returned by KVM_CHECK_EXTENSION(KVM_CAP_XSAVE2) - * respectively, when invoked on the vm file descriptor. - * - * The size value returned by KVM_CHECK_EXTENSION(KVM_CAP_XSAVE2) - * will always be at least 4096. Currently, it is only greater - * than 4096 if a dynamic feature has been enabled with - * ``arch_prctl()``, but this may change in the future. - * - * The offsets of the state save areas in struct kvm_xsave follow - * the contents of CPUID leaf 0xD on the host. - */ __u32 region[1024]; - __u32 extra[0]; }; #define KVM_MAX_XCRS 16 @@ -452,9 +424,6 @@ struct kvm_sync_regs { #define KVM_STATE_VMX_PREEMPTION_TIMER_DEADLINE 0x00000001 -/* attributes for system fd (group 0) */ -#define KVM_X86_XCOMP_GUEST_SUPP 0 - struct kvm_vmx_nested_state_data { __u8 vmcs12[KVM_STATE_NESTED_VMX_VMCS_SIZE]; __u8 shadow_vmcs12[KVM_STATE_NESTED_VMX_VMCS_SIZE]; @@ -468,8 +437,6 @@ struct kvm_vmx_nested_state_hdr { __u16 flags; } smm; - __u16 pad; - __u32 flags; __u64 preemption_timer_deadline; }; @@ -521,8 +488,4 @@ struct kvm_pmu_event_filter { #define KVM_PMU_EVENT_ALLOW 0 #define KVM_PMU_EVENT_DENY 1 -/* for KVM_{GET,SET,HAS}_DEVICE_ATTR */ -#define KVM_VCPU_TSC_CTRL 0 /* control group for the timestamp counter (TSC) */ -#define KVM_VCPU_TSC_OFFSET 0 /* attribute for the TSC offset */ - #endif /* _ASM_X86_KVM_H */ diff --git a/original/uapi/asm-x86/asm/kvm_para.h b/original/uapi/asm-x86/asm/kvm_para.h index 6e64b27..950afeb 100644 --- a/original/uapi/asm-x86/asm/kvm_para.h +++ b/original/uapi/asm-x86/asm/kvm_para.h @@ -8,7 +8,6 @@ * should be used to determine that a VM is running under KVM. */ #define KVM_CPUID_SIGNATURE 0x40000000 -#define KVM_SIGNATURE "KVMKVMKVM\0\0\0" /* This CPUID returns two feature bitmaps in eax, edx. Before enabling * a particular paravirtualization, the appropriate feature bit should @@ -34,8 +33,6 @@ #define KVM_FEATURE_PV_SCHED_YIELD 13 #define KVM_FEATURE_ASYNC_PF_INT 14 #define KVM_FEATURE_MSI_EXT_DEST_ID 15 -#define KVM_FEATURE_HC_MAP_GPA_RANGE 16 -#define KVM_FEATURE_MIGRATION_CONTROL 17 #define KVM_HINTS_REALTIME 0 @@ -57,7 +54,6 @@ #define MSR_KVM_POLL_CONTROL 0x4b564d05 #define MSR_KVM_ASYNC_PF_INT 0x4b564d06 #define MSR_KVM_ASYNC_PF_ACK 0x4b564d07 -#define MSR_KVM_MIGRATION_CONTROL 0x4b564d08 struct kvm_steal_time { __u64 steal; @@ -94,16 +90,6 @@ struct kvm_clock_pairing { /* MSR_KVM_ASYNC_PF_INT */ #define KVM_ASYNC_PF_VEC_MASK GENMASK(7, 0) -/* MSR_KVM_MIGRATION_CONTROL */ -#define KVM_MIGRATION_READY (1 << 0) - -/* KVM_HC_MAP_GPA_RANGE */ -#define KVM_MAP_GPA_RANGE_PAGE_SZ_4K 0 -#define KVM_MAP_GPA_RANGE_PAGE_SZ_2M (1 << 0) -#define KVM_MAP_GPA_RANGE_PAGE_SZ_1G (1 << 1) -#define KVM_MAP_GPA_RANGE_ENC_STAT(n) (n << 4) -#define KVM_MAP_GPA_RANGE_ENCRYPTED KVM_MAP_GPA_RANGE_ENC_STAT(1) -#define KVM_MAP_GPA_RANGE_DECRYPTED KVM_MAP_GPA_RANGE_ENC_STAT(0) /* Operations for KVM_HC_MMU_OP */ #define KVM_MMU_OP_WRITE_PTE 1 diff --git a/original/uapi/asm-x86/asm/msgbuf.h b/original/uapi/asm-x86/asm/msgbuf.h index ac83e25..b3d0664 100644 --- a/original/uapi/asm-x86/asm/msgbuf.h +++ b/original/uapi/asm-x86/asm/msgbuf.h @@ -12,7 +12,7 @@ * The msqid64_ds structure for x86 architecture with x32 ABI. * * On x86-32 and x86-64 we can just use the generic definition, but - * x32 uses the same binary layout as x86_64, which is different + * x32 uses the same binary layout as x86_64, which is differnet * from other 32-bit architectures. */ diff --git a/original/uapi/asm-x86/asm/prctl.h b/original/uapi/asm-x86/asm/prctl.h index 500b96e..5a6aac9 100644 --- a/original/uapi/asm-x86/asm/prctl.h +++ b/original/uapi/asm-x86/asm/prctl.h @@ -2,22 +2,16 @@ #ifndef _ASM_X86_PRCTL_H #define _ASM_X86_PRCTL_H -#define ARCH_SET_GS 0x1001 -#define ARCH_SET_FS 0x1002 -#define ARCH_GET_FS 0x1003 -#define ARCH_GET_GS 0x1004 +#define ARCH_SET_GS 0x1001 +#define ARCH_SET_FS 0x1002 +#define ARCH_GET_FS 0x1003 +#define ARCH_GET_GS 0x1004 -#define ARCH_GET_CPUID 0x1011 -#define ARCH_SET_CPUID 0x1012 +#define ARCH_GET_CPUID 0x1011 +#define ARCH_SET_CPUID 0x1012 -#define ARCH_GET_XCOMP_SUPP 0x1021 -#define ARCH_GET_XCOMP_PERM 0x1022 -#define ARCH_REQ_XCOMP_PERM 0x1023 -#define ARCH_GET_XCOMP_GUEST_PERM 0x1024 -#define ARCH_REQ_XCOMP_GUEST_PERM 0x1025 - -#define ARCH_MAP_VDSO_X32 0x2001 -#define ARCH_MAP_VDSO_32 0x2002 -#define ARCH_MAP_VDSO_64 0x2003 +#define ARCH_MAP_VDSO_X32 0x2001 +#define ARCH_MAP_VDSO_32 0x2002 +#define ARCH_MAP_VDSO_64 0x2003 #endif /* _ASM_X86_PRCTL_H */ diff --git a/original/uapi/asm-x86/asm/sgx.h b/original/uapi/asm-x86/asm/sgx.h index f4b8158..9034f30 100644 --- a/original/uapi/asm-x86/asm/sgx.h +++ b/original/uapi/asm-x86/asm/sgx.h @@ -27,8 +27,6 @@ enum sgx_page_flags { _IOW(SGX_MAGIC, 0x02, struct sgx_enclave_init) #define SGX_IOC_ENCLAVE_PROVISION \ _IOW(SGX_MAGIC, 0x03, struct sgx_enclave_provision) -#define SGX_IOC_VEPC_REMOVE_ALL \ - _IO(SGX_MAGIC, 0x04) /** * struct sgx_enclave_create - parameter structure for the @@ -154,7 +152,7 @@ struct sgx_enclave_run { * Most exceptions reported on ENCLU, including those that occur within the * enclave, are fixed up and reported synchronously instead of being delivered * via a standard signal. Debug Exceptions (#DB) and Breakpoints (#BP) are - * never fixed up and are always delivered via standard signals. On synchronously + * never fixed up and are always delivered via standard signals. On synchrously * reported exceptions, -EFAULT is returned and details about the exception are * recorded in @run.exception, the optional sgx_enclave_exception struct. * diff --git a/original/uapi/asm-x86/asm/shmbuf.h b/original/uapi/asm-x86/asm/shmbuf.h index fce18ea..f0305dc 100644 --- a/original/uapi/asm-x86/asm/shmbuf.h +++ b/original/uapi/asm-x86/asm/shmbuf.h @@ -9,7 +9,7 @@ * The shmid64_ds structure for x86 architecture with x32 ABI. * * On x86-32 and x86-64 we can just use the generic definition, but - * x32 uses the same binary layout as x86_64, which is different + * x32 uses the same binary layout as x86_64, which is differnet * from other 32-bit architectures. */ diff --git a/original/uapi/asm-x86/asm/sigcontext.h b/original/uapi/asm-x86/asm/sigcontext.h index d0d9b33..844d60e 100644 --- a/original/uapi/asm-x86/asm/sigcontext.h +++ b/original/uapi/asm-x86/asm/sigcontext.h @@ -139,7 +139,7 @@ struct _fpstate_32 { * The 64-bit FPU frame. (FXSAVE format and later) * * Note1: If sw_reserved.magic1 == FP_XSTATE_MAGIC1 then the structure is - * larger: 'struct _xstate'. Note that 'struct _xstate' embeds + * larger: 'struct _xstate'. Note that 'struct _xstate' embedds * 'struct _fpstate' so that you can always assume the _fpstate portion * exists so that you can check the magic value. * diff --git a/original/uapi/asm-x86/asm/svm.h b/original/uapi/asm-x86/asm/svm.h index efa9693..554f75f 100644 --- a/original/uapi/asm-x86/asm/svm.h +++ b/original/uapi/asm-x86/asm/svm.h @@ -110,9 +110,6 @@ #define SVM_VMGEXIT_GET_AP_JUMP_TABLE 1 #define SVM_VMGEXIT_UNSUPPORTED_EVENT 0x8000ffff -/* Exit code reserved for hypervisor/software use */ -#define SVM_EXIT_SW 0xf0000000 - #define SVM_EXIT_ERR -1 #define SVM_EXIT_REASONS \ diff --git a/original/uapi/asm-x86/asm/unistd_32.h b/original/uapi/asm-x86/asm/unistd_32.h index 3bdb80d..e3d32ca 100644 --- a/original/uapi/asm-x86/asm/unistd_32.h +++ b/original/uapi/asm-x86/asm/unistd_32.h @@ -1,5 +1,5 @@ -#ifndef _UAPI_ASM_UNISTD_32_H -#define _UAPI_ASM_UNISTD_32_H +#ifndef _ASM_X86_UNISTD_32_H +#define _ASM_X86_UNISTD_32_H 1 #define __NR_restart_syscall 0 #define __NR_exit 1 @@ -433,17 +433,9 @@ #define __NR_process_madvise 440 #define __NR_epoll_pwait2 441 #define __NR_mount_setattr 442 -#define __NR_quotactl_fd 443 -#define __NR_landlock_create_ruleset 444 -#define __NR_landlock_add_rule 445 -#define __NR_landlock_restrict_self 446 -#define __NR_memfd_secret 447 -#define __NR_process_mrelease 448 -#define __NR_futex_waitv 449 -#define __NR_set_mempolicy_home_node 450 #ifdef __KERNEL__ -#define __NR_syscalls 451 +#define __NR_syscall_max 442 #endif -#endif /* _UAPI_ASM_UNISTD_32_H */ +#endif /* _ASM_X86_UNISTD_32_H */ diff --git a/original/uapi/asm-x86/asm/unistd_64.h b/original/uapi/asm-x86/asm/unistd_64.h index a7689ee..ffbe094 100644 --- a/original/uapi/asm-x86/asm/unistd_64.h +++ b/original/uapi/asm-x86/asm/unistd_64.h @@ -1,5 +1,5 @@ -#ifndef _UAPI_ASM_UNISTD_64_H -#define _UAPI_ASM_UNISTD_64_H +#ifndef _ASM_X86_UNISTD_64_H +#define _ASM_X86_UNISTD_64_H 1 #define __NR_read 0 #define __NR_write 1 @@ -355,17 +355,9 @@ #define __NR_process_madvise 440 #define __NR_epoll_pwait2 441 #define __NR_mount_setattr 442 -#define __NR_quotactl_fd 443 -#define __NR_landlock_create_ruleset 444 -#define __NR_landlock_add_rule 445 -#define __NR_landlock_restrict_self 446 -#define __NR_memfd_secret 447 -#define __NR_process_mrelease 448 -#define __NR_futex_waitv 449 -#define __NR_set_mempolicy_home_node 450 #ifdef __KERNEL__ -#define __NR_syscalls 451 +#define __NR_syscall_max 442 #endif -#endif /* _UAPI_ASM_UNISTD_64_H */ +#endif /* _ASM_X86_UNISTD_64_H */ diff --git a/original/uapi/asm-x86/asm/unistd_x32.h b/original/uapi/asm-x86/asm/unistd_x32.h index 700514e..7b7ee98 100644 --- a/original/uapi/asm-x86/asm/unistd_x32.h +++ b/original/uapi/asm-x86/asm/unistd_x32.h @@ -1,5 +1,5 @@ -#ifndef _UAPI_ASM_UNISTD_X32_H -#define _UAPI_ASM_UNISTD_X32_H +#ifndef _ASM_X86_UNISTD_X32_H +#define _ASM_X86_UNISTD_X32_H 1 #define __NR_read (__X32_SYSCALL_BIT + 0) #define __NR_write (__X32_SYSCALL_BIT + 1) @@ -308,14 +308,6 @@ #define __NR_process_madvise (__X32_SYSCALL_BIT + 440) #define __NR_epoll_pwait2 (__X32_SYSCALL_BIT + 441) #define __NR_mount_setattr (__X32_SYSCALL_BIT + 442) -#define __NR_quotactl_fd (__X32_SYSCALL_BIT + 443) -#define __NR_landlock_create_ruleset (__X32_SYSCALL_BIT + 444) -#define __NR_landlock_add_rule (__X32_SYSCALL_BIT + 445) -#define __NR_landlock_restrict_self (__X32_SYSCALL_BIT + 446) -#define __NR_memfd_secret (__X32_SYSCALL_BIT + 447) -#define __NR_process_mrelease (__X32_SYSCALL_BIT + 448) -#define __NR_futex_waitv (__X32_SYSCALL_BIT + 449) -#define __NR_set_mempolicy_home_node (__X32_SYSCALL_BIT + 450) #define __NR_rt_sigaction (__X32_SYSCALL_BIT + 512) #define __NR_rt_sigreturn (__X32_SYSCALL_BIT + 513) #define __NR_ioctl (__X32_SYSCALL_BIT + 514) @@ -354,7 +346,7 @@ #define __NR_pwritev2 (__X32_SYSCALL_BIT + 547) #ifdef __KERNEL__ -#define __NR_syscalls 548 +#define __NR_syscall_max 547 #endif -#endif /* _UAPI_ASM_UNISTD_X32_H */ +#endif /* _ASM_X86_UNISTD_X32_H */ diff --git a/original/uapi/asm-x86/asm/vmx.h b/original/uapi/asm-x86/asm/vmx.h index 946d761..b8e650a 100644 --- a/original/uapi/asm-x86/asm/vmx.h +++ b/original/uapi/asm-x86/asm/vmx.h @@ -27,7 +27,6 @@ #define VMX_EXIT_REASONS_FAILED_VMENTRY 0x80000000 -#define VMX_EXIT_REASONS_SGX_ENCLAVE_MODE 0x08000000 #define EXIT_REASON_EXCEPTION_NMI 0 #define EXIT_REASON_EXTERNAL_INTERRUPT 1 diff --git a/original/uapi/drm/amdgpu_drm.h b/original/uapi/drm/amdgpu_drm.h index 0b94ec7..7fb9c09 100644 --- a/original/uapi/drm/amdgpu_drm.h +++ b/original/uapi/drm/amdgpu_drm.h @@ -80,7 +80,7 @@ extern "C" { * * %AMDGPU_GEM_DOMAIN_GTT GPU accessible system memory, mapped into the * GPU's virtual address space via gart. Gart memory linearizes non-contiguous - * pages of system memory, allows GPU access system memory in a linearized + * pages of system memory, allows GPU access system memory in a linezrized * fashion. * * %AMDGPU_GEM_DOMAIN_VRAM Local video memory. For APUs, it is memory @@ -116,6 +116,8 @@ extern "C" { #define AMDGPU_GEM_CREATE_CPU_GTT_USWC (1 << 2) /* Flag that the memory should be in VRAM and cleared */ #define AMDGPU_GEM_CREATE_VRAM_CLEARED (1 << 3) +/* Flag that create shadow bo(GTT) while allocating vram bo */ +#define AMDGPU_GEM_CREATE_SHADOW (1 << 4) /* Flag that allocating the BO should use linear VRAM */ #define AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS (1 << 5) /* Flag that BO is always valid in this VM */ @@ -136,10 +138,6 @@ extern "C" { * accessing it with various hw blocks */ #define AMDGPU_GEM_CREATE_ENCRYPTED (1 << 10) -/* Flag that BO will be used only in preemptible context, which does - * not require GTT memory accounting - */ -#define AMDGPU_GEM_CREATE_PREEMPTIBLE (1 << 11) struct drm_amdgpu_gem_create_in { /** the requested memory size */ @@ -757,8 +755,6 @@ struct drm_amdgpu_cs_chunk_data { #define AMDGPU_INFO_VBIOS_SIZE 0x1 /* Subquery id: Query vbios image */ #define AMDGPU_INFO_VBIOS_IMAGE 0x2 - /* Subquery id: Query vbios info */ - #define AMDGPU_INFO_VBIOS_INFO 0x3 /* Query UVD handles */ #define AMDGPU_INFO_NUM_HANDLES 0x1C /* Query sensor related information */ @@ -786,6 +782,7 @@ struct drm_amdgpu_cs_chunk_data { #define AMDGPU_INFO_VRAM_LOST_COUNTER 0x1F /* query ras mask of enabled features*/ #define AMDGPU_INFO_RAS_ENABLED_FEATURES 0x20 + /* RAS MASK: UMC (VRAM) */ #define AMDGPU_INFO_RAS_ENABLED_UMC (1 << 0) /* RAS MASK: SDMA */ @@ -814,12 +811,6 @@ struct drm_amdgpu_cs_chunk_data { #define AMDGPU_INFO_RAS_ENABLED_MP1 (1 << 12) /* RAS MASK: FUSE */ #define AMDGPU_INFO_RAS_ENABLED_FUSE (1 << 13) -/* query video encode/decode caps */ -#define AMDGPU_INFO_VIDEO_CAPS 0x21 - /* Subquery id: Decode */ - #define AMDGPU_INFO_VIDEO_CAPS_DECODE 0 - /* Subquery id: Encode */ - #define AMDGPU_INFO_VIDEO_CAPS_ENCODE 1 #define AMDGPU_INFO_MMR_SE_INDEX_SHIFT 0 #define AMDGPU_INFO_MMR_SE_INDEX_MASK 0xff @@ -887,10 +878,6 @@ struct drm_amdgpu_info { struct { __u32 type; } sensor_info; - - struct { - __u32 type; - } video_cap; }; }; @@ -951,15 +938,6 @@ struct drm_amdgpu_info_firmware { __u32 feature; }; -struct drm_amdgpu_info_vbios { - __u8 name[64]; - __u8 vbios_pn[64]; - __u32 version; - __u32 pad; - __u8 vbios_ver_str[32]; - __u8 date[32]; -}; - #define AMDGPU_VRAM_TYPE_UNKNOWN 0 #define AMDGPU_VRAM_TYPE_GDDR1 1 #define AMDGPU_VRAM_TYPE_DDR2 2 @@ -1096,30 +1074,6 @@ struct drm_amdgpu_info_vce_clock_table { __u32 pad; }; -/* query video encode/decode caps */ -#define AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG2 0 -#define AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG4 1 -#define AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_VC1 2 -#define AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG4_AVC 3 -#define AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_HEVC 4 -#define AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_JPEG 5 -#define AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_VP9 6 -#define AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_AV1 7 -#define AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_COUNT 8 - -struct drm_amdgpu_info_video_codec_info { - __u32 valid; - __u32 max_width; - __u32 max_height; - __u32 max_pixels_per_frame; - __u32 max_level; - __u32 pad; -}; - -struct drm_amdgpu_info_video_caps { - struct drm_amdgpu_info_video_codec_info codec_info[AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_COUNT]; -}; - /* * Supported GPU families */ @@ -1133,7 +1087,6 @@ struct drm_amdgpu_info_video_caps { #define AMDGPU_FAMILY_RV 142 /* Raven */ #define AMDGPU_FAMILY_NV 143 /* Navi10 */ #define AMDGPU_FAMILY_VGH 144 /* Van Gogh */ -#define AMDGPU_FAMILY_YC 146 /* Yellow Carp */ #if defined(__cplusplus) } diff --git a/original/uapi/drm/drm.h b/original/uapi/drm/drm.h index 6428085..0827037 100644 --- a/original/uapi/drm/drm.h +++ b/original/uapi/drm/drm.h @@ -625,147 +625,30 @@ struct drm_gem_open { __u64 size; }; -/** - * DRM_CAP_DUMB_BUFFER - * - * If set to 1, the driver supports creating dumb buffers via the - * &DRM_IOCTL_MODE_CREATE_DUMB ioctl. - */ #define DRM_CAP_DUMB_BUFFER 0x1 -/** - * DRM_CAP_VBLANK_HIGH_CRTC - * - * If set to 1, the kernel supports specifying a :ref:`CRTC index<crtc_index>` - * in the high bits of &drm_wait_vblank_request.type. - * - * Starting kernel version 2.6.39, this capability is always set to 1. - */ #define DRM_CAP_VBLANK_HIGH_CRTC 0x2 -/** - * DRM_CAP_DUMB_PREFERRED_DEPTH - * - * The preferred bit depth for dumb buffers. - * - * The bit depth is the number of bits used to indicate the color of a single - * pixel excluding any padding. This is different from the number of bits per - * pixel. For instance, XRGB8888 has a bit depth of 24 but has 32 bits per - * pixel. - * - * Note that this preference only applies to dumb buffers, it's irrelevant for - * other types of buffers. - */ #define DRM_CAP_DUMB_PREFERRED_DEPTH 0x3 -/** - * DRM_CAP_DUMB_PREFER_SHADOW - * - * If set to 1, the driver prefers userspace to render to a shadow buffer - * instead of directly rendering to a dumb buffer. For best speed, userspace - * should do streaming ordered memory copies into the dumb buffer and never - * read from it. - * - * Note that this preference only applies to dumb buffers, it's irrelevant for - * other types of buffers. - */ #define DRM_CAP_DUMB_PREFER_SHADOW 0x4 -/** - * DRM_CAP_PRIME - * - * Bitfield of supported PRIME sharing capabilities. See &DRM_PRIME_CAP_IMPORT - * and &DRM_PRIME_CAP_EXPORT. - * - * PRIME buffers are exposed as dma-buf file descriptors. See - * Documentation/gpu/drm-mm.rst, section "PRIME Buffer Sharing". - */ #define DRM_CAP_PRIME 0x5 -/** - * DRM_PRIME_CAP_IMPORT - * - * If this bit is set in &DRM_CAP_PRIME, the driver supports importing PRIME - * buffers via the &DRM_IOCTL_PRIME_FD_TO_HANDLE ioctl. - */ #define DRM_PRIME_CAP_IMPORT 0x1 -/** - * DRM_PRIME_CAP_EXPORT - * - * If this bit is set in &DRM_CAP_PRIME, the driver supports exporting PRIME - * buffers via the &DRM_IOCTL_PRIME_HANDLE_TO_FD ioctl. - */ #define DRM_PRIME_CAP_EXPORT 0x2 -/** - * DRM_CAP_TIMESTAMP_MONOTONIC - * - * If set to 0, the kernel will report timestamps with ``CLOCK_REALTIME`` in - * struct drm_event_vblank. If set to 1, the kernel will report timestamps with - * ``CLOCK_MONOTONIC``. See ``clock_gettime(2)`` for the definition of these - * clocks. - * - * Starting from kernel version 2.6.39, the default value for this capability - * is 1. Starting kernel version 4.15, this capability is always set to 1. - */ #define DRM_CAP_TIMESTAMP_MONOTONIC 0x6 -/** - * DRM_CAP_ASYNC_PAGE_FLIP - * - * If set to 1, the driver supports &DRM_MODE_PAGE_FLIP_ASYNC. - */ #define DRM_CAP_ASYNC_PAGE_FLIP 0x7 -/** - * DRM_CAP_CURSOR_WIDTH - * - * The ``CURSOR_WIDTH`` and ``CURSOR_HEIGHT`` capabilities return a valid - * width x height combination for the hardware cursor. The intention is that a - * hardware agnostic userspace can query a cursor plane size to use. +/* + * The CURSOR_WIDTH and CURSOR_HEIGHT capabilities return a valid widthxheight + * combination for the hardware cursor. The intention is that a hardware + * agnostic userspace can query a cursor plane size to use. * * Note that the cross-driver contract is to merely return a valid size; * drivers are free to attach another meaning on top, eg. i915 returns the * maximum plane size. */ #define DRM_CAP_CURSOR_WIDTH 0x8 -/** - * DRM_CAP_CURSOR_HEIGHT - * - * See &DRM_CAP_CURSOR_WIDTH. - */ #define DRM_CAP_CURSOR_HEIGHT 0x9 -/** - * DRM_CAP_ADDFB2_MODIFIERS - * - * If set to 1, the driver supports supplying modifiers in the - * &DRM_IOCTL_MODE_ADDFB2 ioctl. - */ #define DRM_CAP_ADDFB2_MODIFIERS 0x10 -/** - * DRM_CAP_PAGE_FLIP_TARGET - * - * If set to 1, the driver supports the &DRM_MODE_PAGE_FLIP_TARGET_ABSOLUTE and - * &DRM_MODE_PAGE_FLIP_TARGET_RELATIVE flags in - * &drm_mode_crtc_page_flip_target.flags for the &DRM_IOCTL_MODE_PAGE_FLIP - * ioctl. - */ #define DRM_CAP_PAGE_FLIP_TARGET 0x11 -/** - * DRM_CAP_CRTC_IN_VBLANK_EVENT - * - * If set to 1, the kernel supports reporting the CRTC ID in - * &drm_event_vblank.crtc_id for the &DRM_EVENT_VBLANK and - * &DRM_EVENT_FLIP_COMPLETE events. - * - * Starting kernel version 4.12, this capability is always set to 1. - */ #define DRM_CAP_CRTC_IN_VBLANK_EVENT 0x12 -/** - * DRM_CAP_SYNCOBJ - * - * If set to 1, the driver supports sync objects. See - * Documentation/gpu/drm-mm.rst, section "DRM Sync Objects". - */ #define DRM_CAP_SYNCOBJ 0x13 -/** - * DRM_CAP_SYNCOBJ_TIMELINE - * - * If set to 1, the driver supports timeline operations on sync objects. See - * Documentation/gpu/drm-mm.rst, section "DRM Sync Objects". - */ #define DRM_CAP_SYNCOBJ_TIMELINE 0x14 /* DRM_IOCTL_GET_CAP ioctl argument type */ @@ -777,12 +660,9 @@ struct drm_get_cap { /** * DRM_CLIENT_CAP_STEREO_3D * - * If set to 1, the DRM core will expose the stereo 3D capabilities of the + * if set to 1, the DRM core will expose the stereo 3D capabilities of the * monitor by advertising the supported 3D layouts in the flags of struct - * drm_mode_modeinfo. See ``DRM_MODE_FLAG_3D_*``. - * - * This capability is always supported for all drivers starting from kernel - * version 3.13. + * drm_mode_modeinfo. */ #define DRM_CLIENT_CAP_STEREO_3D 1 @@ -791,9 +671,6 @@ struct drm_get_cap { * * If set to 1, the DRM core will expose all planes (overlay, primary, and * cursor) to userspace. - * - * This capability has been introduced in kernel version 3.15. Starting from - * kernel version 3.17, this capability is always supported for all drivers. */ #define DRM_CLIENT_CAP_UNIVERSAL_PLANES 2 @@ -803,13 +680,6 @@ struct drm_get_cap { * If set to 1, the DRM core will expose atomic properties to userspace. This * implicitly enables &DRM_CLIENT_CAP_UNIVERSAL_PLANES and * &DRM_CLIENT_CAP_ASPECT_RATIO. - * - * If the driver doesn't support atomic mode-setting, enabling this capability - * will fail with -EOPNOTSUPP. - * - * This capability has been introduced in kernel version 4.0. Starting from - * kernel version 4.2, this capability is always supported for atomic-capable - * drivers. */ #define DRM_CLIENT_CAP_ATOMIC 3 @@ -817,10 +687,6 @@ struct drm_get_cap { * DRM_CLIENT_CAP_ASPECT_RATIO * * If set to 1, the DRM core will provide aspect ratio information in modes. - * See ``DRM_MODE_FLAG_PIC_AR_*``. - * - * This capability is always supported for all drivers starting from kernel - * version 4.18. */ #define DRM_CLIENT_CAP_ASPECT_RATIO 4 @@ -828,11 +694,8 @@ struct drm_get_cap { * DRM_CLIENT_CAP_WRITEBACK_CONNECTORS * * If set to 1, the DRM core will expose special connectors to be used for - * writing back to memory the scene setup in the commit. The client must enable - * &DRM_CLIENT_CAP_ATOMIC first. - * - * This capability is always supported for atomic-capable drivers starting from - * kernel version 4.19. + * writing back to memory the scene setup in the commit. Depends on client + * also supporting DRM_CLIENT_CAP_ATOMIC */ #define DRM_CLIENT_CAP_WRITEBACK_CONNECTORS 5 @@ -1050,16 +913,6 @@ extern "C" { #define DRM_IOCTL_MODE_GETPROPBLOB DRM_IOWR(0xAC, struct drm_mode_get_blob) #define DRM_IOCTL_MODE_GETFB DRM_IOWR(0xAD, struct drm_mode_fb_cmd) #define DRM_IOCTL_MODE_ADDFB DRM_IOWR(0xAE, struct drm_mode_fb_cmd) -/** - * DRM_IOCTL_MODE_RMFB - Remove a framebuffer. - * - * This removes a framebuffer previously added via ADDFB/ADDFB2. The IOCTL - * argument is a framebuffer object ID. - * - * Warning: removing a framebuffer currently in-use on an enabled plane will - * disable that plane. The CRTC the plane is linked to may also be disabled - * (depending on driver capabilities). - */ #define DRM_IOCTL_MODE_RMFB DRM_IOWR(0xAF, unsigned int) #define DRM_IOCTL_MODE_PAGE_FLIP DRM_IOWR(0xB0, struct drm_mode_crtc_page_flip) #define DRM_IOCTL_MODE_DIRTYFB DRM_IOWR(0xB1, struct drm_mode_fb_dirty_cmd) @@ -1096,24 +949,6 @@ extern "C" { #define DRM_IOCTL_SYNCOBJ_TRANSFER DRM_IOWR(0xCC, struct drm_syncobj_transfer) #define DRM_IOCTL_SYNCOBJ_TIMELINE_SIGNAL DRM_IOWR(0xCD, struct drm_syncobj_timeline_array) -/** - * DRM_IOCTL_MODE_GETFB2 - Get framebuffer metadata. - * - * This queries metadata about a framebuffer. User-space fills - * &drm_mode_fb_cmd2.fb_id as the input, and the kernels fills the rest of the - * struct as the output. - * - * If the client is DRM master or has &CAP_SYS_ADMIN, &drm_mode_fb_cmd2.handles - * will be filled with GEM buffer handles. Planes are valid until one has a - * zero handle -- this can be used to compute the number of planes. - * - * Otherwise, &drm_mode_fb_cmd2.handles will be zeroed and planes are valid - * until one has a zero &drm_mode_fb_cmd2.pitches. - * - * If the framebuffer has a format modifier, &DRM_MODE_FB_MODIFIERS will be set - * in &drm_mode_fb_cmd2.flags and &drm_mode_fb_cmd2.modifier will contain the - * modifier. Otherwise, user-space must ignore &drm_mode_fb_cmd2.modifier. - */ #define DRM_IOCTL_MODE_GETFB2 DRM_IOWR(0xCE, struct drm_mode_fb_cmd2) /* diff --git a/original/uapi/drm/drm_fourcc.h b/original/uapi/drm/drm_fourcc.h index fc0c145..f76de49 100644 --- a/original/uapi/drm/drm_fourcc.h +++ b/original/uapi/drm/drm_fourcc.h @@ -104,12 +104,6 @@ extern "C" { /* 8 bpp Red */ #define DRM_FORMAT_R8 fourcc_code('R', '8', ' ', ' ') /* [7:0] R */ -/* 10 bpp Red */ -#define DRM_FORMAT_R10 fourcc_code('R', '1', '0', ' ') /* [15:0] x:R 6:10 little endian */ - -/* 12 bpp Red */ -#define DRM_FORMAT_R12 fourcc_code('R', '1', '2', ' ') /* [15:0] x:R 4:12 little endian */ - /* 16 bpp Red */ #define DRM_FORMAT_R16 fourcc_code('R', '1', '6', ' ') /* [15:0] R little endian */ @@ -174,13 +168,6 @@ extern "C" { #define DRM_FORMAT_RGBA1010102 fourcc_code('R', 'A', '3', '0') /* [31:0] R:G:B:A 10:10:10:2 little endian */ #define DRM_FORMAT_BGRA1010102 fourcc_code('B', 'A', '3', '0') /* [31:0] B:G:R:A 10:10:10:2 little endian */ -/* 64 bpp RGB */ -#define DRM_FORMAT_XRGB16161616 fourcc_code('X', 'R', '4', '8') /* [63:0] x:R:G:B 16:16:16:16 little endian */ -#define DRM_FORMAT_XBGR16161616 fourcc_code('X', 'B', '4', '8') /* [63:0] x:B:G:R 16:16:16:16 little endian */ - -#define DRM_FORMAT_ARGB16161616 fourcc_code('A', 'R', '4', '8') /* [63:0] A:R:G:B 16:16:16:16 little endian */ -#define DRM_FORMAT_ABGR16161616 fourcc_code('A', 'B', '4', '8') /* [63:0] A:B:G:R 16:16:16:16 little endian */ - /* * Floating point 64bpp RGB * IEEE 754-2008 binary16 half-precision float @@ -314,13 +301,6 @@ extern "C" { */ #define DRM_FORMAT_P016 fourcc_code('P', '0', '1', '6') /* 2x2 subsampled Cr:Cb plane 16 bits per channel */ -/* 2 plane YCbCr420. - * 3 10 bit components and 2 padding bits packed into 4 bytes. - * index 0 = Y plane, [31:0] x:Y2:Y1:Y0 2:10:10:10 little endian - * index 1 = Cr:Cb plane, [63:0] x:Cr2:Cb2:Cr1:x:Cb1:Cr0:Cb0 [2:10:10:10:2:10:10:10] little endian - */ -#define DRM_FORMAT_P030 fourcc_code('P', '0', '3', '0') /* 2x2 subsampled Cr:Cb plane 10 bits per channel packed */ - /* 3 plane non-subsampled (444) YCbCr * 16 bits per component, but only 10 bits are used and 6 bits are padded * index 0: Y plane, [15:0] Y:x [10:6] little endian @@ -386,12 +366,6 @@ extern "C" { #define DRM_FORMAT_RESERVED ((1ULL << 56) - 1) -#define fourcc_mod_get_vendor(modifier) \ - (((modifier) >> 56) & 0xff) - -#define fourcc_mod_is_vendor(modifier, vendor) \ - (fourcc_mod_get_vendor(modifier) == DRM_FORMAT_MOD_VENDOR_## vendor) - #define fourcc_mod_code(vendor, val) \ ((((__u64)DRM_FORMAT_MOD_VENDOR_## vendor) << 56) | ((val) & 0x00ffffffffffffffULL)) @@ -861,10 +835,6 @@ drm_fourcc_canonicalize_nvidia_format_mod(__u64 modifier) * and UV. Some SAND-using hardware stores UV in a separate tiled * image from Y to reduce the column height, which is not supported * with these modifiers. - * - * The DRM_FORMAT_MOD_BROADCOM_SAND128_COL_HEIGHT modifier is also - * supported for DRM_FORMAT_P030 where the columns remain as 128 bytes - * wide, but as this is a 10 bpp format that translates to 96 pixels. */ #define DRM_FORMAT_MOD_BROADCOM_SAND32_COL_HEIGHT(v) \ @@ -923,9 +893,9 @@ drm_fourcc_canonicalize_nvidia_format_mod(__u64 modifier) /* * The top 4 bits (out of the 56 bits alloted for specifying vendor specific - * modifiers) denote the category for modifiers. Currently we have three - * categories of modifiers ie AFBC, MISC and AFRC. We can have a maximum of - * sixteen different categories. + * modifiers) denote the category for modifiers. Currently we have only two + * categories of modifiers ie AFBC and MISC. We can have a maximum of sixteen + * different categories. */ #define DRM_FORMAT_MOD_ARM_CODE(__type, __val) \ fourcc_mod_code(ARM, ((__u64)(__type) << 52) | ((__val) & 0x000fffffffffffffULL)) @@ -1041,109 +1011,6 @@ drm_fourcc_canonicalize_nvidia_format_mod(__u64 modifier) #define AFBC_FORMAT_MOD_USM (1ULL << 12) /* - * Arm Fixed-Rate Compression (AFRC) modifiers - * - * AFRC is a proprietary fixed rate image compression protocol and format, - * designed to provide guaranteed bandwidth and memory footprint - * reductions in graphics and media use-cases. - * - * AFRC buffers consist of one or more planes, with the same components - * and meaning as an uncompressed buffer using the same pixel format. - * - * Within each plane, the pixel/luma/chroma values are grouped into - * "coding unit" blocks which are individually compressed to a - * fixed size (in bytes). All coding units within a given plane of a buffer - * store the same number of values, and have the same compressed size. - * - * The coding unit size is configurable, allowing different rates of compression. - * - * The start of each AFRC buffer plane must be aligned to an alignment granule which - * depends on the coding unit size. - * - * Coding Unit Size Plane Alignment - * ---------------- --------------- - * 16 bytes 1024 bytes - * 24 bytes 512 bytes - * 32 bytes 2048 bytes - * - * Coding units are grouped into paging tiles. AFRC buffer dimensions must be aligned - * to a multiple of the paging tile dimensions. - * The dimensions of each paging tile depend on whether the buffer is optimised for - * scanline (SCAN layout) or rotated (ROT layout) access. - * - * Layout Paging Tile Width Paging Tile Height - * ------ ----------------- ------------------ - * SCAN 16 coding units 4 coding units - * ROT 8 coding units 8 coding units - * - * The dimensions of each coding unit depend on the number of components - * in the compressed plane and whether the buffer is optimised for - * scanline (SCAN layout) or rotated (ROT layout) access. - * - * Number of Components in Plane Layout Coding Unit Width Coding Unit Height - * ----------------------------- --------- ----------------- ------------------ - * 1 SCAN 16 samples 4 samples - * Example: 16x4 luma samples in a 'Y' plane - * 16x4 chroma 'V' values, in the 'V' plane of a fully-planar YUV buffer - * ----------------------------- --------- ----------------- ------------------ - * 1 ROT 8 samples 8 samples - * Example: 8x8 luma samples in a 'Y' plane - * 8x8 chroma 'V' values, in the 'V' plane of a fully-planar YUV buffer - * ----------------------------- --------- ----------------- ------------------ - * 2 DONT CARE 8 samples 4 samples - * Example: 8x4 chroma pairs in the 'UV' plane of a semi-planar YUV buffer - * ----------------------------- --------- ----------------- ------------------ - * 3 DONT CARE 4 samples 4 samples - * Example: 4x4 pixels in an RGB buffer without alpha - * ----------------------------- --------- ----------------- ------------------ - * 4 DONT CARE 4 samples 4 samples - * Example: 4x4 pixels in an RGB buffer with alpha - */ - -#define DRM_FORMAT_MOD_ARM_TYPE_AFRC 0x02 - -#define DRM_FORMAT_MOD_ARM_AFRC(__afrc_mode) \ - DRM_FORMAT_MOD_ARM_CODE(DRM_FORMAT_MOD_ARM_TYPE_AFRC, __afrc_mode) - -/* - * AFRC coding unit size modifier. - * - * Indicates the number of bytes used to store each compressed coding unit for - * one or more planes in an AFRC encoded buffer. The coding unit size for chrominance - * is the same for both Cb and Cr, which may be stored in separate planes. - * - * AFRC_FORMAT_MOD_CU_SIZE_P0 indicates the number of bytes used to store - * each compressed coding unit in the first plane of the buffer. For RGBA buffers - * this is the only plane, while for semi-planar and fully-planar YUV buffers, - * this corresponds to the luma plane. - * - * AFRC_FORMAT_MOD_CU_SIZE_P12 indicates the number of bytes used to store - * each compressed coding unit in the second and third planes in the buffer. - * For semi-planar and fully-planar YUV buffers, this corresponds to the chroma plane(s). - * - * For single-plane buffers, AFRC_FORMAT_MOD_CU_SIZE_P0 must be specified - * and AFRC_FORMAT_MOD_CU_SIZE_P12 must be zero. - * For semi-planar and fully-planar buffers, both AFRC_FORMAT_MOD_CU_SIZE_P0 and - * AFRC_FORMAT_MOD_CU_SIZE_P12 must be specified. - */ -#define AFRC_FORMAT_MOD_CU_SIZE_MASK 0xf -#define AFRC_FORMAT_MOD_CU_SIZE_16 (1ULL) -#define AFRC_FORMAT_MOD_CU_SIZE_24 (2ULL) -#define AFRC_FORMAT_MOD_CU_SIZE_32 (3ULL) - -#define AFRC_FORMAT_MOD_CU_SIZE_P0(__afrc_cu_size) (__afrc_cu_size) -#define AFRC_FORMAT_MOD_CU_SIZE_P12(__afrc_cu_size) ((__afrc_cu_size) << 4) - -/* - * AFRC scanline memory layout. - * - * Indicates if the buffer uses the scanline-optimised layout - * for an AFRC encoded buffer, otherwise, it uses the rotation-optimised layout. - * The memory layout is the same for all planes. - */ -#define AFRC_FORMAT_MOD_LAYOUT_SCAN (1ULL << 8) - -/* * Arm 16x16 Block U-Interleaved modifier * * This is used by Arm Mali Utgard and Midgard GPUs. It divides the image diff --git a/original/uapi/drm/drm_mode.h b/original/uapi/drm/drm_mode.h index e1e3516..1c06462 100644 --- a/original/uapi/drm/drm_mode.h +++ b/original/uapi/drm/drm_mode.h @@ -312,48 +312,16 @@ struct drm_mode_set_plane { __u32 src_w; }; -/** - * struct drm_mode_get_plane - Get plane metadata. - * - * Userspace can perform a GETPLANE ioctl to retrieve information about a - * plane. - * - * To retrieve the number of formats supported, set @count_format_types to zero - * and call the ioctl. @count_format_types will be updated with the value. - * - * To retrieve these formats, allocate an array with the memory needed to store - * @count_format_types formats. Point @format_type_ptr to this array and call - * the ioctl again (with @count_format_types still set to the value returned in - * the first ioctl call). - */ struct drm_mode_get_plane { - /** - * @plane_id: Object ID of the plane whose information should be - * retrieved. Set by caller. - */ __u32 plane_id; - /** @crtc_id: Object ID of the current CRTC. */ __u32 crtc_id; - /** @fb_id: Object ID of the current fb. */ __u32 fb_id; - /** - * @possible_crtcs: Bitmask of CRTC's compatible with the plane. CRTC's - * are created and they receive an index, which corresponds to their - * position in the bitmask. Bit N corresponds to - * :ref:`CRTC index<crtc_index>` N. - */ __u32 possible_crtcs; - /** @gamma_size: Never used. */ __u32 gamma_size; - /** @count_format_types: Number of formats. */ __u32 count_format_types; - /** - * @format_type_ptr: Pointer to ``__u32`` array of formats that are - * supported by the plane. These formats do not require modifiers. - */ __u64 format_type_ptr; }; @@ -420,7 +388,6 @@ enum drm_mode_subconnector { #define DRM_MODE_CONNECTOR_DPI 17 #define DRM_MODE_CONNECTOR_WRITEBACK 18 #define DRM_MODE_CONNECTOR_SPI 19 -#define DRM_MODE_CONNECTOR_USB 20 /** * struct drm_mode_get_connector - Get connector metadata. @@ -445,10 +412,9 @@ enum drm_mode_subconnector { * * **Force-probing a connector** * - * If the @count_modes field is set to zero and the DRM client is the current - * DRM master, the kernel will perform a forced probe on the connector to - * refresh the connector status, modes and EDID. A forced-probe can be slow, - * might cause flickering and the ioctl will block. + * If the @count_modes field is set to zero, the kernel will perform a forced + * probe on the connector to refresh the connector status, modes and EDID. + * A forced-probe can be slow, might cause flickering and the ioctl will block. * * User-space needs to force-probe connectors to ensure their metadata is * up-to-date at startup and after receiving a hot-plug event. User-space @@ -541,74 +507,22 @@ struct drm_mode_get_connector { */ #define DRM_MODE_PROP_ATOMIC 0x80000000 -/** - * struct drm_mode_property_enum - Description for an enum/bitfield entry. - * @value: numeric value for this enum entry. - * @name: symbolic name for this enum entry. - * - * See struct drm_property_enum for details. - */ struct drm_mode_property_enum { __u64 value; char name[DRM_PROP_NAME_LEN]; }; -/** - * struct drm_mode_get_property - Get property metadata. - * - * User-space can perform a GETPROPERTY ioctl to retrieve information about a - * property. The same property may be attached to multiple objects, see - * "Modeset Base Object Abstraction". - * - * The meaning of the @values_ptr field changes depending on the property type. - * See &drm_property.flags for more details. - * - * The @enum_blob_ptr and @count_enum_blobs fields are only meaningful when the - * property has the type &DRM_MODE_PROP_ENUM or &DRM_MODE_PROP_BITMASK. For - * backwards compatibility, the kernel will always set @count_enum_blobs to - * zero when the property has the type &DRM_MODE_PROP_BLOB. User-space must - * ignore these two fields if the property has a different type. - * - * User-space is expected to retrieve values and enums by performing this ioctl - * at least twice: the first time to retrieve the number of elements, the - * second time to retrieve the elements themselves. - * - * To retrieve the number of elements, set @count_values and @count_enum_blobs - * to zero, then call the ioctl. @count_values will be updated with the number - * of elements. If the property has the type &DRM_MODE_PROP_ENUM or - * &DRM_MODE_PROP_BITMASK, @count_enum_blobs will be updated as well. - * - * To retrieve the elements themselves, allocate an array for @values_ptr and - * set @count_values to its capacity. If the property has the type - * &DRM_MODE_PROP_ENUM or &DRM_MODE_PROP_BITMASK, allocate an array for - * @enum_blob_ptr and set @count_enum_blobs to its capacity. Calling the ioctl - * again will fill the arrays. - */ struct drm_mode_get_property { - /** @values_ptr: Pointer to a ``__u64`` array. */ - __u64 values_ptr; - /** @enum_blob_ptr: Pointer to a struct drm_mode_property_enum array. */ - __u64 enum_blob_ptr; + __u64 values_ptr; /* values and blob lengths */ + __u64 enum_blob_ptr; /* enum and blob id ptrs */ - /** - * @prop_id: Object ID of the property which should be retrieved. Set - * by the caller. - */ __u32 prop_id; - /** - * @flags: ``DRM_MODE_PROP_*`` bitfield. See &drm_property.flags for - * a definition of the flags. - */ __u32 flags; - /** - * @name: Symbolic property name. User-space should use this field to - * recognize properties. - */ char name[DRM_PROP_NAME_LEN]; - /** @count_values: Number of elements in @values_ptr. */ __u32 count_values; - /** @count_enum_blobs: Number of elements in @enum_blob_ptr. */ + /* This is only used to count enum values, not blobs. The _blobs is + * simply because of a historical reason, i.e. backwards compat. */ __u32 count_enum_blobs; }; @@ -1076,7 +990,7 @@ struct drm_format_modifier { }; /** - * struct drm_mode_create_blob - Create New blob property + * struct drm_mode_create_blob - Create New block property * * Create a new 'blob' data property, copying length bytes from data pointer, * and returning new blob ID. @@ -1110,10 +1024,6 @@ struct drm_mode_destroy_blob { * struct drm_mode_create_lease - Create lease * * Lease mode resources, creating another drm_master. - * - * The @object_ids array must reference at least one CRTC, one connector and - * one plane if &DRM_CLIENT_CAP_UNIVERSAL_PLANES is enabled. Alternatively, - * the lease can be completely empty. */ struct drm_mode_create_lease { /** @object_ids: Pointer to array of object ids (__u32) */ diff --git a/original/uapi/drm/etnaviv_drm.h b/original/uapi/drm/etnaviv_drm.h index af024d9..09d0df8 100644 --- a/original/uapi/drm/etnaviv_drm.h +++ b/original/uapi/drm/etnaviv_drm.h @@ -74,9 +74,6 @@ struct drm_etnaviv_timespec { #define ETNAVIV_PARAM_GPU_NUM_CONSTANTS 0x19 #define ETNAVIV_PARAM_GPU_NUM_VARYINGS 0x1a #define ETNAVIV_PARAM_SOFTPIN_START_ADDR 0x1b -#define ETNAVIV_PARAM_GPU_PRODUCT_ID 0x1c -#define ETNAVIV_PARAM_GPU_CUSTOMER_ID 0x1d -#define ETNAVIV_PARAM_GPU_ECO_ID 0x1e #define ETNA_MAX_PIPES 4 diff --git a/original/uapi/drm/i915_drm.h b/original/uapi/drm/i915_drm.h index 914ebd9..1987e2e 100644 --- a/original/uapi/drm/i915_drm.h +++ b/original/uapi/drm/i915_drm.h @@ -62,8 +62,8 @@ extern "C" { #define I915_ERROR_UEVENT "ERROR" #define I915_RESET_UEVENT "RESET" -/** - * struct i915_user_extension - Base class for defining a chain of extensions +/* + * i915_user_extension: Base class for defining a chain of extensions * * Many interfaces need to grow over time. In most cases we can simply * extend the struct and have userspace pass in more data. Another option, @@ -76,58 +76,12 @@ extern "C" { * increasing complexity, and for large parts of that interface to be * entirely optional. The downside is more pointer chasing; chasing across * the __user boundary with pointers encapsulated inside u64. - * - * Example chaining: - * - * .. code-block:: C - * - * struct i915_user_extension ext3 { - * .next_extension = 0, // end - * .name = ..., - * }; - * struct i915_user_extension ext2 { - * .next_extension = (uintptr_t)&ext3, - * .name = ..., - * }; - * struct i915_user_extension ext1 { - * .next_extension = (uintptr_t)&ext2, - * .name = ..., - * }; - * - * Typically the struct i915_user_extension would be embedded in some uAPI - * struct, and in this case we would feed it the head of the chain(i.e ext1), - * which would then apply all of the above extensions. - * */ struct i915_user_extension { - /** - * @next_extension: - * - * Pointer to the next struct i915_user_extension, or zero if the end. - */ __u64 next_extension; - /** - * @name: Name of the extension. - * - * Note that the name here is just some integer. - * - * Also note that the name space for this is not global for the whole - * driver, but rather its scope/meaning is limited to the specific piece - * of uAPI which has embedded the struct i915_user_extension. - */ __u32 name; - /** - * @flags: MBZ - * - * All undefined bits must be zero. - */ - __u32 flags; - /** - * @rsvd: MBZ - * - * Reserved for future use; must be zero. - */ - __u32 rsvd[4]; + __u32 flags; /* All undefined bits must be zero. */ + __u32 rsvd[4]; /* Reserved for future use; must be zero. */ }; /* @@ -406,7 +360,6 @@ typedef struct _drm_i915_sarea { #define DRM_I915_QUERY 0x39 #define DRM_I915_GEM_VM_CREATE 0x3a #define DRM_I915_GEM_VM_DESTROY 0x3b -#define DRM_I915_GEM_CREATE_EXT 0x3c /* Must be kept compact -- no holes */ #define DRM_IOCTL_I915_INIT DRM_IOW( DRM_COMMAND_BASE + DRM_I915_INIT, drm_i915_init_t) @@ -439,7 +392,6 @@ typedef struct _drm_i915_sarea { #define DRM_IOCTL_I915_GEM_ENTERVT DRM_IO(DRM_COMMAND_BASE + DRM_I915_GEM_ENTERVT) #define DRM_IOCTL_I915_GEM_LEAVEVT DRM_IO(DRM_COMMAND_BASE + DRM_I915_GEM_LEAVEVT) #define DRM_IOCTL_I915_GEM_CREATE DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_CREATE, struct drm_i915_gem_create) -#define DRM_IOCTL_I915_GEM_CREATE_EXT DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_CREATE_EXT, struct drm_i915_gem_create_ext) #define DRM_IOCTL_I915_GEM_PREAD DRM_IOW (DRM_COMMAND_BASE + DRM_I915_GEM_PREAD, struct drm_i915_gem_pread) #define DRM_IOCTL_I915_GEM_PWRITE DRM_IOW (DRM_COMMAND_BASE + DRM_I915_GEM_PWRITE, struct drm_i915_gem_pwrite) #define DRM_IOCTL_I915_GEM_MMAP DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_MMAP, struct drm_i915_gem_mmap) @@ -572,15 +524,6 @@ typedef struct drm_i915_irq_wait { #define I915_SCHEDULER_CAP_PREEMPTION (1ul << 2) #define I915_SCHEDULER_CAP_SEMAPHORES (1ul << 3) #define I915_SCHEDULER_CAP_ENGINE_BUSY_STATS (1ul << 4) -/* - * Indicates the 2k user priority levels are statically mapped into 3 buckets as - * follows: - * - * -1k to -1 Low priority - * 0 Normal priority - * 1 to 1k Highest priority - */ -#define I915_SCHEDULER_CAP_STATIC_PRIORITY_MAP (1ul << 5) #define I915_PARAM_HUC_STATUS 42 @@ -683,9 +626,6 @@ typedef struct drm_i915_irq_wait { */ #define I915_PARAM_HAS_EXEC_TIMELINE_FENCES 55 -/* Query if the kernel supports the I915_USERPTR_PROBE flag. */ -#define I915_PARAM_HAS_USERPTR_PROBE 56 - /* Must be kept compact -- no holes and well documented */ typedef struct drm_i915_getparam { @@ -861,113 +801,45 @@ struct drm_i915_gem_mmap_gtt { __u64 offset; }; -/** - * struct drm_i915_gem_mmap_offset - Retrieve an offset so we can mmap this buffer object. - * - * This struct is passed as argument to the `DRM_IOCTL_I915_GEM_MMAP_OFFSET` ioctl, - * and is used to retrieve the fake offset to mmap an object specified by &handle. - * - * The legacy way of using `DRM_IOCTL_I915_GEM_MMAP` is removed on gen12+. - * `DRM_IOCTL_I915_GEM_MMAP_GTT` is an older supported alias to this struct, but will behave - * as setting the &extensions to 0, and &flags to `I915_MMAP_OFFSET_GTT`. - */ struct drm_i915_gem_mmap_offset { - /** @handle: Handle for the object being mapped. */ + /** Handle for the object being mapped. */ __u32 handle; - /** @pad: Must be zero */ __u32 pad; /** - * @offset: The fake offset to use for subsequent mmap call + * Fake offset to use for subsequent mmap call * * This is a fixed-size type for 32/64 compatibility. */ __u64 offset; /** - * @flags: Flags for extended behaviour. - * - * It is mandatory that one of the `MMAP_OFFSET` types - * should be included: - * - * - `I915_MMAP_OFFSET_GTT`: Use mmap with the object bound to GTT. (Write-Combined) - * - `I915_MMAP_OFFSET_WC`: Use Write-Combined caching. - * - `I915_MMAP_OFFSET_WB`: Use Write-Back caching. - * - `I915_MMAP_OFFSET_FIXED`: Use object placement to determine caching. - * - * On devices with local memory `I915_MMAP_OFFSET_FIXED` is the only valid - * type. On devices without local memory, this caching mode is invalid. + * Flags for extended behaviour. * - * As caching mode when specifying `I915_MMAP_OFFSET_FIXED`, WC or WB will - * be used, depending on the object placement on creation. WB will be used - * when the object can only exist in system memory, WC otherwise. + * It is mandatory that one of the MMAP_OFFSET types + * (GTT, WC, WB, UC, etc) should be included. */ __u64 flags; +#define I915_MMAP_OFFSET_GTT 0 +#define I915_MMAP_OFFSET_WC 1 +#define I915_MMAP_OFFSET_WB 2 +#define I915_MMAP_OFFSET_UC 3 -#define I915_MMAP_OFFSET_GTT 0 -#define I915_MMAP_OFFSET_WC 1 -#define I915_MMAP_OFFSET_WB 2 -#define I915_MMAP_OFFSET_UC 3 -#define I915_MMAP_OFFSET_FIXED 4 - - /** - * @extensions: Zero-terminated chain of extensions. + /* + * Zero-terminated chain of extensions. * * No current extensions defined; mbz. */ __u64 extensions; }; -/** - * struct drm_i915_gem_set_domain - Adjust the objects write or read domain, in - * preparation for accessing the pages via some CPU domain. - * - * Specifying a new write or read domain will flush the object out of the - * previous domain(if required), before then updating the objects domain - * tracking with the new domain. - * - * Note this might involve waiting for the object first if it is still active on - * the GPU. - * - * Supported values for @read_domains and @write_domain: - * - * - I915_GEM_DOMAIN_WC: Uncached write-combined domain - * - I915_GEM_DOMAIN_CPU: CPU cache domain - * - I915_GEM_DOMAIN_GTT: Mappable aperture domain - * - * All other domains are rejected. - * - * Note that for discrete, starting from DG1, this is no longer supported, and - * is instead rejected. On such platforms the CPU domain is effectively static, - * where we also only support a single &drm_i915_gem_mmap_offset cache mode, - * which can't be set explicitly and instead depends on the object placements, - * as per the below. - * - * Implicit caching rules, starting from DG1: - * - * - If any of the object placements (see &drm_i915_gem_create_ext_memory_regions) - * contain I915_MEMORY_CLASS_DEVICE then the object will be allocated and - * mapped as write-combined only. - * - * - Everything else is always allocated and mapped as write-back, with the - * guarantee that everything is also coherent with the GPU. - * - * Note that this is likely to change in the future again, where we might need - * more flexibility on future devices, so making this all explicit as part of a - * new &drm_i915_gem_create_ext extension is probable. - */ struct drm_i915_gem_set_domain { - /** @handle: Handle for the object. */ + /** Handle for the object */ __u32 handle; - /** @read_domains: New read domains. */ + /** New read domains */ __u32 read_domains; - /** - * @write_domain: New write domain. - * - * Note that having something in the write domain implies it's in the - * read domain, and only that read domain. - */ + /** New write domain */ __u32 write_domain; }; @@ -1071,7 +943,6 @@ struct drm_i915_gem_exec_object { __u64 offset; }; -/* DRM_IOCTL_I915_GEM_EXECBUFFER was removed in Linux 5.13 */ struct drm_i915_gem_execbuffer { /** * List of buffers to be validated with their relocations to be @@ -1182,12 +1053,12 @@ struct drm_i915_gem_exec_fence { __u32 flags; }; -/* +/** * See drm_i915_gem_execbuffer_ext_timeline_fences. */ #define DRM_I915_GEM_EXECBUFFER_EXT_TIMELINE_FENCES 0 -/* +/** * This structure describes an array of drm_syncobj and associated points for * timeline variants of drm_syncobj. It is invalid to append this structure to * the execbuf if I915_EXEC_FENCE_ARRAY is set. @@ -1428,11 +1299,12 @@ struct drm_i915_gem_busy { * reading from the object simultaneously. * * The value of each engine class is the same as specified in the - * I915_CONTEXT_PARAM_ENGINES context parameter and via perf, i.e. + * I915_CONTEXT_SET_ENGINES parameter and via perf, i.e. * I915_ENGINE_CLASS_RENDER, I915_ENGINE_CLASS_COPY, etc. - * Some hardware may have parallel execution engines, e.g. multiple - * media engines, which are mapped to the same class identifier and so - * are not separately reported for busyness. + * reported as active itself. Some hardware may have parallel + * execution engines, e.g. multiple media engines, which are + * mapped to the same class identifier and so are not separately + * reported for busyness. * * Caveat emptor: * Only the boolean result of this query is reliable; that is whether @@ -1443,91 +1315,49 @@ struct drm_i915_gem_busy { }; /** - * struct drm_i915_gem_caching - Set or get the caching for given object - * handle. - * - * Allow userspace to control the GTT caching bits for a given object when the - * object is later mapped through the ppGTT(or GGTT on older platforms lacking - * ppGTT support, or if the object is used for scanout). Note that this might - * require unbinding the object from the GTT first, if its current caching value - * doesn't match. - * - * Note that this all changes on discrete platforms, starting from DG1, the - * set/get caching is no longer supported, and is now rejected. Instead the CPU - * caching attributes(WB vs WC) will become an immutable creation time property - * for the object, along with the GTT caching level. For now we don't expose any - * new uAPI for this, instead on DG1 this is all implicit, although this largely - * shouldn't matter since DG1 is coherent by default(without any way of - * controlling it). - * - * Implicit caching rules, starting from DG1: - * - * - If any of the object placements (see &drm_i915_gem_create_ext_memory_regions) - * contain I915_MEMORY_CLASS_DEVICE then the object will be allocated and - * mapped as write-combined only. - * - * - Everything else is always allocated and mapped as write-back, with the - * guarantee that everything is also coherent with the GPU. - * - * Note that this is likely to change in the future again, where we might need - * more flexibility on future devices, so making this all explicit as part of a - * new &drm_i915_gem_create_ext extension is probable. - * - * Side note: Part of the reason for this is that changing the at-allocation-time CPU - * caching attributes for the pages might be required(and is expensive) if we - * need to then CPU map the pages later with different caching attributes. This - * inconsistent caching behaviour, while supported on x86, is not universally - * supported on other architectures. So for simplicity we opt for setting - * everything at creation time, whilst also making it immutable, on discrete - * platforms. + * I915_CACHING_NONE + * + * GPU access is not coherent with cpu caches. Default for machines without an + * LLC. + */ +#define I915_CACHING_NONE 0 +/** + * I915_CACHING_CACHED + * + * GPU access is coherent with cpu caches and furthermore the data is cached in + * last-level caches shared between cpu cores and the gpu GT. Default on + * machines with HAS_LLC. + */ +#define I915_CACHING_CACHED 1 +/** + * I915_CACHING_DISPLAY + * + * Special GPU caching mode which is coherent with the scanout engines. + * Transparently falls back to I915_CACHING_NONE on platforms where no special + * cache mode (like write-through or gfdt flushing) is available. The kernel + * automatically sets this mode when using a buffer as a scanout target. + * Userspace can manually set this mode to avoid a costly stall and clflush in + * the hotpath of drawing the first frame. */ +#define I915_CACHING_DISPLAY 2 + struct drm_i915_gem_caching { /** - * @handle: Handle of the buffer to set/get the caching level. - */ + * Handle of the buffer to set/get the caching level of. */ __u32 handle; /** - * @caching: The GTT caching level to apply or possible return value. - * - * The supported @caching values: - * - * I915_CACHING_NONE: + * Cacheing level to apply or return value * - * GPU access is not coherent with CPU caches. Default for machines - * without an LLC. This means manual flushing might be needed, if we - * want GPU access to be coherent. - * - * I915_CACHING_CACHED: - * - * GPU access is coherent with CPU caches and furthermore the data is - * cached in last-level caches shared between CPU cores and the GPU GT. - * - * I915_CACHING_DISPLAY: - * - * Special GPU caching mode which is coherent with the scanout engines. - * Transparently falls back to I915_CACHING_NONE on platforms where no - * special cache mode (like write-through or gfdt flushing) is - * available. The kernel automatically sets this mode when using a - * buffer as a scanout target. Userspace can manually set this mode to - * avoid a costly stall and clflush in the hotpath of drawing the first - * frame. - */ -#define I915_CACHING_NONE 0 -#define I915_CACHING_CACHED 1 -#define I915_CACHING_DISPLAY 2 + * bits0-15 are for generic caching control (i.e. the above defined + * values). bits16-31 are reserved for platform-specific variations + * (e.g. l3$ caching on gen7). */ __u32 caching; }; #define I915_TILING_NONE 0 #define I915_TILING_X 1 #define I915_TILING_Y 2 -/* - * Do not add new tiling types here. The I915_TILING_* values are for - * de-tiling fence registers that no longer exist on modern platforms. Although - * the hardware may support new types of tiling in general (e.g., Tile4), we - * do not need to add them to the uapi that is specific to now-defunct ioctls. - */ #define I915_TILING_LAST I915_TILING_Y #define I915_BIT_6_SWIZZLE_NONE 0 @@ -1760,10 +1590,6 @@ struct drm_i915_gem_context_param { __u32 size; __u64 param; #define I915_CONTEXT_PARAM_BAN_PERIOD 0x1 -/* I915_CONTEXT_PARAM_NO_ZEROMAP has been removed. On the off chance - * someone somewhere has attempted to use it, never re-use this context - * param number. - */ #define I915_CONTEXT_PARAM_NO_ZEROMAP 0x2 #define I915_CONTEXT_PARAM_GTT_SIZE 0x3 #define I915_CONTEXT_PARAM_NO_ERROR_CAPTURE 0x4 @@ -1830,7 +1656,6 @@ struct drm_i915_gem_context_param { * Extensions: * i915_context_engines_load_balance (I915_CONTEXT_ENGINES_EXT_LOAD_BALANCE) * i915_context_engines_bond (I915_CONTEXT_ENGINES_EXT_BOND) - * i915_context_engines_parallel_submit (I915_CONTEXT_ENGINES_EXT_PARALLEL_SUBMIT) */ #define I915_CONTEXT_PARAM_ENGINES 0xa @@ -1849,65 +1674,32 @@ struct drm_i915_gem_context_param { */ #define I915_CONTEXT_PARAM_PERSISTENCE 0xb -/* This API has been removed. On the off chance someone somewhere has - * attempted to use it, never re-use this context param number. +/* + * I915_CONTEXT_PARAM_RINGSIZE: + * + * Sets the size of the CS ringbuffer to use for logical ring contexts. This + * applies a limit of how many batches can be queued to HW before the caller + * is blocked due to lack of space for more commands. + * + * Only reliably possible to be set prior to first use, i.e. during + * construction. At any later point, the current execution must be flushed as + * the ring can only be changed while the context is idle. Note, the ringsize + * can be specified as a constructor property, see + * I915_CONTEXT_CREATE_EXT_SETPARAM, but can also be set later if required. + * + * Only applies to the current set of engine and lost when those engines + * are replaced by a new mapping (see I915_CONTEXT_PARAM_ENGINES). + * + * Must be between 4 - 512 KiB, in intervals of page size [4 KiB]. + * Default is 16 KiB. */ #define I915_CONTEXT_PARAM_RINGSIZE 0xc - -/* - * I915_CONTEXT_PARAM_PROTECTED_CONTENT: - * - * Mark that the context makes use of protected content, which will result - * in the context being invalidated when the protected content session is. - * Given that the protected content session is killed on suspend, the device - * is kept awake for the lifetime of a protected context, so the user should - * make sure to dispose of them once done. - * This flag can only be set at context creation time and, when set to true, - * must be preceded by an explicit setting of I915_CONTEXT_PARAM_RECOVERABLE - * to false. This flag can't be set to true in conjunction with setting the - * I915_CONTEXT_PARAM_BANNABLE flag to false. Creation example: - * - * .. code-block:: C - * - * struct drm_i915_gem_context_create_ext_setparam p_protected = { - * .base = { - * .name = I915_CONTEXT_CREATE_EXT_SETPARAM, - * }, - * .param = { - * .param = I915_CONTEXT_PARAM_PROTECTED_CONTENT, - * .value = 1, - * } - * }; - * struct drm_i915_gem_context_create_ext_setparam p_norecover = { - * .base = { - * .name = I915_CONTEXT_CREATE_EXT_SETPARAM, - * .next_extension = to_user_pointer(&p_protected), - * }, - * .param = { - * .param = I915_CONTEXT_PARAM_RECOVERABLE, - * .value = 0, - * } - * }; - * struct drm_i915_gem_context_create_ext create = { - * .flags = I915_CONTEXT_CREATE_FLAGS_USE_EXTENSIONS, - * .extensions = to_user_pointer(&p_norecover); - * }; - * - * ctx_id = gem_context_create_ext(drm_fd, &create); - * - * In addition to the normal failure cases, setting this flag during context - * creation can result in the following errors: - * - * -ENODEV: feature not available - * -EPERM: trying to mark a recoverable or not bannable context as protected - */ -#define I915_CONTEXT_PARAM_PROTECTED_CONTENT 0xd /* Must be kept compact -- no holes and well documented */ __u64 value; }; -/* +/** * Context SSEU programming * * It may be necessary for either functional or performance reason to configure @@ -1966,69 +1758,6 @@ struct drm_i915_gem_context_param_sseu { __u32 rsvd; }; -/** - * DOC: Virtual Engine uAPI - * - * Virtual engine is a concept where userspace is able to configure a set of - * physical engines, submit a batch buffer, and let the driver execute it on any - * engine from the set as it sees fit. - * - * This is primarily useful on parts which have multiple instances of a same - * class engine, like for example GT3+ Skylake parts with their two VCS engines. - * - * For instance userspace can enumerate all engines of a certain class using the - * previously described `Engine Discovery uAPI`_. After that userspace can - * create a GEM context with a placeholder slot for the virtual engine (using - * `I915_ENGINE_CLASS_INVALID` and `I915_ENGINE_CLASS_INVALID_NONE` for class - * and instance respectively) and finally using the - * `I915_CONTEXT_ENGINES_EXT_LOAD_BALANCE` extension place a virtual engine in - * the same reserved slot. - * - * Example of creating a virtual engine and submitting a batch buffer to it: - * - * .. code-block:: C - * - * I915_DEFINE_CONTEXT_ENGINES_LOAD_BALANCE(virtual, 2) = { - * .base.name = I915_CONTEXT_ENGINES_EXT_LOAD_BALANCE, - * .engine_index = 0, // Place this virtual engine into engine map slot 0 - * .num_siblings = 2, - * .engines = { { I915_ENGINE_CLASS_VIDEO, 0 }, - * { I915_ENGINE_CLASS_VIDEO, 1 }, }, - * }; - * I915_DEFINE_CONTEXT_PARAM_ENGINES(engines, 1) = { - * .engines = { { I915_ENGINE_CLASS_INVALID, - * I915_ENGINE_CLASS_INVALID_NONE } }, - * .extensions = to_user_pointer(&virtual), // Chains after load_balance extension - * }; - * struct drm_i915_gem_context_create_ext_setparam p_engines = { - * .base = { - * .name = I915_CONTEXT_CREATE_EXT_SETPARAM, - * }, - * .param = { - * .param = I915_CONTEXT_PARAM_ENGINES, - * .value = to_user_pointer(&engines), - * .size = sizeof(engines), - * }, - * }; - * struct drm_i915_gem_context_create_ext create = { - * .flags = I915_CONTEXT_CREATE_FLAGS_USE_EXTENSIONS, - * .extensions = to_user_pointer(&p_engines); - * }; - * - * ctx_id = gem_context_create_ext(drm_fd, &create); - * - * // Now we have created a GEM context with its engine map containing a - * // single virtual engine. Submissions to this slot can go either to - * // vcs0 or vcs1, depending on the load balancing algorithm used inside - * // the driver. The load balancing is dynamic from one batch buffer to - * // another and transparent to userspace. - * - * ... - * execbuf.rsvd1 = ctx_id; - * execbuf.flags = 0; // Submits to index 0 which is the virtual engine - * gem_execbuf(drm_fd, &execbuf); - */ - /* * i915_context_engines_load_balance: * @@ -2105,195 +1834,10 @@ struct i915_context_engines_bond { struct i915_engine_class_instance engines[N__]; \ } __attribute__((packed)) name__ -/** - * struct i915_context_engines_parallel_submit - Configure engine for - * parallel submission. - * - * Setup a slot in the context engine map to allow multiple BBs to be submitted - * in a single execbuf IOCTL. Those BBs will then be scheduled to run on the GPU - * in parallel. Multiple hardware contexts are created internally in the i915 to - * run these BBs. Once a slot is configured for N BBs only N BBs can be - * submitted in each execbuf IOCTL and this is implicit behavior e.g. The user - * doesn't tell the execbuf IOCTL there are N BBs, the execbuf IOCTL knows how - * many BBs there are based on the slot's configuration. The N BBs are the last - * N buffer objects or first N if I915_EXEC_BATCH_FIRST is set. - * - * The default placement behavior is to create implicit bonds between each - * context if each context maps to more than 1 physical engine (e.g. context is - * a virtual engine). Also we only allow contexts of same engine class and these - * contexts must be in logically contiguous order. Examples of the placement - * behavior are described below. Lastly, the default is to not allow BBs to be - * preempted mid-batch. Rather insert coordinated preemption points on all - * hardware contexts between each set of BBs. Flags could be added in the future - * to change both of these default behaviors. - * - * Returns -EINVAL if hardware context placement configuration is invalid or if - * the placement configuration isn't supported on the platform / submission - * interface. - * Returns -ENODEV if extension isn't supported on the platform / submission - * interface. - * - * .. code-block:: none - * - * Examples syntax: - * CS[X] = generic engine of same class, logical instance X - * INVALID = I915_ENGINE_CLASS_INVALID, I915_ENGINE_CLASS_INVALID_NONE - * - * Example 1 pseudo code: - * set_engines(INVALID) - * set_parallel(engine_index=0, width=2, num_siblings=1, - * engines=CS[0],CS[1]) - * - * Results in the following valid placement: - * CS[0], CS[1] - * - * Example 2 pseudo code: - * set_engines(INVALID) - * set_parallel(engine_index=0, width=2, num_siblings=2, - * engines=CS[0],CS[2],CS[1],CS[3]) - * - * Results in the following valid placements: - * CS[0], CS[1] - * CS[2], CS[3] - * - * This can be thought of as two virtual engines, each containing two - * engines thereby making a 2D array. However, there are bonds tying the - * entries together and placing restrictions on how they can be scheduled. - * Specifically, the scheduler can choose only vertical columns from the 2D - * array. That is, CS[0] is bonded to CS[1] and CS[2] to CS[3]. So if the - * scheduler wants to submit to CS[0], it must also choose CS[1] and vice - * versa. Same for CS[2] requires also using CS[3]. - * VE[0] = CS[0], CS[2] - * VE[1] = CS[1], CS[3] - * - * Example 3 pseudo code: - * set_engines(INVALID) - * set_parallel(engine_index=0, width=2, num_siblings=2, - * engines=CS[0],CS[1],CS[1],CS[3]) - * - * Results in the following valid and invalid placements: - * CS[0], CS[1] - * CS[1], CS[3] - Not logically contiguous, return -EINVAL - */ -struct i915_context_engines_parallel_submit { - /** - * @base: base user extension. - */ - struct i915_user_extension base; - - /** - * @engine_index: slot for parallel engine - */ - __u16 engine_index; - - /** - * @width: number of contexts per parallel engine or in other words the - * number of batches in each submission - */ - __u16 width; - - /** - * @num_siblings: number of siblings per context or in other words the - * number of possible placements for each submission - */ - __u16 num_siblings; - - /** - * @mbz16: reserved for future use; must be zero - */ - __u16 mbz16; - - /** - * @flags: all undefined flags must be zero, currently not defined flags - */ - __u64 flags; - - /** - * @mbz64: reserved for future use; must be zero - */ - __u64 mbz64[3]; - - /** - * @engines: 2-d array of engine instances to configure parallel engine - * - * length = width (i) * num_siblings (j) - * index = j + i * num_siblings - */ - struct i915_engine_class_instance engines[0]; - -} __packed; - -#define I915_DEFINE_CONTEXT_ENGINES_PARALLEL_SUBMIT(name__, N__) struct { \ - struct i915_user_extension base; \ - __u16 engine_index; \ - __u16 width; \ - __u16 num_siblings; \ - __u16 mbz16; \ - __u64 flags; \ - __u64 mbz64[3]; \ - struct i915_engine_class_instance engines[N__]; \ -} __attribute__((packed)) name__ - -/** - * DOC: Context Engine Map uAPI - * - * Context engine map is a new way of addressing engines when submitting batch- - * buffers, replacing the existing way of using identifiers like `I915_EXEC_BLT` - * inside the flags field of `struct drm_i915_gem_execbuffer2`. - * - * To use it created GEM contexts need to be configured with a list of engines - * the user is intending to submit to. This is accomplished using the - * `I915_CONTEXT_PARAM_ENGINES` parameter and `struct - * i915_context_param_engines`. - * - * For such contexts the `I915_EXEC_RING_MASK` field becomes an index into the - * configured map. - * - * Example of creating such context and submitting against it: - * - * .. code-block:: C - * - * I915_DEFINE_CONTEXT_PARAM_ENGINES(engines, 2) = { - * .engines = { { I915_ENGINE_CLASS_RENDER, 0 }, - * { I915_ENGINE_CLASS_COPY, 0 } } - * }; - * struct drm_i915_gem_context_create_ext_setparam p_engines = { - * .base = { - * .name = I915_CONTEXT_CREATE_EXT_SETPARAM, - * }, - * .param = { - * .param = I915_CONTEXT_PARAM_ENGINES, - * .value = to_user_pointer(&engines), - * .size = sizeof(engines), - * }, - * }; - * struct drm_i915_gem_context_create_ext create = { - * .flags = I915_CONTEXT_CREATE_FLAGS_USE_EXTENSIONS, - * .extensions = to_user_pointer(&p_engines); - * }; - * - * ctx_id = gem_context_create_ext(drm_fd, &create); - * - * // We have now created a GEM context with two engines in the map: - * // Index 0 points to rcs0 while index 1 points to bcs0. Other engines - * // will not be accessible from this context. - * - * ... - * execbuf.rsvd1 = ctx_id; - * execbuf.flags = 0; // Submits to index 0, which is rcs0 for this context - * gem_execbuf(drm_fd, &execbuf); - * - * ... - * execbuf.rsvd1 = ctx_id; - * execbuf.flags = 1; // Submits to index 0, which is bcs0 for this context - * gem_execbuf(drm_fd, &execbuf); - */ - struct i915_context_param_engines { __u64 extensions; /* linked chain of extension blocks, 0 terminates */ #define I915_CONTEXT_ENGINES_EXT_LOAD_BALANCE 0 /* see i915_context_engines_load_balance */ #define I915_CONTEXT_ENGINES_EXT_BOND 1 /* see i915_context_engines_bond */ -#define I915_CONTEXT_ENGINES_EXT_PARALLEL_SUBMIT 2 /* see i915_context_engines_parallel_submit */ struct i915_engine_class_instance engines[0]; } __attribute__((packed)); @@ -2308,10 +1852,20 @@ struct drm_i915_gem_context_create_ext_setparam { struct drm_i915_gem_context_param param; }; -/* This API has been removed. On the off chance someone somewhere has - * attempted to use it, never re-use this extension number. - */ +struct drm_i915_gem_context_create_ext_clone { #define I915_CONTEXT_CREATE_EXT_CLONE 1 + struct i915_user_extension base; + __u32 clone_id; + __u32 flags; +#define I915_CONTEXT_CLONE_ENGINES (1u << 0) +#define I915_CONTEXT_CLONE_FLAGS (1u << 1) +#define I915_CONTEXT_CLONE_SCHEDATTR (1u << 2) +#define I915_CONTEXT_CLONE_SSEU (1u << 3) +#define I915_CONTEXT_CLONE_TIMELINE (1u << 4) +#define I915_CONTEXT_CLONE_VM (1u << 5) +#define I915_CONTEXT_CLONE_UNKNOWN -(I915_CONTEXT_CLONE_VM << 1) + __u64 rsvd; +}; struct drm_i915_gem_context_destroy { __u32 ctx_id; @@ -2383,69 +1937,14 @@ struct drm_i915_reset_stats { __u32 pad; }; -/** - * struct drm_i915_gem_userptr - Create GEM object from user allocated memory. - * - * Userptr objects have several restrictions on what ioctls can be used with the - * object handle. - */ struct drm_i915_gem_userptr { - /** - * @user_ptr: The pointer to the allocated memory. - * - * Needs to be aligned to PAGE_SIZE. - */ __u64 user_ptr; - - /** - * @user_size: - * - * The size in bytes for the allocated memory. This will also become the - * object size. - * - * Needs to be aligned to PAGE_SIZE, and should be at least PAGE_SIZE, - * or larger. - */ __u64 user_size; - - /** - * @flags: - * - * Supported flags: - * - * I915_USERPTR_READ_ONLY: - * - * Mark the object as readonly, this also means GPU access can only be - * readonly. This is only supported on HW which supports readonly access - * through the GTT. If the HW can't support readonly access, an error is - * returned. - * - * I915_USERPTR_PROBE: - * - * Probe the provided @user_ptr range and validate that the @user_ptr is - * indeed pointing to normal memory and that the range is also valid. - * For example if some garbage address is given to the kernel, then this - * should complain. - * - * Returns -EFAULT if the probe failed. - * - * Note that this doesn't populate the backing pages, and also doesn't - * guarantee that the object will remain valid when the object is - * eventually used. - * - * The kernel supports this feature if I915_PARAM_HAS_USERPTR_PROBE - * returns a non-zero value. - * - * I915_USERPTR_UNSYNCHRONIZED: - * - * NOT USED. Setting this flag will result in an error. - */ __u32 flags; #define I915_USERPTR_READ_ONLY 0x1 -#define I915_USERPTR_PROBE 0x2 #define I915_USERPTR_UNSYNCHRONIZED 0x80000000 /** - * @handle: Returned handle for the object. + * Returned handle for the object. * * Object handles are nonzero. */ @@ -2567,7 +2066,7 @@ struct drm_i915_perf_open_param { __u64 properties_ptr; }; -/* +/** * Enable data capture for a stream that was either opened in a disabled state * via I915_PERF_FLAG_DISABLED or was later disabled via * I915_PERF_IOCTL_DISABLE. @@ -2581,7 +2080,7 @@ struct drm_i915_perf_open_param { */ #define I915_PERF_IOCTL_ENABLE _IO('i', 0x0) -/* +/** * Disable data capture for a stream. * * It is an error to try and read a stream that is disabled. @@ -2590,7 +2089,7 @@ struct drm_i915_perf_open_param { */ #define I915_PERF_IOCTL_DISABLE _IO('i', 0x1) -/* +/** * Change metrics_set captured by a stream. * * If the stream is bound to a specific context, the configuration change @@ -2603,7 +2102,7 @@ struct drm_i915_perf_open_param { */ #define I915_PERF_IOCTL_CONFIG _IO('i', 0x2) -/* +/** * Common to all i915 perf records */ struct drm_i915_perf_record_header { @@ -2651,7 +2150,7 @@ enum drm_i915_perf_record_type { DRM_I915_PERF_RECORD_MAX /* non-ABI */ }; -/* +/** * Structure to upload perf dynamic configuration into the kernel. */ struct drm_i915_perf_oa_config { @@ -2672,95 +2171,53 @@ struct drm_i915_perf_oa_config { __u64 flex_regs_ptr; }; -/** - * struct drm_i915_query_item - An individual query for the kernel to process. - * - * The behaviour is determined by the @query_id. Note that exactly what - * @data_ptr is also depends on the specific @query_id. - */ struct drm_i915_query_item { - /** @query_id: The id for this query */ __u64 query_id; #define DRM_I915_QUERY_TOPOLOGY_INFO 1 #define DRM_I915_QUERY_ENGINE_INFO 2 #define DRM_I915_QUERY_PERF_CONFIG 3 -#define DRM_I915_QUERY_MEMORY_REGIONS 4 /* Must be kept compact -- no holes and well documented */ - /** - * @length: - * + /* * When set to zero by userspace, this is filled with the size of the - * data to be written at the @data_ptr pointer. The kernel sets this + * data to be written at the data_ptr pointer. The kernel sets this * value to a negative value to signal an error on a particular query * item. */ __s32 length; - /** - * @flags: - * + /* * When query_id == DRM_I915_QUERY_TOPOLOGY_INFO, must be 0. * * When query_id == DRM_I915_QUERY_PERF_CONFIG, must be one of the - * following: - * - * - DRM_I915_QUERY_PERF_CONFIG_LIST - * - DRM_I915_QUERY_PERF_CONFIG_DATA_FOR_UUID - * - DRM_I915_QUERY_PERF_CONFIG_FOR_UUID + * following : + * - DRM_I915_QUERY_PERF_CONFIG_LIST + * - DRM_I915_QUERY_PERF_CONFIG_DATA_FOR_UUID + * - DRM_I915_QUERY_PERF_CONFIG_FOR_UUID */ __u32 flags; #define DRM_I915_QUERY_PERF_CONFIG_LIST 1 #define DRM_I915_QUERY_PERF_CONFIG_DATA_FOR_UUID 2 #define DRM_I915_QUERY_PERF_CONFIG_DATA_FOR_ID 3 - /** - * @data_ptr: - * - * Data will be written at the location pointed by @data_ptr when the - * value of @length matches the length of the data to be written by the + /* + * Data will be written at the location pointed by data_ptr when the + * value of length matches the length of the data to be written by the * kernel. */ __u64 data_ptr; }; -/** - * struct drm_i915_query - Supply an array of struct drm_i915_query_item for the - * kernel to fill out. - * - * Note that this is generally a two step process for each struct - * drm_i915_query_item in the array: - * - * 1. Call the DRM_IOCTL_I915_QUERY, giving it our array of struct - * drm_i915_query_item, with &drm_i915_query_item.length set to zero. The - * kernel will then fill in the size, in bytes, which tells userspace how - * memory it needs to allocate for the blob(say for an array of properties). - * - * 2. Next we call DRM_IOCTL_I915_QUERY again, this time with the - * &drm_i915_query_item.data_ptr equal to our newly allocated blob. Note that - * the &drm_i915_query_item.length should still be the same as what the - * kernel previously set. At this point the kernel can fill in the blob. - * - * Note that for some query items it can make sense for userspace to just pass - * in a buffer/blob equal to or larger than the required size. In this case only - * a single ioctl call is needed. For some smaller query items this can work - * quite well. - * - */ struct drm_i915_query { - /** @num_items: The number of elements in the @items_ptr array */ __u32 num_items; - /** - * @flags: Unused for now. Must be cleared to zero. + /* + * Unused for now. Must be cleared to zero. */ __u32 flags; - /** - * @items_ptr: - * - * Pointer to an array of struct drm_i915_query_item. The number of - * array elements is @num_items. + /* + * This points to an array of num_items drm_i915_query_item structures. */ __u64 items_ptr; }; @@ -2829,103 +2286,27 @@ struct drm_i915_query_topology_info { }; /** - * DOC: Engine Discovery uAPI - * - * Engine discovery uAPI is a way of enumerating physical engines present in a - * GPU associated with an open i915 DRM file descriptor. This supersedes the old - * way of using `DRM_IOCTL_I915_GETPARAM` and engine identifiers like - * `I915_PARAM_HAS_BLT`. - * - * The need for this interface came starting with Icelake and newer GPUs, which - * started to establish a pattern of having multiple engines of a same class, - * where not all instances were always completely functionally equivalent. - * - * Entry point for this uapi is `DRM_IOCTL_I915_QUERY` with the - * `DRM_I915_QUERY_ENGINE_INFO` as the queried item id. - * - * Example for getting the list of engines: - * - * .. code-block:: C - * - * struct drm_i915_query_engine_info *info; - * struct drm_i915_query_item item = { - * .query_id = DRM_I915_QUERY_ENGINE_INFO; - * }; - * struct drm_i915_query query = { - * .num_items = 1, - * .items_ptr = (uintptr_t)&item, - * }; - * int err, i; - * - * // First query the size of the blob we need, this needs to be large - * // enough to hold our array of engines. The kernel will fill out the - * // item.length for us, which is the number of bytes we need. - * // - * // Alternatively a large buffer can be allocated straight away enabling - * // querying in one pass, in which case item.length should contain the - * // length of the provided buffer. - * err = ioctl(fd, DRM_IOCTL_I915_QUERY, &query); - * if (err) ... - * - * info = calloc(1, item.length); - * // Now that we allocated the required number of bytes, we call the ioctl - * // again, this time with the data_ptr pointing to our newly allocated - * // blob, which the kernel can then populate with info on all engines. - * item.data_ptr = (uintptr_t)&info, - * - * err = ioctl(fd, DRM_IOCTL_I915_QUERY, &query); - * if (err) ... - * - * // We can now access each engine in the array - * for (i = 0; i < info->num_engines; i++) { - * struct drm_i915_engine_info einfo = info->engines[i]; - * u16 class = einfo.engine.class; - * u16 instance = einfo.engine.instance; - * .... - * } - * - * free(info); - * - * Each of the enumerated engines, apart from being defined by its class and - * instance (see `struct i915_engine_class_instance`), also can have flags and - * capabilities defined as documented in i915_drm.h. - * - * For instance video engines which support HEVC encoding will have the - * `I915_VIDEO_CLASS_CAPABILITY_HEVC` capability bit set. - * - * Engine discovery only fully comes to its own when combined with the new way - * of addressing engines when submitting batch buffers using contexts with - * engine maps configured. - */ - -/** * struct drm_i915_engine_info * * Describes one engine and it's capabilities as known to the driver. */ struct drm_i915_engine_info { - /** @engine: Engine class and instance. */ + /** Engine class and instance. */ struct i915_engine_class_instance engine; - /** @rsvd0: Reserved field. */ + /** Reserved field. */ __u32 rsvd0; - /** @flags: Engine flags. */ + /** Engine flags. */ __u64 flags; -#define I915_ENGINE_INFO_HAS_LOGICAL_INSTANCE (1 << 0) - /** @capabilities: Capabilities of this engine. */ + /** Capabilities of this engine. */ __u64 capabilities; #define I915_VIDEO_CLASS_CAPABILITY_HEVC (1 << 0) #define I915_VIDEO_AND_ENHANCE_CLASS_CAPABILITY_SFC (1 << 1) - /** @logical_instance: Logical instance of engine */ - __u16 logical_instance; - - /** @rsvd1: Reserved fields. */ - __u16 rsvd1[3]; - /** @rsvd2: Reserved fields. */ - __u64 rsvd2[3]; + /** Reserved fields. */ + __u64 rsvd1[4]; }; /** @@ -2935,13 +2316,13 @@ struct drm_i915_engine_info { * an array of struct drm_i915_engine_info structures. */ struct drm_i915_query_engine_info { - /** @num_engines: Number of struct drm_i915_engine_info structs following. */ + /** Number of struct drm_i915_engine_info structs following. */ __u32 num_engines; - /** @rsvd: MBZ */ + /** MBZ */ __u32 rsvd[3]; - /** @engines: Marker for drm_i915_engine_info structures. */ + /** Marker for drm_i915_engine_info structures. */ struct drm_i915_engine_info engines[]; }; @@ -2995,289 +2376,6 @@ struct drm_i915_query_perf_config { __u8 data[]; }; -/** - * enum drm_i915_gem_memory_class - Supported memory classes - */ -enum drm_i915_gem_memory_class { - /** @I915_MEMORY_CLASS_SYSTEM: System memory */ - I915_MEMORY_CLASS_SYSTEM = 0, - /** @I915_MEMORY_CLASS_DEVICE: Device local-memory */ - I915_MEMORY_CLASS_DEVICE, -}; - -/** - * struct drm_i915_gem_memory_class_instance - Identify particular memory region - */ -struct drm_i915_gem_memory_class_instance { - /** @memory_class: See enum drm_i915_gem_memory_class */ - __u16 memory_class; - - /** @memory_instance: Which instance */ - __u16 memory_instance; -}; - -/** - * struct drm_i915_memory_region_info - Describes one region as known to the - * driver. - * - * Note that we reserve some stuff here for potential future work. As an example - * we might want expose the capabilities for a given region, which could include - * things like if the region is CPU mappable/accessible, what are the supported - * mapping types etc. - * - * Note that to extend struct drm_i915_memory_region_info and struct - * drm_i915_query_memory_regions in the future the plan is to do the following: - * - * .. code-block:: C - * - * struct drm_i915_memory_region_info { - * struct drm_i915_gem_memory_class_instance region; - * union { - * __u32 rsvd0; - * __u32 new_thing1; - * }; - * ... - * union { - * __u64 rsvd1[8]; - * struct { - * __u64 new_thing2; - * __u64 new_thing3; - * ... - * }; - * }; - * }; - * - * With this things should remain source compatible between versions for - * userspace, even as we add new fields. - * - * Note this is using both struct drm_i915_query_item and struct drm_i915_query. - * For this new query we are adding the new query id DRM_I915_QUERY_MEMORY_REGIONS - * at &drm_i915_query_item.query_id. - */ -struct drm_i915_memory_region_info { - /** @region: The class:instance pair encoding */ - struct drm_i915_gem_memory_class_instance region; - - /** @rsvd0: MBZ */ - __u32 rsvd0; - - /** @probed_size: Memory probed by the driver (-1 = unknown) */ - __u64 probed_size; - - /** @unallocated_size: Estimate of memory remaining (-1 = unknown) */ - __u64 unallocated_size; - - /** @rsvd1: MBZ */ - __u64 rsvd1[8]; -}; - -/** - * struct drm_i915_query_memory_regions - * - * The region info query enumerates all regions known to the driver by filling - * in an array of struct drm_i915_memory_region_info structures. - * - * Example for getting the list of supported regions: - * - * .. code-block:: C - * - * struct drm_i915_query_memory_regions *info; - * struct drm_i915_query_item item = { - * .query_id = DRM_I915_QUERY_MEMORY_REGIONS; - * }; - * struct drm_i915_query query = { - * .num_items = 1, - * .items_ptr = (uintptr_t)&item, - * }; - * int err, i; - * - * // First query the size of the blob we need, this needs to be large - * // enough to hold our array of regions. The kernel will fill out the - * // item.length for us, which is the number of bytes we need. - * err = ioctl(fd, DRM_IOCTL_I915_QUERY, &query); - * if (err) ... - * - * info = calloc(1, item.length); - * // Now that we allocated the required number of bytes, we call the ioctl - * // again, this time with the data_ptr pointing to our newly allocated - * // blob, which the kernel can then populate with the all the region info. - * item.data_ptr = (uintptr_t)&info, - * - * err = ioctl(fd, DRM_IOCTL_I915_QUERY, &query); - * if (err) ... - * - * // We can now access each region in the array - * for (i = 0; i < info->num_regions; i++) { - * struct drm_i915_memory_region_info mr = info->regions[i]; - * u16 class = mr.region.class; - * u16 instance = mr.region.instance; - * - * .... - * } - * - * free(info); - */ -struct drm_i915_query_memory_regions { - /** @num_regions: Number of supported regions */ - __u32 num_regions; - - /** @rsvd: MBZ */ - __u32 rsvd[3]; - - /** @regions: Info about each supported region */ - struct drm_i915_memory_region_info regions[]; -}; - -/** - * struct drm_i915_gem_create_ext - Existing gem_create behaviour, with added - * extension support using struct i915_user_extension. - * - * Note that in the future we want to have our buffer flags here, at least for - * the stuff that is immutable. Previously we would have two ioctls, one to - * create the object with gem_create, and another to apply various parameters, - * however this creates some ambiguity for the params which are considered - * immutable. Also in general we're phasing out the various SET/GET ioctls. - */ -struct drm_i915_gem_create_ext { - /** - * @size: Requested size for the object. - * - * The (page-aligned) allocated size for the object will be returned. - * - * Note that for some devices we have might have further minimum - * page-size restrictions(larger than 4K), like for device local-memory. - * However in general the final size here should always reflect any - * rounding up, if for example using the I915_GEM_CREATE_EXT_MEMORY_REGIONS - * extension to place the object in device local-memory. - */ - __u64 size; - /** - * @handle: Returned handle for the object. - * - * Object handles are nonzero. - */ - __u32 handle; - /** @flags: MBZ */ - __u32 flags; - /** - * @extensions: The chain of extensions to apply to this object. - * - * This will be useful in the future when we need to support several - * different extensions, and we need to apply more than one when - * creating the object. See struct i915_user_extension. - * - * If we don't supply any extensions then we get the same old gem_create - * behaviour. - * - * For I915_GEM_CREATE_EXT_MEMORY_REGIONS usage see - * struct drm_i915_gem_create_ext_memory_regions. - * - * For I915_GEM_CREATE_EXT_PROTECTED_CONTENT usage see - * struct drm_i915_gem_create_ext_protected_content. - */ -#define I915_GEM_CREATE_EXT_MEMORY_REGIONS 0 -#define I915_GEM_CREATE_EXT_PROTECTED_CONTENT 1 - __u64 extensions; -}; - -/** - * struct drm_i915_gem_create_ext_memory_regions - The - * I915_GEM_CREATE_EXT_MEMORY_REGIONS extension. - * - * Set the object with the desired set of placements/regions in priority - * order. Each entry must be unique and supported by the device. - * - * This is provided as an array of struct drm_i915_gem_memory_class_instance, or - * an equivalent layout of class:instance pair encodings. See struct - * drm_i915_query_memory_regions and DRM_I915_QUERY_MEMORY_REGIONS for how to - * query the supported regions for a device. - * - * As an example, on discrete devices, if we wish to set the placement as - * device local-memory we can do something like: - * - * .. code-block:: C - * - * struct drm_i915_gem_memory_class_instance region_lmem = { - * .memory_class = I915_MEMORY_CLASS_DEVICE, - * .memory_instance = 0, - * }; - * struct drm_i915_gem_create_ext_memory_regions regions = { - * .base = { .name = I915_GEM_CREATE_EXT_MEMORY_REGIONS }, - * .regions = (uintptr_t)®ion_lmem, - * .num_regions = 1, - * }; - * struct drm_i915_gem_create_ext create_ext = { - * .size = 16 * PAGE_SIZE, - * .extensions = (uintptr_t)®ions, - * }; - * - * int err = ioctl(fd, DRM_IOCTL_I915_GEM_CREATE_EXT, &create_ext); - * if (err) ... - * - * At which point we get the object handle in &drm_i915_gem_create_ext.handle, - * along with the final object size in &drm_i915_gem_create_ext.size, which - * should account for any rounding up, if required. - */ -struct drm_i915_gem_create_ext_memory_regions { - /** @base: Extension link. See struct i915_user_extension. */ - struct i915_user_extension base; - - /** @pad: MBZ */ - __u32 pad; - /** @num_regions: Number of elements in the @regions array. */ - __u32 num_regions; - /** - * @regions: The regions/placements array. - * - * An array of struct drm_i915_gem_memory_class_instance. - */ - __u64 regions; -}; - -/** - * struct drm_i915_gem_create_ext_protected_content - The - * I915_OBJECT_PARAM_PROTECTED_CONTENT extension. - * - * If this extension is provided, buffer contents are expected to be protected - * by PXP encryption and require decryption for scan out and processing. This - * is only possible on platforms that have PXP enabled, on all other scenarios - * using this extension will cause the ioctl to fail and return -ENODEV. The - * flags parameter is reserved for future expansion and must currently be set - * to zero. - * - * The buffer contents are considered invalid after a PXP session teardown. - * - * The encryption is guaranteed to be processed correctly only if the object - * is submitted with a context created using the - * I915_CONTEXT_PARAM_PROTECTED_CONTENT flag. This will also enable extra checks - * at submission time on the validity of the objects involved. - * - * Below is an example on how to create a protected object: - * - * .. code-block:: C - * - * struct drm_i915_gem_create_ext_protected_content protected_ext = { - * .base = { .name = I915_GEM_CREATE_EXT_PROTECTED_CONTENT }, - * .flags = 0, - * }; - * struct drm_i915_gem_create_ext create_ext = { - * .size = PAGE_SIZE, - * .extensions = (uintptr_t)&protected_ext, - * }; - * - * int err = ioctl(fd, DRM_IOCTL_I915_GEM_CREATE_EXT, &create_ext); - * if (err) ... - */ -struct drm_i915_gem_create_ext_protected_content { - /** @base: Extension link. See struct i915_user_extension. */ - struct i915_user_extension base; - /** @flags: reserved for future usage, currently MBZ */ - __u32 flags; -}; - -/* ID of the protected content session managed by i915 when PXP is active */ -#define I915_PROTECTED_CONTENT_DEFAULT_SESSION 0xf - #if defined(__cplusplus) } #endif diff --git a/original/uapi/drm/mga_drm.h b/original/uapi/drm/mga_drm.h index bb31567..8c43375 100644 --- a/original/uapi/drm/mga_drm.h +++ b/original/uapi/drm/mga_drm.h @@ -279,22 +279,20 @@ typedef struct drm_mga_init { unsigned long sarea_priv_offset; - __struct_group(/* no tag */, always32bit, /* no attrs */, - int chipset; - int sgram; + int chipset; + int sgram; - unsigned int maccess; + unsigned int maccess; - unsigned int fb_cpp; - unsigned int front_offset, front_pitch; - unsigned int back_offset, back_pitch; + unsigned int fb_cpp; + unsigned int front_offset, front_pitch; + unsigned int back_offset, back_pitch; - unsigned int depth_cpp; - unsigned int depth_offset, depth_pitch; + unsigned int depth_cpp; + unsigned int depth_offset, depth_pitch; - unsigned int texture_offset[MGA_NR_TEX_HEAPS]; - unsigned int texture_size[MGA_NR_TEX_HEAPS]; - ); + unsigned int texture_offset[MGA_NR_TEX_HEAPS]; + unsigned int texture_size[MGA_NR_TEX_HEAPS]; unsigned long fb_offset; unsigned long mmio_offset; diff --git a/original/uapi/drm/msm_drm.h b/original/uapi/drm/msm_drm.h index 6b8fffc..a6c1f3e 100644 --- a/original/uapi/drm/msm_drm.h +++ b/original/uapi/drm/msm_drm.h @@ -73,18 +73,9 @@ struct drm_msm_timespec { #define MSM_PARAM_MAX_FREQ 0x04 #define MSM_PARAM_TIMESTAMP 0x05 #define MSM_PARAM_GMEM_BASE 0x06 -#define MSM_PARAM_PRIORITIES 0x07 /* The # of priority levels */ +#define MSM_PARAM_NR_RINGS 0x07 #define MSM_PARAM_PP_PGTABLE 0x08 /* => 1 for per-process pagetables, else 0 */ #define MSM_PARAM_FAULTS 0x09 -#define MSM_PARAM_SUSPENDS 0x0a - -/* For backwards compat. The original support for preemption was based on - * a single ring per priority level so # of priority levels equals the # - * of rings. With drm/scheduler providing additional levels of priority, - * the number of priorities is greater than the # of rings. The param is - * renamed to better reflect this. - */ -#define MSM_PARAM_NR_RINGS MSM_PARAM_PRIORITIES struct drm_msm_param { __u32 pipe; /* in, MSM_PIPE_x */ @@ -102,12 +93,13 @@ struct drm_msm_param { /* cache modes */ #define MSM_BO_CACHED 0x00010000 #define MSM_BO_WC 0x00020000 -#define MSM_BO_UNCACHED 0x00040000 /* deprecated, use MSM_BO_WC */ -#define MSM_BO_CACHED_COHERENT 0x080000 +#define MSM_BO_UNCACHED 0x00040000 #define MSM_BO_FLAGS (MSM_BO_SCANOUT | \ MSM_BO_GPU_READONLY | \ - MSM_BO_CACHE_MASK) + MSM_BO_CACHED | \ + MSM_BO_WC | \ + MSM_BO_UNCACHED) struct drm_msm_gem_new { __u64 size; /* in */ @@ -312,10 +304,6 @@ struct drm_msm_gem_madvise { #define MSM_SUBMITQUEUE_FLAGS (0) -/* - * The submitqueue priority should be between 0 and MSM_PARAM_PRIORITIES-1, - * a lower numeric value is higher priority. - */ struct drm_msm_submitqueue { __u32 flags; /* in, MSM_SUBMITQUEUE_x */ __u32 prio; /* in, Priority level */ diff --git a/original/uapi/drm/panfrost_drm.h b/original/uapi/drm/panfrost_drm.h index 061e700..ec19db1 100644 --- a/original/uapi/drm/panfrost_drm.h +++ b/original/uapi/drm/panfrost_drm.h @@ -171,7 +171,6 @@ enum drm_panfrost_param { DRM_PANFROST_PARAM_JS_FEATURES15, DRM_PANFROST_PARAM_NR_CORE_GROUPS, DRM_PANFROST_PARAM_THREAD_TLS_ALLOC, - DRM_PANFROST_PARAM_AFBC_FEATURES, }; struct drm_panfrost_get_param { diff --git a/original/uapi/drm/tegra_drm.h b/original/uapi/drm/tegra_drm.h index 94cfc30..c4df3c3 100644 --- a/original/uapi/drm/tegra_drm.h +++ b/original/uapi/drm/tegra_drm.h @@ -1,5 +1,24 @@ -/* SPDX-License-Identifier: MIT */ -/* Copyright (c) 2012-2020 NVIDIA Corporation */ +/* + * Copyright (c) 2012-2013, NVIDIA CORPORATION. All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR + * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ #ifndef _UAPI_TEGRA_DRM_H_ #define _UAPI_TEGRA_DRM_H_ @@ -10,8 +29,6 @@ extern "C" { #endif -/* Tegra DRM legacy UAPI. Only enabled with STAGING */ - #define DRM_TEGRA_GEM_CREATE_TILED (1 << 0) #define DRM_TEGRA_GEM_CREATE_BOTTOM_UP (1 << 1) @@ -632,8 +649,8 @@ struct drm_tegra_gem_get_flags { #define DRM_TEGRA_SYNCPT_READ 0x02 #define DRM_TEGRA_SYNCPT_INCR 0x03 #define DRM_TEGRA_SYNCPT_WAIT 0x04 -#define DRM_TEGRA_OPEN_CHANNEL 0x05 -#define DRM_TEGRA_CLOSE_CHANNEL 0x06 +#define DRM_TEGRA_OPEN_CHANNEL 0x05 +#define DRM_TEGRA_CLOSE_CHANNEL 0x06 #define DRM_TEGRA_GET_SYNCPT 0x07 #define DRM_TEGRA_SUBMIT 0x08 #define DRM_TEGRA_GET_SYNCPT_BASE 0x09 @@ -657,402 +674,6 @@ struct drm_tegra_gem_get_flags { #define DRM_IOCTL_TEGRA_GEM_SET_FLAGS DRM_IOWR(DRM_COMMAND_BASE + DRM_TEGRA_GEM_SET_FLAGS, struct drm_tegra_gem_set_flags) #define DRM_IOCTL_TEGRA_GEM_GET_FLAGS DRM_IOWR(DRM_COMMAND_BASE + DRM_TEGRA_GEM_GET_FLAGS, struct drm_tegra_gem_get_flags) -/* New Tegra DRM UAPI */ - -/* - * Reported by the driver in the `capabilities` field. - * - * DRM_TEGRA_CHANNEL_CAP_CACHE_COHERENT: If set, the engine is cache coherent - * with regard to the system memory. - */ -#define DRM_TEGRA_CHANNEL_CAP_CACHE_COHERENT (1 << 0) - -struct drm_tegra_channel_open { - /** - * @host1x_class: [in] - * - * Host1x class of the engine that will be programmed using this - * channel. - */ - __u32 host1x_class; - - /** - * @flags: [in] - * - * Flags. - */ - __u32 flags; - - /** - * @context: [out] - * - * Opaque identifier corresponding to the opened channel. - */ - __u32 context; - - /** - * @version: [out] - * - * Version of the engine hardware. This can be used by userspace - * to determine how the engine needs to be programmed. - */ - __u32 version; - - /** - * @capabilities: [out] - * - * Flags describing the hardware capabilities. - */ - __u32 capabilities; - __u32 padding; -}; - -struct drm_tegra_channel_close { - /** - * @context: [in] - * - * Identifier of the channel to close. - */ - __u32 context; - __u32 padding; -}; - -/* - * Mapping flags that can be used to influence how the mapping is created. - * - * DRM_TEGRA_CHANNEL_MAP_READ: create mapping that allows HW read access - * DRM_TEGRA_CHANNEL_MAP_WRITE: create mapping that allows HW write access - */ -#define DRM_TEGRA_CHANNEL_MAP_READ (1 << 0) -#define DRM_TEGRA_CHANNEL_MAP_WRITE (1 << 1) -#define DRM_TEGRA_CHANNEL_MAP_READ_WRITE (DRM_TEGRA_CHANNEL_MAP_READ | \ - DRM_TEGRA_CHANNEL_MAP_WRITE) - -struct drm_tegra_channel_map { - /** - * @context: [in] - * - * Identifier of the channel to which make memory available for. - */ - __u32 context; - - /** - * @handle: [in] - * - * GEM handle of the memory to map. - */ - __u32 handle; - - /** - * @flags: [in] - * - * Flags. - */ - __u32 flags; - - /** - * @mapping: [out] - * - * Identifier corresponding to the mapping, to be used for - * relocations or unmapping later. - */ - __u32 mapping; -}; - -struct drm_tegra_channel_unmap { - /** - * @context: [in] - * - * Channel identifier of the channel to unmap memory from. - */ - __u32 context; - - /** - * @mapping: [in] - * - * Mapping identifier of the memory mapping to unmap. - */ - __u32 mapping; -}; - -/* Submission */ - -/** - * Specify that bit 39 of the patched-in address should be set to switch - * swizzling between Tegra and non-Tegra sector layout on systems that store - * surfaces in system memory in non-Tegra sector layout. - */ -#define DRM_TEGRA_SUBMIT_RELOC_SECTOR_LAYOUT (1 << 0) - -struct drm_tegra_submit_buf { - /** - * @mapping: [in] - * - * Identifier of the mapping to use in the submission. - */ - __u32 mapping; - - /** - * @flags: [in] - * - * Flags. - */ - __u32 flags; - - /** - * Information for relocation patching. - */ - struct { - /** - * @target_offset: [in] - * - * Offset from the start of the mapping of the data whose - * address is to be patched into the gather. - */ - __u64 target_offset; - - /** - * @gather_offset_words: [in] - * - * Offset in words from the start of the gather data to - * where the address should be patched into. - */ - __u32 gather_offset_words; - - /** - * @shift: [in] - * - * Number of bits the address should be shifted right before - * patching in. - */ - __u32 shift; - } reloc; -}; - -/** - * Execute `words` words of Host1x opcodes specified in the `gather_data_ptr` - * buffer. Each GATHER_UPTR command uses successive words from the buffer. - */ -#define DRM_TEGRA_SUBMIT_CMD_GATHER_UPTR 0 -/** - * Wait for a syncpoint to reach a value before continuing with further - * commands. - */ -#define DRM_TEGRA_SUBMIT_CMD_WAIT_SYNCPT 1 -/** - * Wait for a syncpoint to reach a value before continuing with further - * commands. The threshold is calculated relative to the start of the job. - */ -#define DRM_TEGRA_SUBMIT_CMD_WAIT_SYNCPT_RELATIVE 2 - -struct drm_tegra_submit_cmd_gather_uptr { - __u32 words; - __u32 reserved[3]; -}; - -struct drm_tegra_submit_cmd_wait_syncpt { - __u32 id; - __u32 value; - __u32 reserved[2]; -}; - -struct drm_tegra_submit_cmd { - /** - * @type: [in] - * - * Command type to execute. One of the DRM_TEGRA_SUBMIT_CMD* - * defines. - */ - __u32 type; - - /** - * @flags: [in] - * - * Flags. - */ - __u32 flags; - - union { - struct drm_tegra_submit_cmd_gather_uptr gather_uptr; - struct drm_tegra_submit_cmd_wait_syncpt wait_syncpt; - __u32 reserved[4]; - }; -}; - -struct drm_tegra_submit_syncpt { - /** - * @id: [in] - * - * ID of the syncpoint that the job will increment. - */ - __u32 id; - - /** - * @flags: [in] - * - * Flags. - */ - __u32 flags; - - /** - * @increments: [in] - * - * Number of times the job will increment this syncpoint. - */ - __u32 increments; - - /** - * @value: [out] - * - * Value the syncpoint will have once the job has completed all - * its specified syncpoint increments. - * - * Note that the kernel may increment the syncpoint before or after - * the job. These increments are not reflected in this field. - * - * If the job hangs or times out, not all of the increments may - * get executed. - */ - __u32 value; -}; - -struct drm_tegra_channel_submit { - /** - * @context: [in] - * - * Identifier of the channel to submit this job to. - */ - __u32 context; - - /** - * @num_bufs: [in] - * - * Number of elements in the `bufs_ptr` array. - */ - __u32 num_bufs; - - /** - * @num_cmds: [in] - * - * Number of elements in the `cmds_ptr` array. - */ - __u32 num_cmds; - - /** - * @gather_data_words: [in] - * - * Number of 32-bit words in the `gather_data_ptr` array. - */ - __u32 gather_data_words; - - /** - * @bufs_ptr: [in] - * - * Pointer to an array of drm_tegra_submit_buf structures. - */ - __u64 bufs_ptr; - - /** - * @cmds_ptr: [in] - * - * Pointer to an array of drm_tegra_submit_cmd structures. - */ - __u64 cmds_ptr; - - /** - * @gather_data_ptr: [in] - * - * Pointer to an array of Host1x opcodes to be used by GATHER_UPTR - * commands. - */ - __u64 gather_data_ptr; - - /** - * @syncobj_in: [in] - * - * Handle for DRM syncobj that will be waited before submission. - * Ignored if zero. - */ - __u32 syncobj_in; - - /** - * @syncobj_out: [in] - * - * Handle for DRM syncobj that will have its fence replaced with - * the job's completion fence. Ignored if zero. - */ - __u32 syncobj_out; - - /** - * @syncpt_incr: [in,out] - * - * Information about the syncpoint the job will increment. - */ - struct drm_tegra_submit_syncpt syncpt; -}; - -struct drm_tegra_syncpoint_allocate { - /** - * @id: [out] - * - * ID of allocated syncpoint. - */ - __u32 id; - __u32 padding; -}; - -struct drm_tegra_syncpoint_free { - /** - * @id: [in] - * - * ID of syncpoint to free. - */ - __u32 id; - __u32 padding; -}; - -struct drm_tegra_syncpoint_wait { - /** - * @timeout: [in] - * - * Absolute timestamp at which the wait will time out. - */ - __s64 timeout_ns; - - /** - * @id: [in] - * - * ID of syncpoint to wait on. - */ - __u32 id; - - /** - * @threshold: [in] - * - * Threshold to wait for. - */ - __u32 threshold; - - /** - * @value: [out] - * - * Value of the syncpoint upon wait completion. - */ - __u32 value; - - __u32 padding; -}; - -#define DRM_IOCTL_TEGRA_CHANNEL_OPEN DRM_IOWR(DRM_COMMAND_BASE + 0x10, struct drm_tegra_channel_open) -#define DRM_IOCTL_TEGRA_CHANNEL_CLOSE DRM_IOWR(DRM_COMMAND_BASE + 0x11, struct drm_tegra_channel_close) -#define DRM_IOCTL_TEGRA_CHANNEL_MAP DRM_IOWR(DRM_COMMAND_BASE + 0x12, struct drm_tegra_channel_map) -#define DRM_IOCTL_TEGRA_CHANNEL_UNMAP DRM_IOWR(DRM_COMMAND_BASE + 0x13, struct drm_tegra_channel_unmap) -#define DRM_IOCTL_TEGRA_CHANNEL_SUBMIT DRM_IOWR(DRM_COMMAND_BASE + 0x14, struct drm_tegra_channel_submit) - -#define DRM_IOCTL_TEGRA_SYNCPOINT_ALLOCATE DRM_IOWR(DRM_COMMAND_BASE + 0x20, struct drm_tegra_syncpoint_allocate) -#define DRM_IOCTL_TEGRA_SYNCPOINT_FREE DRM_IOWR(DRM_COMMAND_BASE + 0x21, struct drm_tegra_syncpoint_free) -#define DRM_IOCTL_TEGRA_SYNCPOINT_WAIT DRM_IOWR(DRM_COMMAND_BASE + 0x22, struct drm_tegra_syncpoint_wait) - #if defined(__cplusplus) } #endif diff --git a/original/uapi/drm/v3d_drm.h b/original/uapi/drm/v3d_drm.h index 3dfc0af..1ce746e 100644 --- a/original/uapi/drm/v3d_drm.h +++ b/original/uapi/drm/v3d_drm.h @@ -38,9 +38,6 @@ extern "C" { #define DRM_V3D_GET_BO_OFFSET 0x05 #define DRM_V3D_SUBMIT_TFU 0x06 #define DRM_V3D_SUBMIT_CSD 0x07 -#define DRM_V3D_PERFMON_CREATE 0x08 -#define DRM_V3D_PERFMON_DESTROY 0x09 -#define DRM_V3D_PERFMON_GET_VALUES 0x0a #define DRM_IOCTL_V3D_SUBMIT_CL DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_SUBMIT_CL, struct drm_v3d_submit_cl) #define DRM_IOCTL_V3D_WAIT_BO DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_WAIT_BO, struct drm_v3d_wait_bo) @@ -50,75 +47,8 @@ extern "C" { #define DRM_IOCTL_V3D_GET_BO_OFFSET DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_GET_BO_OFFSET, struct drm_v3d_get_bo_offset) #define DRM_IOCTL_V3D_SUBMIT_TFU DRM_IOW(DRM_COMMAND_BASE + DRM_V3D_SUBMIT_TFU, struct drm_v3d_submit_tfu) #define DRM_IOCTL_V3D_SUBMIT_CSD DRM_IOW(DRM_COMMAND_BASE + DRM_V3D_SUBMIT_CSD, struct drm_v3d_submit_csd) -#define DRM_IOCTL_V3D_PERFMON_CREATE DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_PERFMON_CREATE, \ - struct drm_v3d_perfmon_create) -#define DRM_IOCTL_V3D_PERFMON_DESTROY DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_PERFMON_DESTROY, \ - struct drm_v3d_perfmon_destroy) -#define DRM_IOCTL_V3D_PERFMON_GET_VALUES DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_PERFMON_GET_VALUES, \ - struct drm_v3d_perfmon_get_values) #define DRM_V3D_SUBMIT_CL_FLUSH_CACHE 0x01 -#define DRM_V3D_SUBMIT_EXTENSION 0x02 - -/* struct drm_v3d_extension - ioctl extensions - * - * Linked-list of generic extensions where the id identify which struct is - * pointed by ext_data. Therefore, DRM_V3D_EXT_ID_* is used on id to identify - * the extension type. - */ -struct drm_v3d_extension { - __u64 next; - __u32 id; -#define DRM_V3D_EXT_ID_MULTI_SYNC 0x01 - __u32 flags; /* mbz */ -}; - -/* struct drm_v3d_sem - wait/signal semaphore - * - * If binary semaphore, it only takes syncobj handle and ignores flags and - * point fields. Point is defined for timeline syncobj feature. - */ -struct drm_v3d_sem { - __u32 handle; /* syncobj */ - /* rsv below, for future uses */ - __u32 flags; - __u64 point; /* for timeline sem support */ - __u64 mbz[2]; /* must be zero, rsv */ -}; - -/* Enum for each of the V3D queues. */ -enum v3d_queue { - V3D_BIN, - V3D_RENDER, - V3D_TFU, - V3D_CSD, - V3D_CACHE_CLEAN, -}; - -/** - * struct drm_v3d_multi_sync - ioctl extension to add support multiples - * syncobjs for commands submission. - * - * When an extension of DRM_V3D_EXT_ID_MULTI_SYNC id is defined, it points to - * this extension to define wait and signal dependencies, instead of single - * in/out sync entries on submitting commands. The field flags is used to - * determine the stage to set wait dependencies. - */ -struct drm_v3d_multi_sync { - struct drm_v3d_extension base; - /* Array of wait and signal semaphores */ - __u64 in_syncs; - __u64 out_syncs; - - /* Number of entries */ - __u32 in_sync_count; - __u32 out_sync_count; - - /* set the stage (v3d_queue) to sync */ - __u32 wait_stage; - - __u32 pad; /* mbz */ -}; /** * struct drm_v3d_submit_cl - ioctl argument for submitting commands to the 3D @@ -196,16 +126,7 @@ struct drm_v3d_submit_cl { /* Number of BO handles passed in (size is that times 4). */ __u32 bo_handle_count; - /* DRM_V3D_SUBMIT_* properties */ __u32 flags; - - /* ID of the perfmon to attach to this job. 0 means no perfmon. */ - __u32 perfmon_id; - - __u32 pad; - - /* Pointer to an array of ioctl extensions*/ - __u64 extensions; }; /** @@ -274,8 +195,6 @@ enum drm_v3d_param { DRM_V3D_PARAM_SUPPORTS_TFU, DRM_V3D_PARAM_SUPPORTS_CSD, DRM_V3D_PARAM_SUPPORTS_CACHE_FLUSH, - DRM_V3D_PARAM_SUPPORTS_PERFMON, - DRM_V3D_PARAM_SUPPORTS_MULTISYNC_EXT, }; struct drm_v3d_get_param { @@ -314,11 +233,6 @@ struct drm_v3d_submit_tfu { __u32 in_sync; /* Sync object to signal when the TFU job is done. */ __u32 out_sync; - - __u32 flags; - - /* Pointer to an array of ioctl extensions*/ - __u64 extensions; }; /* Submits a compute shader for dispatch. This job will block on any @@ -344,134 +258,6 @@ struct drm_v3d_submit_csd { __u32 in_sync; /* Sync object to signal when the CSD job is done. */ __u32 out_sync; - - /* ID of the perfmon to attach to this job. 0 means no perfmon. */ - __u32 perfmon_id; - - /* Pointer to an array of ioctl extensions*/ - __u64 extensions; - - __u32 flags; - - __u32 pad; -}; - -enum { - V3D_PERFCNT_FEP_VALID_PRIMTS_NO_PIXELS, - V3D_PERFCNT_FEP_VALID_PRIMS, - V3D_PERFCNT_FEP_EZ_NFCLIP_QUADS, - V3D_PERFCNT_FEP_VALID_QUADS, - V3D_PERFCNT_TLB_QUADS_STENCIL_FAIL, - V3D_PERFCNT_TLB_QUADS_STENCILZ_FAIL, - V3D_PERFCNT_TLB_QUADS_STENCILZ_PASS, - V3D_PERFCNT_TLB_QUADS_ZERO_COV, - V3D_PERFCNT_TLB_QUADS_NONZERO_COV, - V3D_PERFCNT_TLB_QUADS_WRITTEN, - V3D_PERFCNT_PTB_PRIM_VIEWPOINT_DISCARD, - V3D_PERFCNT_PTB_PRIM_CLIP, - V3D_PERFCNT_PTB_PRIM_REV, - V3D_PERFCNT_QPU_IDLE_CYCLES, - V3D_PERFCNT_QPU_ACTIVE_CYCLES_VERTEX_COORD_USER, - V3D_PERFCNT_QPU_ACTIVE_CYCLES_FRAG, - V3D_PERFCNT_QPU_CYCLES_VALID_INSTR, - V3D_PERFCNT_QPU_CYCLES_TMU_STALL, - V3D_PERFCNT_QPU_CYCLES_SCOREBOARD_STALL, - V3D_PERFCNT_QPU_CYCLES_VARYINGS_STALL, - V3D_PERFCNT_QPU_IC_HIT, - V3D_PERFCNT_QPU_IC_MISS, - V3D_PERFCNT_QPU_UC_HIT, - V3D_PERFCNT_QPU_UC_MISS, - V3D_PERFCNT_TMU_TCACHE_ACCESS, - V3D_PERFCNT_TMU_TCACHE_MISS, - V3D_PERFCNT_VPM_VDW_STALL, - V3D_PERFCNT_VPM_VCD_STALL, - V3D_PERFCNT_BIN_ACTIVE, - V3D_PERFCNT_RDR_ACTIVE, - V3D_PERFCNT_L2T_HITS, - V3D_PERFCNT_L2T_MISSES, - V3D_PERFCNT_CYCLE_COUNT, - V3D_PERFCNT_QPU_CYCLES_STALLED_VERTEX_COORD_USER, - V3D_PERFCNT_QPU_CYCLES_STALLED_FRAGMENT, - V3D_PERFCNT_PTB_PRIMS_BINNED, - V3D_PERFCNT_AXI_WRITES_WATCH_0, - V3D_PERFCNT_AXI_READS_WATCH_0, - V3D_PERFCNT_AXI_WRITE_STALLS_WATCH_0, - V3D_PERFCNT_AXI_READ_STALLS_WATCH_0, - V3D_PERFCNT_AXI_WRITE_BYTES_WATCH_0, - V3D_PERFCNT_AXI_READ_BYTES_WATCH_0, - V3D_PERFCNT_AXI_WRITES_WATCH_1, - V3D_PERFCNT_AXI_READS_WATCH_1, - V3D_PERFCNT_AXI_WRITE_STALLS_WATCH_1, - V3D_PERFCNT_AXI_READ_STALLS_WATCH_1, - V3D_PERFCNT_AXI_WRITE_BYTES_WATCH_1, - V3D_PERFCNT_AXI_READ_BYTES_WATCH_1, - V3D_PERFCNT_TLB_PARTIAL_QUADS, - V3D_PERFCNT_TMU_CONFIG_ACCESSES, - V3D_PERFCNT_L2T_NO_ID_STALL, - V3D_PERFCNT_L2T_COM_QUE_STALL, - V3D_PERFCNT_L2T_TMU_WRITES, - V3D_PERFCNT_TMU_ACTIVE_CYCLES, - V3D_PERFCNT_TMU_STALLED_CYCLES, - V3D_PERFCNT_CLE_ACTIVE, - V3D_PERFCNT_L2T_TMU_READS, - V3D_PERFCNT_L2T_CLE_READS, - V3D_PERFCNT_L2T_VCD_READS, - V3D_PERFCNT_L2T_TMUCFG_READS, - V3D_PERFCNT_L2T_SLC0_READS, - V3D_PERFCNT_L2T_SLC1_READS, - V3D_PERFCNT_L2T_SLC2_READS, - V3D_PERFCNT_L2T_TMU_W_MISSES, - V3D_PERFCNT_L2T_TMU_R_MISSES, - V3D_PERFCNT_L2T_CLE_MISSES, - V3D_PERFCNT_L2T_VCD_MISSES, - V3D_PERFCNT_L2T_TMUCFG_MISSES, - V3D_PERFCNT_L2T_SLC0_MISSES, - V3D_PERFCNT_L2T_SLC1_MISSES, - V3D_PERFCNT_L2T_SLC2_MISSES, - V3D_PERFCNT_CORE_MEM_WRITES, - V3D_PERFCNT_L2T_MEM_WRITES, - V3D_PERFCNT_PTB_MEM_WRITES, - V3D_PERFCNT_TLB_MEM_WRITES, - V3D_PERFCNT_CORE_MEM_READS, - V3D_PERFCNT_L2T_MEM_READS, - V3D_PERFCNT_PTB_MEM_READS, - V3D_PERFCNT_PSE_MEM_READS, - V3D_PERFCNT_TLB_MEM_READS, - V3D_PERFCNT_GMP_MEM_READS, - V3D_PERFCNT_PTB_W_MEM_WORDS, - V3D_PERFCNT_TLB_W_MEM_WORDS, - V3D_PERFCNT_PSE_R_MEM_WORDS, - V3D_PERFCNT_TLB_R_MEM_WORDS, - V3D_PERFCNT_TMU_MRU_HITS, - V3D_PERFCNT_COMPUTE_ACTIVE, - V3D_PERFCNT_NUM, -}; - -#define DRM_V3D_MAX_PERF_COUNTERS 32 - -struct drm_v3d_perfmon_create { - __u32 id; - __u32 ncounters; - __u8 counters[DRM_V3D_MAX_PERF_COUNTERS]; -}; - -struct drm_v3d_perfmon_destroy { - __u32 id; -}; - -/* - * Returns the values of the performance counters tracked by this - * perfmon (as an array of ncounters u64 values). - * - * No implicit synchronization is performed, so the user has to - * guarantee that any jobs using this perfmon have already been - * completed (probably by blocking on the seqno returned by the - * last exec that used the perfmon). - */ -struct drm_v3d_perfmon_get_values { - __u32 id; - __u32 pad; - __u64 values_ptr; }; #if defined(__cplusplus) diff --git a/original/uapi/drm/virtgpu_drm.h b/original/uapi/drm/virtgpu_drm.h index 0512fde..b9ec26e 100644 --- a/original/uapi/drm/virtgpu_drm.h +++ b/original/uapi/drm/virtgpu_drm.h @@ -47,15 +47,12 @@ extern "C" { #define DRM_VIRTGPU_WAIT 0x08 #define DRM_VIRTGPU_GET_CAPS 0x09 #define DRM_VIRTGPU_RESOURCE_CREATE_BLOB 0x0a -#define DRM_VIRTGPU_CONTEXT_INIT 0x0b #define VIRTGPU_EXECBUF_FENCE_FD_IN 0x01 #define VIRTGPU_EXECBUF_FENCE_FD_OUT 0x02 -#define VIRTGPU_EXECBUF_RING_IDX 0x04 #define VIRTGPU_EXECBUF_FLAGS (\ VIRTGPU_EXECBUF_FENCE_FD_IN |\ VIRTGPU_EXECBUF_FENCE_FD_OUT |\ - VIRTGPU_EXECBUF_RING_IDX |\ 0) struct drm_virtgpu_map { @@ -71,8 +68,6 @@ struct drm_virtgpu_execbuffer { __u64 bo_handles; __u32 num_bo_handles; __s32 fence_fd; /* in/out fence fd (see VIRTGPU_EXECBUF_FENCE_FD_IN/OUT) */ - __u32 ring_idx; /* command ring index (see VIRTGPU_EXECBUF_RING_IDX) */ - __u32 pad; }; #define VIRTGPU_PARAM_3D_FEATURES 1 /* do we have 3D features in the hw */ @@ -80,8 +75,6 @@ struct drm_virtgpu_execbuffer { #define VIRTGPU_PARAM_RESOURCE_BLOB 3 /* DRM_VIRTGPU_RESOURCE_CREATE_BLOB */ #define VIRTGPU_PARAM_HOST_VISIBLE 4 /* Host blob resources are mappable */ #define VIRTGPU_PARAM_CROSS_DEVICE 5 /* Cross virtio-device resource sharing */ -#define VIRTGPU_PARAM_CONTEXT_INIT 6 /* DRM_VIRTGPU_CONTEXT_INIT */ -#define VIRTGPU_PARAM_SUPPORTED_CAPSET_IDs 7 /* Bitmask of supported capability set ids */ struct drm_virtgpu_getparam { __u64 param; @@ -180,29 +173,6 @@ struct drm_virtgpu_resource_create_blob { __u64 blob_id; }; -#define VIRTGPU_CONTEXT_PARAM_CAPSET_ID 0x0001 -#define VIRTGPU_CONTEXT_PARAM_NUM_RINGS 0x0002 -#define VIRTGPU_CONTEXT_PARAM_POLL_RINGS_MASK 0x0003 -struct drm_virtgpu_context_set_param { - __u64 param; - __u64 value; -}; - -struct drm_virtgpu_context_init { - __u32 num_params; - __u32 pad; - - /* pointer to drm_virtgpu_context_set_param array */ - __u64 ctx_set_params; -}; - -/* - * Event code that's given when VIRTGPU_CONTEXT_PARAM_POLL_RINGS_MASK is in - * effect. The event size is sizeof(drm_event), since there is no additional - * payload. - */ -#define VIRTGPU_EVENT_FENCE_SIGNALED 0x90000000 - #define DRM_IOCTL_VIRTGPU_MAP \ DRM_IOWR(DRM_COMMAND_BASE + DRM_VIRTGPU_MAP, struct drm_virtgpu_map) @@ -242,10 +212,6 @@ struct drm_virtgpu_context_init { DRM_IOWR(DRM_COMMAND_BASE + DRM_VIRTGPU_RESOURCE_CREATE_BLOB, \ struct drm_virtgpu_resource_create_blob) -#define DRM_IOCTL_VIRTGPU_CONTEXT_INIT \ - DRM_IOWR(DRM_COMMAND_BASE + DRM_VIRTGPU_CONTEXT_INIT, \ - struct drm_virtgpu_context_init) - #if defined(__cplusplus) } #endif diff --git a/original/uapi/drm/vmwgfx_drm.h b/original/uapi/drm/vmwgfx_drm.h index 8277644..02e9175 100644 --- a/original/uapi/drm/vmwgfx_drm.h +++ b/original/uapi/drm/vmwgfx_drm.h @@ -72,9 +72,6 @@ extern "C" { #define DRM_VMW_GB_SURFACE_CREATE_EXT 27 #define DRM_VMW_GB_SURFACE_REF_EXT 28 #define DRM_VMW_MSG 29 -#define DRM_VMW_MKSSTAT_RESET 30 -#define DRM_VMW_MKSSTAT_ADD 31 -#define DRM_VMW_MKSSTAT_REMOVE 32 /*************************************************************************/ /** @@ -110,7 +107,6 @@ extern "C" { #define DRM_VMW_PARAM_HW_CAPS2 13 #define DRM_VMW_PARAM_SM4_1 14 #define DRM_VMW_PARAM_SM5 15 -#define DRM_VMW_PARAM_GL43 16 /** * enum drm_vmw_handle_type - handle type for ref ioctls @@ -1240,44 +1236,6 @@ struct drm_vmw_msg_arg { __u32 receive_len; }; -/** - * struct drm_vmw_mksstat_add_arg - * - * @stat: Pointer to user-space stat-counters array, page-aligned. - * @info: Pointer to user-space counter-infos array, page-aligned. - * @strs: Pointer to user-space stat strings, page-aligned. - * @stat_len: Length in bytes of stat-counters array. - * @info_len: Length in bytes of counter-infos array. - * @strs_len: Length in bytes of the stat strings, terminators included. - * @description: Pointer to instance descriptor string; will be truncated - * to MKS_GUEST_STAT_INSTANCE_DESC_LENGTH chars. - * @id: Output identifier of the produced record; -1 if error. - * - * Argument to the DRM_VMW_MKSSTAT_ADD ioctl. - */ -struct drm_vmw_mksstat_add_arg { - __u64 stat; - __u64 info; - __u64 strs; - __u64 stat_len; - __u64 info_len; - __u64 strs_len; - __u64 description; - __u64 id; -}; - -/** - * struct drm_vmw_mksstat_remove_arg - * - * @id: Identifier of the record being disposed, originally obtained through - * DRM_VMW_MKSSTAT_ADD ioctl. - * - * Argument to the DRM_VMW_MKSSTAT_REMOVE ioctl. - */ -struct drm_vmw_mksstat_remove_arg { - __u64 id; -}; - #if defined(__cplusplus) } #endif diff --git a/original/uapi/linux/acrn.h b/original/uapi/linux/acrn.h index ccf47ed..353b2a2 100644 --- a/original/uapi/linux/acrn.h +++ b/original/uapi/linux/acrn.h @@ -396,7 +396,6 @@ struct acrn_ptdev_irq { /* Type of PCI device assignment */ #define ACRN_PTDEV_QUIRK_ASSIGN (1U << 0) -#define ACRN_MMIODEV_RES_NUM 3 #define ACRN_PCI_NUM_BARS 6 /** * struct acrn_pcidev - Info for assigning or de-assigning a PCI device @@ -419,67 +418,6 @@ struct acrn_pcidev { }; /** - * struct acrn_mmiodev - Info for assigning or de-assigning a MMIO device - * @name: Name of the MMIO device. - * @res[].user_vm_pa: Physical address of User VM of the MMIO region - * for the MMIO device. - * @res[].service_vm_pa: Physical address of Service VM of the MMIO - * region for the MMIO device. - * @res[].size: Size of the MMIO region for the MMIO device. - * @res[].mem_type: Memory type of the MMIO region for the MMIO - * device. - * - * This structure will be passed to hypervisor directly. - */ -struct acrn_mmiodev { - __u8 name[8]; - struct { - __u64 user_vm_pa; - __u64 service_vm_pa; - __u64 size; - __u64 mem_type; - } res[ACRN_MMIODEV_RES_NUM]; -}; - -/** - * struct acrn_vdev - Info for creating or destroying a virtual device - * @id: Union of identifier of the virtual device - * @id.value: Raw data of the identifier - * @id.fields.vendor: Vendor id of the virtual PCI device - * @id.fields.device: Device id of the virtual PCI device - * @id.fields.legacy_id: ID of the virtual device if not a PCI device - * @slot: Virtual Bus/Device/Function of the virtual - * device - * @io_base: IO resource base address of the virtual device - * @io_size: IO resource size of the virtual device - * @args: Arguments for the virtual device creation - * - * The created virtual device can be a PCI device or a legacy device (e.g. - * a virtual UART controller) and it is emulated by the hypervisor. This - * structure will be passed to hypervisor directly. - */ -struct acrn_vdev { - /* - * the identifier of the device, the low 32 bits represent the vendor - * id and device id of PCI device and the high 32 bits represent the - * device number of the legacy device - */ - union { - __u64 value; - struct { - __le16 vendor; - __le16 device; - __le32 legacy_id; - } fields; - } id; - - __u64 slot; - __u32 io_addr[ACRN_PCI_NUM_BARS]; - __u32 io_size[ACRN_PCI_NUM_BARS]; - __u8 args[128]; -}; - -/** * struct acrn_msi_entry - Info for injecting a MSI interrupt to a VM * @msi_addr: MSI addr[19:12] with dest vCPU ID * @msi_data: MSI data[7:0] with vector @@ -630,14 +568,6 @@ struct acrn_irqfd { _IOW(ACRN_IOCTL_TYPE, 0x55, struct acrn_pcidev) #define ACRN_IOCTL_DEASSIGN_PCIDEV \ _IOW(ACRN_IOCTL_TYPE, 0x56, struct acrn_pcidev) -#define ACRN_IOCTL_ASSIGN_MMIODEV \ - _IOW(ACRN_IOCTL_TYPE, 0x57, struct acrn_mmiodev) -#define ACRN_IOCTL_DEASSIGN_MMIODEV \ - _IOW(ACRN_IOCTL_TYPE, 0x58, struct acrn_mmiodev) -#define ACRN_IOCTL_CREATE_VDEV \ - _IOW(ACRN_IOCTL_TYPE, 0x59, struct acrn_vdev) -#define ACRN_IOCTL_DESTROY_VDEV \ - _IOW(ACRN_IOCTL_TYPE, 0x5A, struct acrn_vdev) #define ACRN_IOCTL_PM_GET_CPU_STATE \ _IOWR(ACRN_IOCTL_TYPE, 0x60, __u64) diff --git a/original/uapi/linux/amt.h b/original/uapi/linux/amt.h deleted file mode 100644 index 2dccff4..0000000 --- a/original/uapi/linux/amt.h +++ /dev/null @@ -1,62 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0-only WITH Linux-syscall-note */ -/* - * Copyright (c) 2021 Taehee Yoo <ap420073@gmail.com> - */ -#ifndef _UAPI_AMT_H_ -#define _UAPI_AMT_H_ - -enum ifla_amt_mode { - /* AMT interface works as Gateway mode. - * The Gateway mode encapsulates IGMP/MLD traffic and decapsulates - * multicast traffic. - */ - AMT_MODE_GATEWAY = 0, - /* AMT interface works as Relay mode. - * The Relay mode encapsulates multicast traffic and decapsulates - * IGMP/MLD traffic. - */ - AMT_MODE_RELAY, - __AMT_MODE_MAX, -}; - -#define AMT_MODE_MAX (__AMT_MODE_MAX - 1) - -enum { - IFLA_AMT_UNSPEC, - /* This attribute specify mode etier Gateway or Relay. */ - IFLA_AMT_MODE, - /* This attribute specify Relay port. - * AMT interface is created as Gateway mode, this attribute is used - * to specify relay(remote) port. - * AMT interface is created as Relay mode, this attribute is used - * as local port. - */ - IFLA_AMT_RELAY_PORT, - /* This attribute specify Gateway port. - * AMT interface is created as Gateway mode, this attribute is used - * as local port. - * AMT interface is created as Relay mode, this attribute is not used. - */ - IFLA_AMT_GATEWAY_PORT, - /* This attribute specify physical device */ - IFLA_AMT_LINK, - /* This attribute specify local ip address */ - IFLA_AMT_LOCAL_IP, - /* This attribute specify Relay ip address. - * So, this is not used by Relay. - */ - IFLA_AMT_REMOTE_IP, - /* This attribute specify Discovery ip address. - * When Gateway get started, it send discovery message to find the - * Relay's ip address. - * So, this is not used by Relay. - */ - IFLA_AMT_DISCOVERY_IP, - /* This attribute specify number of maximum tunnel. */ - IFLA_AMT_MAX_TUNNELS, - __IFLA_AMT_MAX, -}; - -#define IFLA_AMT_MAX (__IFLA_AMT_MAX - 1) - -#endif /* _UAPI_AMT_H_ */ diff --git a/original/uapi/linux/android/binder.h b/original/uapi/linux/android/binder.h index 2d3f015..8e5b929 100644 --- a/original/uapi/linux/android/binder.h +++ b/original/uapi/linux/android/binder.h @@ -265,25 +265,6 @@ struct binder_node_info_for_ref { __u32 reserved3; }; -struct binder_freeze_info { - __u32 pid; - __u32 enable; - __u32 timeout_ms; -}; - -struct binder_frozen_status_info { - __u32 pid; - - /* process received sync transactions since last frozen - * bit 0: received sync transaction after being frozen - * bit 1: new pending sync transaction during freezing - */ - __u32 sync_recv; - - /* process received async transactions since last frozen */ - __u32 async_recv; -}; - #define BINDER_WRITE_READ _IOWR('b', 1, struct binder_write_read) #define BINDER_SET_IDLE_TIMEOUT _IOW('b', 3, __s64) #define BINDER_SET_MAX_THREADS _IOW('b', 5, __u32) @@ -294,9 +275,6 @@ struct binder_frozen_status_info { #define BINDER_GET_NODE_DEBUG_INFO _IOWR('b', 11, struct binder_node_debug_info) #define BINDER_GET_NODE_INFO_FOR_REF _IOWR('b', 12, struct binder_node_info_for_ref) #define BINDER_SET_CONTEXT_MGR_EXT _IOW('b', 13, struct flat_binder_object) -#define BINDER_FREEZE _IOW('b', 14, struct binder_freeze_info) -#define BINDER_GET_FROZEN_INFO _IOWR('b', 15, struct binder_frozen_status_info) -#define BINDER_ENABLE_ONEWAY_SPAM_DETECTION _IOW('b', 16, __u32) /* * NOTE: Two special error codes you should check for when calling @@ -478,19 +456,6 @@ enum binder_driver_return_protocol { * The last transaction (either a bcTRANSACTION or * a bcATTEMPT_ACQUIRE) failed (e.g. out of memory). No parameters. */ - - BR_FROZEN_REPLY = _IO('r', 18), - /* - * The target of the last transaction (either a bcTRANSACTION or - * a bcATTEMPT_ACQUIRE) is frozen. No parameters. - */ - - BR_ONEWAY_SPAM_SUSPECT = _IO('r', 19), - /* - * Current process sent too many oneway calls to target, and the last - * asynchronous transaction makes the allocated async buffer size exceed - * detection threshold. No parameters. - */ }; enum binder_driver_command_protocol { diff --git a/original/uapi/linux/ashmem.h b/original/uapi/linux/ashmem.h index 134efac..5442e00 100644 --- a/original/uapi/linux/ashmem.h +++ b/original/uapi/linux/ashmem.h @@ -1,5 +1,7 @@ /* SPDX-License-Identifier: GPL-2.0 OR Apache-2.0 */ /* + * drivers/staging/android/uapi/ashmem.h + * * Copyright 2008 Google Inc. * Author: Robert Love */ diff --git a/original/uapi/linux/audit.h b/original/uapi/linux/audit.h index 8eda133..cd2d827 100644 --- a/original/uapi/linux/audit.h +++ b/original/uapi/linux/audit.h @@ -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 */ @@ -118,10 +118,6 @@ #define AUDIT_TIME_ADJNTPVAL 1333 /* NTP value adjustment */ #define AUDIT_BPF 1334 /* BPF subsystem */ #define AUDIT_EVENT_LISTENER 1335 /* Task joined multicast read socket */ -#define AUDIT_URINGOP 1336 /* io_uring operation */ -#define AUDIT_OPENAT2 1337 /* Record showing openat2 how args */ -#define AUDIT_DM_CTRL 1338 /* Device Mapper target control */ -#define AUDIT_DM_EVENT 1339 /* Device Mapper events */ #define AUDIT_AVC 1400 /* SE Linux avc denial or grant */ #define AUDIT_SELINUX_ERR 1401 /* Internal SE Linux Errors */ @@ -170,9 +166,8 @@ #define AUDIT_FILTER_EXCLUDE 0x05 /* Apply rule before record creation */ #define AUDIT_FILTER_TYPE AUDIT_FILTER_EXCLUDE /* obsolete misleading naming */ #define AUDIT_FILTER_FS 0x06 /* Apply rule at __audit_inode_child */ -#define AUDIT_FILTER_URING_EXIT 0x07 /* Apply rule at io_uring op exit */ -#define AUDIT_NR_FILTERS 8 +#define AUDIT_NR_FILTERS 7 #define AUDIT_FILTER_PREPEND 0x10 /* Prepend to front of list */ @@ -514,7 +509,7 @@ struct audit_rule_data { __u32 values[AUDIT_MAX_FIELDS]; __u32 fieldflags[AUDIT_MAX_FIELDS]; __u32 buflen; /* total length of string fields */ - char buf[]; /* string fields buffer */ + char buf[0]; /* string fields buffer */ }; #endif /* _UAPI_LINUX_AUDIT_H_ */ diff --git a/original/uapi/linux/auxvec.h b/original/uapi/linux/auxvec.h index c7e502b..abe5f2b 100644 --- a/original/uapi/linux/auxvec.h +++ b/original/uapi/linux/auxvec.h @@ -33,8 +33,5 @@ #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 */ diff --git a/original/uapi/linux/bcache.h b/original/uapi/linux/bcache.h new file mode 100644 index 0000000..cf7399f --- /dev/null +++ b/original/uapi/linux/bcache.h @@ -0,0 +1,445 @@ +/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ +#ifndef _LINUX_BCACHE_H +#define _LINUX_BCACHE_H + +/* + * Bcache on disk data structures + */ + +#include <linux/types.h> + +#define BITMASK(name, type, field, offset, size) \ +static inline __u64 name(const type *k) \ +{ return (k->field >> offset) & ~(~0ULL << size); } \ + \ +static inline void SET_##name(type *k, __u64 v) \ +{ \ + k->field &= ~(~(~0ULL << size) << offset); \ + k->field |= (v & ~(~0ULL << size)) << offset; \ +} + +/* Btree keys - all units are in sectors */ + +struct bkey { + __u64 high; + __u64 low; + __u64 ptr[]; +}; + +#define KEY_FIELD(name, field, offset, size) \ + BITMASK(name, struct bkey, field, offset, size) + +#define PTR_FIELD(name, offset, size) \ +static inline __u64 name(const struct bkey *k, unsigned int i) \ +{ return (k->ptr[i] >> offset) & ~(~0ULL << size); } \ + \ +static inline void SET_##name(struct bkey *k, unsigned int i, __u64 v) \ +{ \ + k->ptr[i] &= ~(~(~0ULL << size) << offset); \ + k->ptr[i] |= (v & ~(~0ULL << size)) << offset; \ +} + +#define KEY_SIZE_BITS 16 +#define KEY_MAX_U64S 8 + +KEY_FIELD(KEY_PTRS, high, 60, 3) +KEY_FIELD(HEADER_SIZE, high, 58, 2) +KEY_FIELD(KEY_CSUM, high, 56, 2) +KEY_FIELD(KEY_PINNED, high, 55, 1) +KEY_FIELD(KEY_DIRTY, high, 36, 1) + +KEY_FIELD(KEY_SIZE, high, 20, KEY_SIZE_BITS) +KEY_FIELD(KEY_INODE, high, 0, 20) + +/* Next time I change the on disk format, KEY_OFFSET() won't be 64 bits */ + +static inline __u64 KEY_OFFSET(const struct bkey *k) +{ + return k->low; +} + +static inline void SET_KEY_OFFSET(struct bkey *k, __u64 v) +{ + k->low = v; +} + +/* + * The high bit being set is a relic from when we used it to do binary + * searches - it told you where a key started. It's not used anymore, + * and can probably be safely dropped. + */ +#define KEY(inode, offset, size) \ +((struct bkey) { \ + .high = (1ULL << 63) | ((__u64) (size) << 20) | (inode), \ + .low = (offset) \ +}) + +#define ZERO_KEY KEY(0, 0, 0) + +#define MAX_KEY_INODE (~(~0 << 20)) +#define MAX_KEY_OFFSET (~0ULL >> 1) +#define MAX_KEY KEY(MAX_KEY_INODE, MAX_KEY_OFFSET, 0) + +#define KEY_START(k) (KEY_OFFSET(k) - KEY_SIZE(k)) +#define START_KEY(k) KEY(KEY_INODE(k), KEY_START(k), 0) + +#define PTR_DEV_BITS 12 + +PTR_FIELD(PTR_DEV, 51, PTR_DEV_BITS) +PTR_FIELD(PTR_OFFSET, 8, 43) +PTR_FIELD(PTR_GEN, 0, 8) + +#define PTR_CHECK_DEV ((1 << PTR_DEV_BITS) - 1) + +#define MAKE_PTR(gen, offset, dev) \ + ((((__u64) dev) << 51) | ((__u64) offset) << 8 | gen) + +/* Bkey utility code */ + +static inline unsigned long bkey_u64s(const struct bkey *k) +{ + return (sizeof(struct bkey) / sizeof(__u64)) + KEY_PTRS(k); +} + +static inline unsigned long bkey_bytes(const struct bkey *k) +{ + return bkey_u64s(k) * sizeof(__u64); +} + +#define bkey_copy(_dest, _src) memcpy(_dest, _src, bkey_bytes(_src)) + +static inline void bkey_copy_key(struct bkey *dest, const struct bkey *src) +{ + SET_KEY_INODE(dest, KEY_INODE(src)); + SET_KEY_OFFSET(dest, KEY_OFFSET(src)); +} + +static inline struct bkey *bkey_next(const struct bkey *k) +{ + __u64 *d = (void *) k; + + return (struct bkey *) (d + bkey_u64s(k)); +} + +static inline struct bkey *bkey_idx(const struct bkey *k, unsigned int nr_keys) +{ + __u64 *d = (void *) k; + + return (struct bkey *) (d + nr_keys); +} +/* Enough for a key with 6 pointers */ +#define BKEY_PAD 8 + +#define BKEY_PADDED(key) \ + union { struct bkey key; __u64 key ## _pad[BKEY_PAD]; } + +/* Superblock */ + +/* Version 0: Cache device + * Version 1: Backing device + * Version 2: Seed pointer into btree node checksum + * Version 3: Cache device with new UUID format + * Version 4: Backing device with data offset + */ +#define BCACHE_SB_VERSION_CDEV 0 +#define BCACHE_SB_VERSION_BDEV 1 +#define BCACHE_SB_VERSION_CDEV_WITH_UUID 3 +#define BCACHE_SB_VERSION_BDEV_WITH_OFFSET 4 +#define BCACHE_SB_VERSION_CDEV_WITH_FEATURES 5 +#define BCACHE_SB_VERSION_BDEV_WITH_FEATURES 6 +#define BCACHE_SB_MAX_VERSION 6 + +#define SB_SECTOR 8 +#define SB_OFFSET (SB_SECTOR << SECTOR_SHIFT) +#define SB_SIZE 4096 +#define SB_LABEL_SIZE 32 +#define SB_JOURNAL_BUCKETS 256U +/* SB_JOURNAL_BUCKETS must be divisible by BITS_PER_LONG */ +#define MAX_CACHES_PER_SET 8 + +#define BDEV_DATA_START_DEFAULT 16 /* sectors */ + +struct cache_sb_disk { + __le64 csum; + __le64 offset; /* sector where this sb was written */ + __le64 version; + + __u8 magic[16]; + + __u8 uuid[16]; + union { + __u8 set_uuid[16]; + __le64 set_magic; + }; + __u8 label[SB_LABEL_SIZE]; + + __le64 flags; + __le64 seq; + + __le64 feature_compat; + __le64 feature_incompat; + __le64 feature_ro_compat; + + __le64 pad[5]; + + union { + struct { + /* Cache devices */ + __le64 nbuckets; /* device size */ + + __le16 block_size; /* sectors */ + __le16 bucket_size; /* sectors */ + + __le16 nr_in_set; + __le16 nr_this_dev; + }; + struct { + /* Backing devices */ + __le64 data_offset; + + /* + * block_size from the cache device section is still used by + * backing devices, so don't add anything here until we fix + * things to not need it for backing devices anymore + */ + }; + }; + + __le32 last_mount; /* time overflow in y2106 */ + + __le16 first_bucket; + union { + __le16 njournal_buckets; + __le16 keys; + }; + __le64 d[SB_JOURNAL_BUCKETS]; /* journal buckets */ + __le16 obso_bucket_size_hi; /* obsoleted */ +}; + +/* + * This is for in-memory bcache super block. + * NOTE: cache_sb is NOT exactly mapping to cache_sb_disk, the member + * size, ordering and even whole struct size may be different + * from cache_sb_disk. + */ +struct cache_sb { + __u64 offset; /* sector where this sb was written */ + __u64 version; + + __u8 magic[16]; + + __u8 uuid[16]; + union { + __u8 set_uuid[16]; + __u64 set_magic; + }; + __u8 label[SB_LABEL_SIZE]; + + __u64 flags; + __u64 seq; + + __u64 feature_compat; + __u64 feature_incompat; + __u64 feature_ro_compat; + + union { + struct { + /* Cache devices */ + __u64 nbuckets; /* device size */ + + __u16 block_size; /* sectors */ + __u16 nr_in_set; + __u16 nr_this_dev; + __u32 bucket_size; /* sectors */ + }; + struct { + /* Backing devices */ + __u64 data_offset; + + /* + * block_size from the cache device section is still used by + * backing devices, so don't add anything here until we fix + * things to not need it for backing devices anymore + */ + }; + }; + + __u32 last_mount; /* time overflow in y2106 */ + + __u16 first_bucket; + union { + __u16 njournal_buckets; + __u16 keys; + }; + __u64 d[SB_JOURNAL_BUCKETS]; /* journal buckets */ +}; + +static inline _Bool SB_IS_BDEV(const struct cache_sb *sb) +{ + return sb->version == BCACHE_SB_VERSION_BDEV + || sb->version == BCACHE_SB_VERSION_BDEV_WITH_OFFSET + || sb->version == BCACHE_SB_VERSION_BDEV_WITH_FEATURES; +} + +BITMASK(CACHE_SYNC, struct cache_sb, flags, 0, 1); +BITMASK(CACHE_DISCARD, struct cache_sb, flags, 1, 1); +BITMASK(CACHE_REPLACEMENT, struct cache_sb, flags, 2, 3); +#define CACHE_REPLACEMENT_LRU 0U +#define CACHE_REPLACEMENT_FIFO 1U +#define CACHE_REPLACEMENT_RANDOM 2U + +BITMASK(BDEV_CACHE_MODE, struct cache_sb, flags, 0, 4); +#define CACHE_MODE_WRITETHROUGH 0U +#define CACHE_MODE_WRITEBACK 1U +#define CACHE_MODE_WRITEAROUND 2U +#define CACHE_MODE_NONE 3U +BITMASK(BDEV_STATE, struct cache_sb, flags, 61, 2); +#define BDEV_STATE_NONE 0U +#define BDEV_STATE_CLEAN 1U +#define BDEV_STATE_DIRTY 2U +#define BDEV_STATE_STALE 3U + +/* + * Magic numbers + * + * The various other data structures have their own magic numbers, which are + * xored with the first part of the cache set's UUID + */ + +#define JSET_MAGIC 0x245235c1a3625032ULL +#define PSET_MAGIC 0x6750e15f87337f91ULL +#define BSET_MAGIC 0x90135c78b99e07f5ULL + +static inline __u64 jset_magic(struct cache_sb *sb) +{ + return sb->set_magic ^ JSET_MAGIC; +} + +static inline __u64 pset_magic(struct cache_sb *sb) +{ + return sb->set_magic ^ PSET_MAGIC; +} + +static inline __u64 bset_magic(struct cache_sb *sb) +{ + return sb->set_magic ^ BSET_MAGIC; +} + +/* + * Journal + * + * On disk format for a journal entry: + * seq is monotonically increasing; every journal entry has its own unique + * sequence number. + * + * last_seq is the oldest journal entry that still has keys the btree hasn't + * flushed to disk yet. + * + * version is for on disk format changes. + */ + +#define BCACHE_JSET_VERSION_UUIDv1 1 +#define BCACHE_JSET_VERSION_UUID 1 /* Always latest UUID format */ +#define BCACHE_JSET_VERSION 1 + +struct jset { + __u64 csum; + __u64 magic; + __u64 seq; + __u32 version; + __u32 keys; + + __u64 last_seq; + + BKEY_PADDED(uuid_bucket); + BKEY_PADDED(btree_root); + __u16 btree_level; + __u16 pad[3]; + + __u64 prio_bucket[MAX_CACHES_PER_SET]; + + union { + struct bkey start[0]; + __u64 d[0]; + }; +}; + +/* Bucket prios/gens */ + +struct prio_set { + __u64 csum; + __u64 magic; + __u64 seq; + __u32 version; + __u32 pad; + + __u64 next_bucket; + + struct bucket_disk { + __u16 prio; + __u8 gen; + } __attribute((packed)) data[]; +}; + +/* UUIDS - per backing device/flash only volume metadata */ + +struct uuid_entry { + union { + struct { + __u8 uuid[16]; + __u8 label[32]; + __u32 first_reg; /* time overflow in y2106 */ + __u32 last_reg; + __u32 invalidated; + + __u32 flags; + /* Size of flash only volumes */ + __u64 sectors; + }; + + __u8 pad[128]; + }; +}; + +BITMASK(UUID_FLASH_ONLY, struct uuid_entry, flags, 0, 1); + +/* Btree nodes */ + +/* Version 1: Seed pointer into btree node checksum + */ +#define BCACHE_BSET_CSUM 1 +#define BCACHE_BSET_VERSION 1 + +/* + * Btree nodes + * + * On disk a btree node is a list/log of these; within each set the keys are + * sorted + */ +struct bset { + __u64 csum; + __u64 magic; + __u64 seq; + __u32 version; + __u32 keys; + + union { + struct bkey start[0]; + __u64 d[0]; + }; +}; + +/* OBSOLETE */ + +/* UUIDS - per backing device/flash only volume metadata */ + +struct uuid_entry_v0 { + __u8 uuid[16]; + __u8 label[32]; + __u32 first_reg; + __u32 last_reg; + __u32 invalidated; + __u32 pad; +}; + +#endif /* _LINUX_BCACHE_H */ diff --git a/original/uapi/linux/bpf.h b/original/uapi/linux/bpf.h index b0383d3..4ba4ef0 100644 --- a/original/uapi/linux/bpf.h +++ b/original/uapi/linux/bpf.h @@ -84,7 +84,7 @@ struct bpf_lpm_trie_key { struct bpf_cgroup_storage_key { __u64 cgroup_inode_id; /* cgroup inode id */ - __u32 attach_type; /* program attach type (enum bpf_attach_type) */ + __u32 attach_type; /* program attach type */ }; union bpf_iter_link_info { @@ -93,748 +93,7 @@ union bpf_iter_link_info { } map; }; -/* BPF syscall commands, see bpf(2) man-page for more details. */ -/** - * DOC: eBPF Syscall Preamble - * - * The operation to be performed by the **bpf**\ () system call is determined - * by the *cmd* argument. Each operation takes an accompanying argument, - * provided via *attr*, which is a pointer to a union of type *bpf_attr* (see - * below). The size argument is the size of the union pointed to by *attr*. - */ -/** - * DOC: eBPF Syscall Commands - * - * BPF_MAP_CREATE - * Description - * Create a map and return a file descriptor that refers to the - * map. The close-on-exec file descriptor flag (see **fcntl**\ (2)) - * is automatically enabled for the new file descriptor. - * - * Applying **close**\ (2) to the file descriptor returned by - * **BPF_MAP_CREATE** will delete the map (but see NOTES). - * - * Return - * A new file descriptor (a nonnegative integer), or -1 if an - * error occurred (in which case, *errno* is set appropriately). - * - * BPF_MAP_LOOKUP_ELEM - * Description - * Look up an element with a given *key* in the map referred to - * by the file descriptor *map_fd*. - * - * The *flags* argument may be specified as one of the - * following: - * - * **BPF_F_LOCK** - * Look up the value of a spin-locked map without - * returning the lock. This must be specified if the - * elements contain a spinlock. - * - * Return - * Returns zero on success. On error, -1 is returned and *errno* - * is set appropriately. - * - * BPF_MAP_UPDATE_ELEM - * Description - * Create or update an element (key/value pair) in a specified map. - * - * The *flags* argument should be specified as one of the - * following: - * - * **BPF_ANY** - * Create a new element or update an existing element. - * **BPF_NOEXIST** - * Create a new element only if it did not exist. - * **BPF_EXIST** - * Update an existing element. - * **BPF_F_LOCK** - * Update a spin_lock-ed map element. - * - * Return - * Returns zero on success. On error, -1 is returned and *errno* - * is set appropriately. - * - * May set *errno* to **EINVAL**, **EPERM**, **ENOMEM**, - * **E2BIG**, **EEXIST**, or **ENOENT**. - * - * **E2BIG** - * The number of elements in the map reached the - * *max_entries* limit specified at map creation time. - * **EEXIST** - * If *flags* specifies **BPF_NOEXIST** and the element - * with *key* already exists in the map. - * **ENOENT** - * If *flags* specifies **BPF_EXIST** and the element with - * *key* does not exist in the map. - * - * BPF_MAP_DELETE_ELEM - * Description - * Look up and delete an element by key in a specified map. - * - * Return - * Returns zero on success. On error, -1 is returned and *errno* - * is set appropriately. - * - * BPF_MAP_GET_NEXT_KEY - * Description - * Look up an element by key in a specified map and return the key - * of the next element. Can be used to iterate over all elements - * in the map. - * - * Return - * Returns zero on success. On error, -1 is returned and *errno* - * is set appropriately. - * - * The following cases can be used to iterate over all elements of - * the map: - * - * * If *key* is not found, the operation returns zero and sets - * the *next_key* pointer to the key of the first element. - * * If *key* is found, the operation returns zero and sets the - * *next_key* pointer to the key of the next element. - * * If *key* is the last element, returns -1 and *errno* is set - * to **ENOENT**. - * - * May set *errno* to **ENOMEM**, **EFAULT**, **EPERM**, or - * **EINVAL** on error. - * - * BPF_PROG_LOAD - * Description - * Verify and load an eBPF program, returning a new file - * descriptor associated with the program. - * - * Applying **close**\ (2) to the file descriptor returned by - * **BPF_PROG_LOAD** will unload the eBPF program (but see NOTES). - * - * The close-on-exec file descriptor flag (see **fcntl**\ (2)) is - * automatically enabled for the new file descriptor. - * - * Return - * A new file descriptor (a nonnegative integer), or -1 if an - * error occurred (in which case, *errno* is set appropriately). - * - * BPF_OBJ_PIN - * Description - * Pin an eBPF program or map referred by the specified *bpf_fd* - * to the provided *pathname* on the filesystem. - * - * The *pathname* argument must not contain a dot ("."). - * - * On success, *pathname* retains a reference to the eBPF object, - * preventing deallocation of the object when the original - * *bpf_fd* is closed. This allow the eBPF object to live beyond - * **close**\ (\ *bpf_fd*\ ), and hence the lifetime of the parent - * process. - * - * Applying **unlink**\ (2) or similar calls to the *pathname* - * unpins the object from the filesystem, removing the reference. - * If no other file descriptors or filesystem nodes refer to the - * same object, it will be deallocated (see NOTES). - * - * The filesystem type for the parent directory of *pathname* must - * be **BPF_FS_MAGIC**. - * - * Return - * Returns zero on success. On error, -1 is returned and *errno* - * is set appropriately. - * - * BPF_OBJ_GET - * Description - * Open a file descriptor for the eBPF object pinned to the - * specified *pathname*. - * - * Return - * A new file descriptor (a nonnegative integer), or -1 if an - * error occurred (in which case, *errno* is set appropriately). - * - * BPF_PROG_ATTACH - * Description - * Attach an eBPF program to a *target_fd* at the specified - * *attach_type* hook. - * - * The *attach_type* specifies the eBPF attachment point to - * attach the program to, and must be one of *bpf_attach_type* - * (see below). - * - * The *attach_bpf_fd* must be a valid file descriptor for a - * loaded eBPF program of a cgroup, flow dissector, LIRC, sockmap - * or sock_ops type corresponding to the specified *attach_type*. - * - * The *target_fd* must be a valid file descriptor for a kernel - * object which depends on the attach type of *attach_bpf_fd*: - * - * **BPF_PROG_TYPE_CGROUP_DEVICE**, - * **BPF_PROG_TYPE_CGROUP_SKB**, - * **BPF_PROG_TYPE_CGROUP_SOCK**, - * **BPF_PROG_TYPE_CGROUP_SOCK_ADDR**, - * **BPF_PROG_TYPE_CGROUP_SOCKOPT**, - * **BPF_PROG_TYPE_CGROUP_SYSCTL**, - * **BPF_PROG_TYPE_SOCK_OPS** - * - * Control Group v2 hierarchy with the eBPF controller - * enabled. Requires the kernel to be compiled with - * **CONFIG_CGROUP_BPF**. - * - * **BPF_PROG_TYPE_FLOW_DISSECTOR** - * - * Network namespace (eg /proc/self/ns/net). - * - * **BPF_PROG_TYPE_LIRC_MODE2** - * - * LIRC device path (eg /dev/lircN). Requires the kernel - * to be compiled with **CONFIG_BPF_LIRC_MODE2**. - * - * **BPF_PROG_TYPE_SK_SKB**, - * **BPF_PROG_TYPE_SK_MSG** - * - * eBPF map of socket type (eg **BPF_MAP_TYPE_SOCKHASH**). - * - * Return - * Returns zero on success. On error, -1 is returned and *errno* - * is set appropriately. - * - * BPF_PROG_DETACH - * Description - * Detach the eBPF program associated with the *target_fd* at the - * hook specified by *attach_type*. The program must have been - * previously attached using **BPF_PROG_ATTACH**. - * - * Return - * Returns zero on success. On error, -1 is returned and *errno* - * is set appropriately. - * - * BPF_PROG_TEST_RUN - * Description - * Run the eBPF program associated with the *prog_fd* a *repeat* - * number of times against a provided program context *ctx_in* and - * data *data_in*, and return the modified program context - * *ctx_out*, *data_out* (for example, packet data), result of the - * execution *retval*, and *duration* of the test run. - * - * The sizes of the buffers provided as input and output - * parameters *ctx_in*, *ctx_out*, *data_in*, and *data_out* must - * be provided in the corresponding variables *ctx_size_in*, - * *ctx_size_out*, *data_size_in*, and/or *data_size_out*. If any - * of these parameters are not provided (ie set to NULL), the - * corresponding size field must be zero. - * - * Some program types have particular requirements: - * - * **BPF_PROG_TYPE_SK_LOOKUP** - * *data_in* and *data_out* must be NULL. - * - * **BPF_PROG_TYPE_RAW_TRACEPOINT**, - * **BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE** - * - * *ctx_out*, *data_in* and *data_out* must be NULL. - * *repeat* must be zero. - * - * Return - * Returns zero on success. On error, -1 is returned and *errno* - * is set appropriately. - * - * **ENOSPC** - * Either *data_size_out* or *ctx_size_out* is too small. - * **ENOTSUPP** - * This command is not supported by the program type of - * the program referred to by *prog_fd*. - * - * BPF_PROG_GET_NEXT_ID - * Description - * Fetch the next eBPF program currently loaded into the kernel. - * - * Looks for the eBPF program with an id greater than *start_id* - * and updates *next_id* on success. If no other eBPF programs - * remain with ids higher than *start_id*, returns -1 and sets - * *errno* to **ENOENT**. - * - * Return - * Returns zero on success. On error, or when no id remains, -1 - * is returned and *errno* is set appropriately. - * - * BPF_MAP_GET_NEXT_ID - * Description - * Fetch the next eBPF map currently loaded into the kernel. - * - * Looks for the eBPF map with an id greater than *start_id* - * and updates *next_id* on success. If no other eBPF maps - * remain with ids higher than *start_id*, returns -1 and sets - * *errno* to **ENOENT**. - * - * Return - * Returns zero on success. On error, or when no id remains, -1 - * is returned and *errno* is set appropriately. - * - * BPF_PROG_GET_FD_BY_ID - * Description - * Open a file descriptor for the eBPF program corresponding to - * *prog_id*. - * - * Return - * A new file descriptor (a nonnegative integer), or -1 if an - * error occurred (in which case, *errno* is set appropriately). - * - * BPF_MAP_GET_FD_BY_ID - * Description - * Open a file descriptor for the eBPF map corresponding to - * *map_id*. - * - * Return - * A new file descriptor (a nonnegative integer), or -1 if an - * error occurred (in which case, *errno* is set appropriately). - * - * BPF_OBJ_GET_INFO_BY_FD - * Description - * Obtain information about the eBPF object corresponding to - * *bpf_fd*. - * - * Populates up to *info_len* bytes of *info*, which will be in - * one of the following formats depending on the eBPF object type - * of *bpf_fd*: - * - * * **struct bpf_prog_info** - * * **struct bpf_map_info** - * * **struct bpf_btf_info** - * * **struct bpf_link_info** - * - * Return - * Returns zero on success. On error, -1 is returned and *errno* - * is set appropriately. - * - * BPF_PROG_QUERY - * Description - * Obtain information about eBPF programs associated with the - * specified *attach_type* hook. - * - * The *target_fd* must be a valid file descriptor for a kernel - * object which depends on the attach type of *attach_bpf_fd*: - * - * **BPF_PROG_TYPE_CGROUP_DEVICE**, - * **BPF_PROG_TYPE_CGROUP_SKB**, - * **BPF_PROG_TYPE_CGROUP_SOCK**, - * **BPF_PROG_TYPE_CGROUP_SOCK_ADDR**, - * **BPF_PROG_TYPE_CGROUP_SOCKOPT**, - * **BPF_PROG_TYPE_CGROUP_SYSCTL**, - * **BPF_PROG_TYPE_SOCK_OPS** - * - * Control Group v2 hierarchy with the eBPF controller - * enabled. Requires the kernel to be compiled with - * **CONFIG_CGROUP_BPF**. - * - * **BPF_PROG_TYPE_FLOW_DISSECTOR** - * - * Network namespace (eg /proc/self/ns/net). - * - * **BPF_PROG_TYPE_LIRC_MODE2** - * - * LIRC device path (eg /dev/lircN). Requires the kernel - * to be compiled with **CONFIG_BPF_LIRC_MODE2**. - * - * **BPF_PROG_QUERY** always fetches the number of programs - * attached and the *attach_flags* which were used to attach those - * programs. Additionally, if *prog_ids* is nonzero and the number - * of attached programs is less than *prog_cnt*, populates - * *prog_ids* with the eBPF program ids of the programs attached - * at *target_fd*. - * - * The following flags may alter the result: - * - * **BPF_F_QUERY_EFFECTIVE** - * Only return information regarding programs which are - * currently effective at the specified *target_fd*. - * - * Return - * Returns zero on success. On error, -1 is returned and *errno* - * is set appropriately. - * - * BPF_RAW_TRACEPOINT_OPEN - * Description - * Attach an eBPF program to a tracepoint *name* to access kernel - * internal arguments of the tracepoint in their raw form. - * - * The *prog_fd* must be a valid file descriptor associated with - * a loaded eBPF program of type **BPF_PROG_TYPE_RAW_TRACEPOINT**. - * - * No ABI guarantees are made about the content of tracepoint - * arguments exposed to the corresponding eBPF program. - * - * Applying **close**\ (2) to the file descriptor returned by - * **BPF_RAW_TRACEPOINT_OPEN** will delete the map (but see NOTES). - * - * Return - * A new file descriptor (a nonnegative integer), or -1 if an - * error occurred (in which case, *errno* is set appropriately). - * - * BPF_BTF_LOAD - * Description - * Verify and load BPF Type Format (BTF) metadata into the kernel, - * returning a new file descriptor associated with the metadata. - * BTF is described in more detail at - * https://www.kernel.org/doc/html/latest/bpf/btf.html. - * - * The *btf* parameter must point to valid memory providing - * *btf_size* bytes of BTF binary metadata. - * - * The returned file descriptor can be passed to other **bpf**\ () - * subcommands such as **BPF_PROG_LOAD** or **BPF_MAP_CREATE** to - * associate the BTF with those objects. - * - * Similar to **BPF_PROG_LOAD**, **BPF_BTF_LOAD** has optional - * parameters to specify a *btf_log_buf*, *btf_log_size* and - * *btf_log_level* which allow the kernel to return freeform log - * output regarding the BTF verification process. - * - * Return - * A new file descriptor (a nonnegative integer), or -1 if an - * error occurred (in which case, *errno* is set appropriately). - * - * BPF_BTF_GET_FD_BY_ID - * Description - * Open a file descriptor for the BPF Type Format (BTF) - * corresponding to *btf_id*. - * - * Return - * A new file descriptor (a nonnegative integer), or -1 if an - * error occurred (in which case, *errno* is set appropriately). - * - * BPF_TASK_FD_QUERY - * Description - * Obtain information about eBPF programs associated with the - * target process identified by *pid* and *fd*. - * - * If the *pid* and *fd* are associated with a tracepoint, kprobe - * or uprobe perf event, then the *prog_id* and *fd_type* will - * be populated with the eBPF program id and file descriptor type - * of type **bpf_task_fd_type**. If associated with a kprobe or - * uprobe, the *probe_offset* and *probe_addr* will also be - * populated. Optionally, if *buf* is provided, then up to - * *buf_len* bytes of *buf* will be populated with the name of - * the tracepoint, kprobe or uprobe. - * - * The resulting *prog_id* may be introspected in deeper detail - * using **BPF_PROG_GET_FD_BY_ID** and **BPF_OBJ_GET_INFO_BY_FD**. - * - * Return - * Returns zero on success. On error, -1 is returned and *errno* - * is set appropriately. - * - * BPF_MAP_LOOKUP_AND_DELETE_ELEM - * Description - * 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*. - * The *key* and *key_len* parameters should be zeroed when - * issuing this operation for these map types. - * - * 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* - * is set appropriately. - * - * BPF_MAP_FREEZE - * Description - * Freeze the permissions of the specified map. - * - * Write permissions may be frozen by passing zero *flags*. - * Upon success, no future syscall invocations may alter the - * map state of *map_fd*. Write operations from eBPF programs - * are still possible for a frozen map. - * - * Not supported for maps of type **BPF_MAP_TYPE_STRUCT_OPS**. - * - * Return - * Returns zero on success. On error, -1 is returned and *errno* - * is set appropriately. - * - * BPF_BTF_GET_NEXT_ID - * Description - * Fetch the next BPF Type Format (BTF) object currently loaded - * into the kernel. - * - * Looks for the BTF object with an id greater than *start_id* - * and updates *next_id* on success. If no other BTF objects - * remain with ids higher than *start_id*, returns -1 and sets - * *errno* to **ENOENT**. - * - * Return - * Returns zero on success. On error, or when no id remains, -1 - * is returned and *errno* is set appropriately. - * - * BPF_MAP_LOOKUP_BATCH - * Description - * Iterate and fetch multiple elements in a map. - * - * Two opaque values are used to manage batch operations, - * *in_batch* and *out_batch*. Initially, *in_batch* must be set - * to NULL to begin the batched operation. After each subsequent - * **BPF_MAP_LOOKUP_BATCH**, the caller should pass the resultant - * *out_batch* as the *in_batch* for the next operation to - * continue iteration from the current point. - * - * The *keys* and *values* are output parameters which must point - * to memory large enough to hold *count* items based on the key - * and value size of the map *map_fd*. The *keys* buffer must be - * of *key_size* * *count*. The *values* buffer must be of - * *value_size* * *count*. - * - * The *elem_flags* argument may be specified as one of the - * following: - * - * **BPF_F_LOCK** - * Look up the value of a spin-locked map without - * returning the lock. This must be specified if the - * elements contain a spinlock. - * - * On success, *count* elements from the map are copied into the - * user buffer, with the keys copied into *keys* and the values - * copied into the corresponding indices in *values*. - * - * If an error is returned and *errno* is not **EFAULT**, *count* - * is set to the number of successfully processed elements. - * - * Return - * Returns zero on success. On error, -1 is returned and *errno* - * is set appropriately. - * - * May set *errno* to **ENOSPC** to indicate that *keys* or - * *values* is too small to dump an entire bucket during - * iteration of a hash-based map type. - * - * BPF_MAP_LOOKUP_AND_DELETE_BATCH - * Description - * Iterate and delete all elements in a map. - * - * This operation has the same behavior as - * **BPF_MAP_LOOKUP_BATCH** with two exceptions: - * - * * Every element that is successfully returned is also deleted - * from the map. This is at least *count* elements. Note that - * *count* is both an input and an output parameter. - * * Upon returning with *errno* set to **EFAULT**, up to - * *count* elements may be deleted without returning the keys - * and values of the deleted elements. - * - * Return - * Returns zero on success. On error, -1 is returned and *errno* - * is set appropriately. - * - * BPF_MAP_UPDATE_BATCH - * Description - * Update multiple elements in a map by *key*. - * - * The *keys* and *values* are input parameters which must point - * to memory large enough to hold *count* items based on the key - * and value size of the map *map_fd*. The *keys* buffer must be - * of *key_size* * *count*. The *values* buffer must be of - * *value_size* * *count*. - * - * Each element specified in *keys* is sequentially updated to the - * value in the corresponding index in *values*. The *in_batch* - * and *out_batch* parameters are ignored and should be zeroed. - * - * The *elem_flags* argument should be specified as one of the - * following: - * - * **BPF_ANY** - * Create new elements or update a existing elements. - * **BPF_NOEXIST** - * Create new elements only if they do not exist. - * **BPF_EXIST** - * Update existing elements. - * **BPF_F_LOCK** - * Update spin_lock-ed map elements. This must be - * specified if the map value contains a spinlock. - * - * On success, *count* elements from the map are updated. - * - * If an error is returned and *errno* is not **EFAULT**, *count* - * is set to the number of successfully processed elements. - * - * Return - * Returns zero on success. On error, -1 is returned and *errno* - * is set appropriately. - * - * May set *errno* to **EINVAL**, **EPERM**, **ENOMEM**, or - * **E2BIG**. **E2BIG** indicates that the number of elements in - * the map reached the *max_entries* limit specified at map - * creation time. - * - * May set *errno* to one of the following error codes under - * specific circumstances: - * - * **EEXIST** - * If *flags* specifies **BPF_NOEXIST** and the element - * with *key* already exists in the map. - * **ENOENT** - * If *flags* specifies **BPF_EXIST** and the element with - * *key* does not exist in the map. - * - * BPF_MAP_DELETE_BATCH - * Description - * Delete multiple elements in a map by *key*. - * - * The *keys* parameter is an input parameter which must point - * to memory large enough to hold *count* items based on the key - * size of the map *map_fd*, that is, *key_size* * *count*. - * - * Each element specified in *keys* is sequentially deleted. The - * *in_batch*, *out_batch*, and *values* parameters are ignored - * and should be zeroed. - * - * The *elem_flags* argument may be specified as one of the - * following: - * - * **BPF_F_LOCK** - * Look up the value of a spin-locked map without - * returning the lock. This must be specified if the - * elements contain a spinlock. - * - * On success, *count* elements from the map are updated. - * - * If an error is returned and *errno* is not **EFAULT**, *count* - * is set to the number of successfully processed elements. If - * *errno* is **EFAULT**, up to *count* elements may be been - * deleted. - * - * Return - * Returns zero on success. On error, -1 is returned and *errno* - * is set appropriately. - * - * BPF_LINK_CREATE - * Description - * Attach an eBPF program to a *target_fd* at the specified - * *attach_type* hook and return a file descriptor handle for - * managing the link. - * - * Return - * A new file descriptor (a nonnegative integer), or -1 if an - * error occurred (in which case, *errno* is set appropriately). - * - * BPF_LINK_UPDATE - * Description - * Update the eBPF program in the specified *link_fd* to - * *new_prog_fd*. - * - * Return - * Returns zero on success. On error, -1 is returned and *errno* - * is set appropriately. - * - * BPF_LINK_GET_FD_BY_ID - * Description - * Open a file descriptor for the eBPF Link corresponding to - * *link_id*. - * - * Return - * A new file descriptor (a nonnegative integer), or -1 if an - * error occurred (in which case, *errno* is set appropriately). - * - * BPF_LINK_GET_NEXT_ID - * Description - * Fetch the next eBPF link currently loaded into the kernel. - * - * Looks for the eBPF link with an id greater than *start_id* - * and updates *next_id* on success. If no other eBPF links - * remain with ids higher than *start_id*, returns -1 and sets - * *errno* to **ENOENT**. - * - * Return - * Returns zero on success. On error, or when no id remains, -1 - * is returned and *errno* is set appropriately. - * - * BPF_ENABLE_STATS - * Description - * Enable eBPF runtime statistics gathering. - * - * Runtime statistics gathering for the eBPF runtime is disabled - * by default to minimize the corresponding performance overhead. - * This command enables statistics globally. - * - * Multiple programs may independently enable statistics. - * After gathering the desired statistics, eBPF runtime statistics - * may be disabled again by calling **close**\ (2) for the file - * descriptor returned by this function. Statistics will only be - * disabled system-wide when all outstanding file descriptors - * returned by prior calls for this subcommand are closed. - * - * Return - * A new file descriptor (a nonnegative integer), or -1 if an - * error occurred (in which case, *errno* is set appropriately). - * - * BPF_ITER_CREATE - * Description - * Create an iterator on top of the specified *link_fd* (as - * previously created using **BPF_LINK_CREATE**) and return a - * file descriptor that can be used to trigger the iteration. - * - * If the resulting file descriptor is pinned to the filesystem - * using **BPF_OBJ_PIN**, then subsequent **read**\ (2) syscalls - * for that path will trigger the iterator to read kernel state - * using the eBPF program attached to *link_fd*. - * - * Return - * A new file descriptor (a nonnegative integer), or -1 if an - * error occurred (in which case, *errno* is set appropriately). - * - * BPF_LINK_DETACH - * Description - * Forcefully detach the specified *link_fd* from its - * corresponding attachment point. - * - * Return - * Returns zero on success. On error, -1 is returned and *errno* - * is set appropriately. - * - * BPF_PROG_BIND_MAP - * Description - * Bind a map to the lifetime of an eBPF program. - * - * The map identified by *map_fd* is bound to the program - * identified by *prog_fd* and only released when *prog_fd* is - * released. This may be used in cases where metadata should be - * associated with a program which otherwise does not contain any - * references to the map (for example, embedded in the eBPF - * program instructions). - * - * Return - * Returns zero on success. On error, -1 is returned and *errno* - * is set appropriately. - * - * NOTES - * eBPF objects (maps and programs) can be shared between processes. - * - * * After **fork**\ (2), the child inherits file descriptors - * referring to the same eBPF objects. - * * File descriptors referring to eBPF objects can be transferred over - * **unix**\ (7) domain sockets. - * * File descriptors referring to eBPF objects can be duplicated in the - * usual way, using **dup**\ (2) and similar calls. - * * File descriptors referring to eBPF objects can be pinned to the - * filesystem using the **BPF_OBJ_PIN** command of **bpf**\ (2). - * - * An eBPF object is deallocated only after all file descriptors referring - * to the object have been closed and no references remain pinned to the - * filesystem or attached (for example, bound to a program or device). - */ +/* BPF syscall commands, see bpf(2) man-page for details. */ enum bpf_cmd { BPF_MAP_CREATE, BPF_MAP_LOOKUP_ELEM, @@ -847,7 +106,6 @@ 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, @@ -906,7 +164,6 @@ enum bpf_map_type { BPF_MAP_TYPE_RINGBUF, BPF_MAP_TYPE_INODE_STORAGE, BPF_MAP_TYPE_TASK_STORAGE, - BPF_MAP_TYPE_BLOOM_FILTER, }; /* Note that tracing related programs such as @@ -949,7 +206,6 @@ 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 { @@ -991,10 +247,6 @@ enum bpf_attach_type { BPF_XDP_CPUMAP, BPF_SK_LOOKUP, BPF_XDP, - BPF_SK_SKB_VERDICT, - BPF_SK_REUSEPORT_SELECT, - BPF_SK_REUSEPORT_SELECT_OR_MIGRATE, - BPF_PERF_EVENT, __MAX_BPF_ATTACH_TYPE }; @@ -1008,7 +260,6 @@ enum bpf_link_type { BPF_LINK_TYPE_ITER = 4, BPF_LINK_TYPE_NETNS = 5, BPF_LINK_TYPE_XDP = 6, - BPF_LINK_TYPE_PERF_EVENT = 7, MAX_BPF_LINK_TYPE, }; @@ -1114,8 +365,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|IDX] - * insn[0].imm: map fd or fd_idx + * insn[0].src_reg: BPF_PSEUDO_MAP_FD + * insn[0].imm: map fd * insn[1].imm: 0 * insn[0].off: 0 * insn[1].off: 0 @@ -1123,19 +374,15 @@ enum bpf_link_type { * verifier type: CONST_PTR_TO_MAP */ #define BPF_PSEUDO_MAP_FD 1 -#define BPF_PSEUDO_MAP_IDX 5 - -/* insn[0].src_reg: BPF_PSEUDO_MAP_[IDX_]VALUE - * insn[0].imm: map fd or fd_idx +/* insn[0].src_reg: BPF_PSEUDO_MAP_VALUE + * insn[0].imm: map fd * 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_IDX_VALUE 6 - +#define BPF_PSEUDO_MAP_VALUE 2 /* insn[0].src_reg: BPF_PSEUDO_BTF_ID * insn[0].imm: kernel btd id of VAR * insn[1].imm: 0 @@ -1146,24 +393,11 @@ enum bpf_link_type { * is struct/union. */ #define BPF_PSEUDO_BTF_ID 3 -/* insn[0].src_reg: BPF_PSEUDO_FUNC - * insn[0].imm: insn offset to the func - * insn[1].imm: 0 - * insn[0].off: 0 - * insn[1].off: 0 - * ldimm64 rewrite: address of the function - * verifier type: PTR_TO_FUNC. - */ -#define BPF_PSEUDO_FUNC 4 /* when bpf_call->src_reg == BPF_PSEUDO_CALL, bpf_call->imm == pc-relative * offset to another bpf function */ #define BPF_PSEUDO_CALL 1 -/* when bpf_call->src_reg == BPF_PSEUDO_KFUNC_CALL, - * bpf_call->imm == btf_id of a BTF_KIND_FUNC in the running kernel - */ -#define BPF_PSEUDO_KFUNC_CALL 2 /* flags for BPF_MAP_UPDATE_ELEM command */ enum { @@ -1275,13 +509,6 @@ union bpf_attr { * struct stored as the * map value */ - /* Any per-map-type extra fields - * - * BPF_MAP_TYPE_BLOOM_FILTER - the lowest 4 bits indicate the - * number of hash functions (if 0, the bloom filter will default - * to using 5 hash functions). - */ - __u64 map_extra; }; struct { /* anonymous struct used by BPF_MAP_*_ELEM commands */ @@ -1342,10 +569,6 @@ union bpf_attr { /* or valid module BTF object fd or 0 to attach to vmlinux */ __u32 attach_btf_obj_fd; }; - __u32 core_relo_cnt; /* number of bpf_core_relo */ - __aligned_u64 fd_array; /* array of FDs */ - __aligned_u64 core_relos; - __u32 core_relo_rec_size; /* sizeof(struct bpf_core_relo) */ }; struct { /* anonymous struct used by BPF_OBJ_* commands */ @@ -1458,13 +681,6 @@ union bpf_attr { __aligned_u64 iter_info; /* extra bpf_iter_link_info */ __u32 iter_info_len; /* iter_info length */ }; - struct { - /* black box user-provided value passed through - * to BPF program at the execution time and - * accessible through bpf_get_attach_cookie() BPF helper - */ - __u64 bpf_cookie; - } perf_event; }; } link_create; @@ -1504,7 +720,7 @@ union bpf_attr { * parsed and used to produce a manual page. The workflow is the following, * and requires the rst2man utility: * - * $ ./scripts/bpf_doc.py \ + * $ ./scripts/bpf_helpers_doc.py \ * --filename include/uapi/linux/bpf.h > /tmp/bpf-helpers.rst * $ rst2man /tmp/bpf-helpers.rst > /tmp/bpf-helpers.7 * $ man /tmp/bpf-helpers.7 @@ -1639,7 +855,7 @@ union bpf_attr { * u32 bpf_get_smp_processor_id(void) * Description * Get the SMP (symmetric multiprocessing) processor id. Note that - * all programs run with migration disabled, which means that the + * all programs run with preemption disabled, which means that the * SMP processor id is stable during all the execution of the * program. * Return @@ -1746,7 +962,7 @@ union bpf_attr { * if the maximum number of tail calls has been reached for this * chain of programs. This limit is defined in the kernel by the * macro **MAX_TAIL_CALL_CNT** (not accessible to user space), - * which is currently set to 33. + * which is currently set to 32. * Return * 0 on success, or a negative error in case of failure. * @@ -2549,10 +1765,6 @@ union bpf_attr { * Use with ENCAP_L3/L4 flags to further specify the tunnel * type; *len* is the length of the inner MAC header. * - * * **BPF_F_ADJ_ROOM_ENCAP_L2_ETH**: - * Use with BPF_F_ADJ_ROOM_ENCAP_L2 flag to further specify the - * L2 type as Ethernet. - * * A call to this helper is susceptible to change the underlying * packet buffer. Therefore, at load time, all checks on pointers * previously done by the verifier are invalidated and must be @@ -2573,12 +1785,8 @@ 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. 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. + * by the caller. Any higher bits in the *flags* argument must be + * unset. * * See also **bpf_redirect**\ (), which only supports redirecting * to an ifindex, but doesn't require a map to do so. @@ -3265,7 +2473,7 @@ union bpf_attr { * long bpf_sk_select_reuseport(struct sk_reuseport_md *reuse, struct bpf_map *map, void *key, u64 flags) * Description * Select a **SO_REUSEPORT** socket from a - * **BPF_MAP_TYPE_REUSEPORT_SOCKARRAY** *map*. + * **BPF_MAP_TYPE_REUSEPORT_ARRAY** *map*. * It checks the selected socket is matching the incoming * request in the socket buffer. * Return @@ -4056,7 +3264,7 @@ union bpf_attr { * arguments. The *data* are a **u64** array and corresponding format string * values are stored in the array. For strings and pointers where pointees * are accessed, only the pointer values are stored in the *data* array. - * The *data_len* is the size of *data* in bytes - must be a multiple of 8. + * The *data_len* is the size of *data* in bytes. * * Formats **%s**, **%p{i,I}{4,6}** requires to read kernel memory. * Reading kernel memory may fail due to either invalid address or @@ -4125,20 +3333,12 @@ union bpf_attr { * of new data availability is sent. * If **BPF_RB_FORCE_WAKEUP** is specified in *flags*, notification * of new data availability is sent unconditionally. - * If **0** is specified in *flags*, an adaptive notification - * of new data availability is sent. - * - * An adaptive notification is a notification sent whenever the user-space - * process has caught up and consumed all available payloads. In case the user-space - * process is still processing a previous payload, then no notification is needed - * as it will process the newly added payload automatically. * Return * 0 on success, or a negative error in case of failure. * * void *bpf_ringbuf_reserve(void *ringbuf, u64 size, u64 flags) * Description * Reserve *size* bytes of payload in a ring buffer *ringbuf*. - * *flags* must be 0. * Return * Valid pointer with *size* bytes of memory available; NULL, * otherwise. @@ -4150,10 +3350,6 @@ union bpf_attr { * of new data availability is sent. * If **BPF_RB_FORCE_WAKEUP** is specified in *flags*, notification * of new data availability is sent unconditionally. - * If **0** is specified in *flags*, an adaptive notification - * of new data availability is sent. - * - * See 'bpf_ringbuf_output()' for the definition of adaptive notification. * Return * Nothing. Always succeeds. * @@ -4164,10 +3360,6 @@ union bpf_attr { * of new data availability is sent. * If **BPF_RB_FORCE_WAKEUP** is specified in *flags*, notification * of new data availability is sent unconditionally. - * If **0** is specified in *flags*, an adaptive notification - * of new data availability is sent. - * - * See 'bpf_ringbuf_output()' for the definition of adaptive notification. * Return * Nothing. Always succeeds. * @@ -4723,301 +3915,6 @@ union bpf_attr { * * **BPF_MTU_CHK_RET_FRAG_NEEDED** * * **BPF_MTU_CHK_RET_SEGS_TOOBIG** * - * long bpf_for_each_map_elem(struct bpf_map *map, void *callback_fn, void *callback_ctx, u64 flags) - * Description - * For each element in **map**, call **callback_fn** function with - * **map**, **callback_ctx** and other map-specific parameters. - * The **callback_fn** should be a static function and - * the **callback_ctx** should be a pointer to the stack. - * The **flags** is used to control certain aspects of the helper. - * Currently, the **flags** must be 0. - * - * The following are a list of supported map types and their - * respective expected callback signatures: - * - * BPF_MAP_TYPE_HASH, BPF_MAP_TYPE_PERCPU_HASH, - * BPF_MAP_TYPE_LRU_HASH, BPF_MAP_TYPE_LRU_PERCPU_HASH, - * BPF_MAP_TYPE_ARRAY, BPF_MAP_TYPE_PERCPU_ARRAY - * - * long (\*callback_fn)(struct bpf_map \*map, const void \*key, void \*value, void \*ctx); - * - * For per_cpu maps, the map_value is the value on the cpu where the - * bpf_prog is running. - * - * If **callback_fn** return 0, the helper will continue to the next - * element. If return value is 1, the helper will skip the rest of - * elements and return. Other return values are not used now. - * - * Return - * The number of traversed map elements for success, **-EINVAL** for - * invalid **flags**. - * - * long bpf_snprintf(char *str, u32 str_size, const char *fmt, u64 *data, u32 data_len) - * Description - * Outputs a string into the **str** buffer of size **str_size** - * based on a format string stored in a read-only map pointed by - * **fmt**. - * - * Each format specifier in **fmt** corresponds to one u64 element - * in the **data** array. For strings and pointers where pointees - * are accessed, only the pointer values are stored in the *data* - * array. The *data_len* is the size of *data* in bytes - must be - * a multiple of 8. - * - * Formats **%s** and **%p{i,I}{4,6}** require to read kernel - * memory. Reading kernel memory may fail due to either invalid - * address or valid address but requiring a major memory fault. If - * reading kernel memory fails, the string for **%s** will be an - * empty string, and the ip address for **%p{i,I}{4,6}** will be 0. - * Not returning error to bpf program is consistent with what - * **bpf_trace_printk**\ () does for now. - * - * Return - * The strictly positive length of the formatted string, including - * the trailing zero character. If the return value is greater than - * **str_size**, **str** contains a truncated string, guaranteed to - * 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. - * - * long bpf_timer_init(struct bpf_timer *timer, struct bpf_map *map, u64 flags) - * Description - * Initialize the timer. - * First 4 bits of *flags* specify clockid. - * Only CLOCK_MONOTONIC, CLOCK_REALTIME, CLOCK_BOOTTIME are allowed. - * All other bits of *flags* are reserved. - * The verifier will reject the program if *timer* is not from - * the same *map*. - * Return - * 0 on success. - * **-EBUSY** if *timer* is already initialized. - * **-EINVAL** if invalid *flags* are passed. - * **-EPERM** if *timer* is in a map that doesn't have any user references. - * The user space should either hold a file descriptor to a map with timers - * or pin such map in bpffs. When map is unpinned or file descriptor is - * closed all timers in the map will be cancelled and freed. - * - * long bpf_timer_set_callback(struct bpf_timer *timer, void *callback_fn) - * Description - * Configure the timer to call *callback_fn* static function. - * Return - * 0 on success. - * **-EINVAL** if *timer* was not initialized with bpf_timer_init() earlier. - * **-EPERM** if *timer* is in a map that doesn't have any user references. - * The user space should either hold a file descriptor to a map with timers - * or pin such map in bpffs. When map is unpinned or file descriptor is - * closed all timers in the map will be cancelled and freed. - * - * long bpf_timer_start(struct bpf_timer *timer, u64 nsecs, u64 flags) - * Description - * Set timer expiration N nanoseconds from the current time. The - * configured callback will be invoked in soft irq context on some cpu - * and will not repeat unless another bpf_timer_start() is made. - * In such case the next invocation can migrate to a different cpu. - * Since struct bpf_timer is a field inside map element the map - * owns the timer. The bpf_timer_set_callback() will increment refcnt - * of BPF program to make sure that callback_fn code stays valid. - * When user space reference to a map reaches zero all timers - * in a map are cancelled and corresponding program's refcnts are - * decremented. This is done to make sure that Ctrl-C of a user - * process doesn't leave any timers running. If map is pinned in - * bpffs the callback_fn can re-arm itself indefinitely. - * bpf_map_update/delete_elem() helpers and user space sys_bpf commands - * cancel and free the timer in the given map element. - * The map can contain timers that invoke callback_fn-s from different - * programs. The same callback_fn can serve different timers from - * different maps if key/value layout matches across maps. - * Every bpf_timer_set_callback() can have different callback_fn. - * - * Return - * 0 on success. - * **-EINVAL** if *timer* was not initialized with bpf_timer_init() earlier - * or invalid *flags* are passed. - * - * long bpf_timer_cancel(struct bpf_timer *timer) - * Description - * Cancel the timer and wait for callback_fn to finish if it was running. - * Return - * 0 if the timer was not active. - * 1 if the timer was active. - * **-EINVAL** if *timer* was not initialized with bpf_timer_init() earlier. - * **-EDEADLK** if callback_fn tried to call bpf_timer_cancel() on its - * own timer which would have led to a deadlock otherwise. - * - * u64 bpf_get_func_ip(void *ctx) - * Description - * Get address of the traced function (for tracing and kprobe programs). - * Return - * Address of the traced function. - * - * u64 bpf_get_attach_cookie(void *ctx) - * Description - * Get bpf_cookie value provided (optionally) during the program - * attachment. It might be different for each individual - * attachment, even if BPF program itself is the same. - * Expects BPF program context *ctx* as a first argument. - * - * Supported for the following program types: - * - kprobe/uprobe; - * - tracepoint; - * - perf_event. - * Return - * Value specified by user at BPF link creation/attachment time - * or 0, if it was not specified. - * - * long bpf_task_pt_regs(struct task_struct *task) - * Description - * Get the struct pt_regs associated with **task**. - * Return - * A pointer to struct pt_regs. - * - * long bpf_get_branch_snapshot(void *entries, u32 size, u64 flags) - * Description - * Get branch trace from hardware engines like Intel LBR. The - * hardware engine is stopped shortly after the helper is - * called. Therefore, the user need to filter branch entries - * based on the actual use case. To capture branch trace - * before the trigger point of the BPF program, the helper - * should be called at the beginning of the BPF program. - * - * The data is stored as struct perf_branch_entry into output - * buffer *entries*. *size* is the size of *entries* in bytes. - * *flags* is reserved for now and must be zero. - * - * Return - * On success, number of bytes written to *buf*. On error, a - * negative value. - * - * **-EINVAL** if *flags* is not zero. - * - * **-ENOENT** if architecture does not support branch records. - * - * long bpf_trace_vprintk(const char *fmt, u32 fmt_size, const void *data, u32 data_len) - * Description - * Behaves like **bpf_trace_printk**\ () helper, but takes an array of u64 - * to format and can handle more format args as a result. - * - * Arguments are to be used as in **bpf_seq_printf**\ () helper. - * Return - * The number of bytes written to the buffer, or a negative error - * in case of failure. - * - * struct unix_sock *bpf_skc_to_unix_sock(void *sk) - * Description - * Dynamically cast a *sk* pointer to a *unix_sock* pointer. - * Return - * *sk* if casting is valid, or **NULL** otherwise. - * - * long bpf_kallsyms_lookup_name(const char *name, int name_sz, int flags, u64 *res) - * Description - * Get the address of a kernel symbol, returned in *res*. *res* is - * set to 0 if the symbol is not found. - * Return - * On success, zero. On error, a negative value. - * - * **-EINVAL** if *flags* is not zero. - * - * **-EINVAL** if string *name* is not the same size as *name_sz*. - * - * **-ENOENT** if symbol is not found. - * - * **-EPERM** if caller does not have permission to obtain kernel address. - * - * long bpf_find_vma(struct task_struct *task, u64 addr, void *callback_fn, void *callback_ctx, u64 flags) - * Description - * Find vma of *task* that contains *addr*, call *callback_fn* - * function with *task*, *vma*, and *callback_ctx*. - * The *callback_fn* should be a static function and - * the *callback_ctx* should be a pointer to the stack. - * The *flags* is used to control certain aspects of the helper. - * Currently, the *flags* must be 0. - * - * The expected callback signature is - * - * long (\*callback_fn)(struct task_struct \*task, struct vm_area_struct \*vma, void \*callback_ctx); - * - * Return - * 0 on success. - * **-ENOENT** if *task->mm* is NULL, or no vma contains *addr*. - * **-EBUSY** if failed to try lock mmap_lock. - * **-EINVAL** for invalid **flags**. - * - * long bpf_loop(u32 nr_loops, void *callback_fn, void *callback_ctx, u64 flags) - * Description - * For **nr_loops**, call **callback_fn** function - * with **callback_ctx** as the context parameter. - * The **callback_fn** should be a static function and - * the **callback_ctx** should be a pointer to the stack. - * The **flags** is used to control certain aspects of the helper. - * Currently, the **flags** must be 0. Currently, nr_loops is - * limited to 1 << 23 (~8 million) loops. - * - * long (\*callback_fn)(u32 index, void \*ctx); - * - * where **index** is the current index in the loop. The index - * is zero-indexed. - * - * If **callback_fn** returns 0, the helper will continue to the next - * loop. If return value is 1, the helper will skip the rest of - * the loops and return. Other return values are not used now, - * and will be rejected by the verifier. - * - * Return - * The number of loops performed, **-EINVAL** for invalid **flags**, - * **-E2BIG** if **nr_loops** exceeds the maximum number of loops. - * - * long bpf_strncmp(const char *s1, u32 s1_sz, const char *s2) - * Description - * Do strncmp() between **s1** and **s2**. **s1** doesn't need - * to be null-terminated and **s1_sz** is the maximum storage - * size of **s1**. **s2** must be a read-only string. - * Return - * An integer less than, equal to, or greater than zero - * if the first **s1_sz** bytes of **s1** is found to be - * less than, to match, or be greater than **s2**. - * - * long bpf_get_func_arg(void *ctx, u32 n, u64 *value) - * Description - * Get **n**-th argument (zero based) of the traced function (for tracing programs) - * returned in **value**. - * - * Return - * 0 on success. - * **-EINVAL** if n >= arguments count of traced function. - * - * long bpf_get_func_ret(void *ctx, u64 *value) - * Description - * Get return value of the traced function (for tracing programs) - * in **value**. - * - * Return - * 0 on success. - * **-EOPNOTSUPP** for tracing programs other than BPF_TRACE_FEXIT or BPF_MODIFY_RETURN. - * - * long bpf_get_func_arg_cnt(void *ctx) - * Description - * Get number of arguments of the traced function (for tracing programs). - * - * Return - * The number of arguments of the traced function. */ #define __BPF_FUNC_MAPPER(FN) \ FN(unspec), \ @@ -5184,28 +4081,6 @@ union bpf_attr { FN(ima_inode_hash), \ FN(sock_from_file), \ FN(check_mtu), \ - FN(for_each_map_elem), \ - FN(snprintf), \ - FN(sys_bpf), \ - FN(btf_find_by_name_kind), \ - FN(sys_close), \ - FN(timer_init), \ - FN(timer_set_callback), \ - FN(timer_start), \ - FN(timer_cancel), \ - FN(get_func_ip), \ - FN(get_attach_cookie), \ - FN(task_pt_regs), \ - FN(get_branch_snapshot), \ - FN(trace_vprintk), \ - FN(skc_to_unix_sock), \ - FN(kallsyms_lookup_name), \ - FN(find_vma), \ - FN(loop), \ - FN(strncmp), \ - FN(get_func_arg), \ - FN(get_func_ret), \ - FN(get_func_arg_cnt), \ /* */ /* integer value in 'imm' field of BPF_CALL instruction selects which helper @@ -5299,7 +4174,6 @@ enum { BPF_F_ADJ_ROOM_ENCAP_L4_GRE = (1ULL << 3), BPF_F_ADJ_ROOM_ENCAP_L4_UDP = (1ULL << 4), BPF_F_ADJ_ROOM_NO_CSUM_RESET = (1ULL << 5), - BPF_F_ADJ_ROOM_ENCAP_L2_ETH = (1ULL << 6), }; enum { @@ -5383,12 +4257,6 @@ 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; \ @@ -5435,8 +4303,6 @@ struct __sk_buff { __u32 gso_segs; __bpf_md_ptr(struct bpf_sock *, sk); __u32 gso_size; - __u32 :32; /* Padding, future use. */ - __u64 hwtstamp; }; struct bpf_tunnel_key { @@ -5675,20 +4541,6 @@ 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 @@ -5730,7 +4582,6 @@ struct bpf_prog_info { __u64 run_time_ns; __u64 run_cnt; __u64 recursion_misses; - __u32 verified_insns; } __attribute__((aligned(8))); struct bpf_map_info { @@ -5748,8 +4599,6 @@ struct bpf_map_info { __u32 btf_id; __u32 btf_key_type_id; __u32 btf_value_type_id; - __u32 :32; /* alignment pad */ - __u64 map_extra; } __attribute__((aligned(8))); struct bpf_btf_info { @@ -5772,8 +4621,6 @@ struct bpf_link_info { } raw_tracepoint; struct { __u32 attach_type; - __u32 target_obj_id; /* prog_id for PROG_EXT, otherwise btf object id */ - __u32 target_btf_id; /* BTF type id inside the object */ } tracing; struct { __u64 cgroup_id; @@ -6337,11 +5184,6 @@ struct bpf_spin_lock { __u32 val; }; -struct bpf_timer { - __u64 :64; - __u64 :64; -} __attribute__((aligned(8))); - struct bpf_sysctl { __u32 write; /* Sysctl is being read (= 0) or written (= 1). * Allows 1,2,4-byte read, but no write. @@ -6369,10 +5211,7 @@ struct bpf_pidns_info { /* User accessible data for SK_LOOKUP programs. Add new fields at the end. */ struct bpf_sk_lookup { - union { - __bpf_md_ptr(struct bpf_sock *, sk); /* Selected socket */ - __u64 cookie; /* Non-zero if socket was selected in PROG_TEST_RUN */ - }; + __bpf_md_ptr(struct bpf_sock *, sk); /* Selected socket */ __u32 family; /* Protocol family (AF_INET, AF_INET6) */ __u32 protocol; /* IP protocol (IPPROTO_TCP, IPPROTO_UDP) */ @@ -6382,7 +5221,6 @@ struct bpf_sk_lookup { __u32 local_ip4; /* Network byte order */ __u32 local_ip6[4]; /* Network byte order */ __u32 local_port; /* Host byte order */ - __u32 ingress_ifindex; /* The arriving interface. Determined by inet_iif. */ }; /* @@ -6415,78 +5253,4 @@ enum { BTF_F_ZERO = (1ULL << 3), }; -/* bpf_core_relo_kind encodes which aspect of captured field/type/enum value - * has to be adjusted by relocations. It is emitted by llvm and passed to - * libbpf and later to the kernel. - */ -enum bpf_core_relo_kind { - BPF_CORE_FIELD_BYTE_OFFSET = 0, /* field byte offset */ - BPF_CORE_FIELD_BYTE_SIZE = 1, /* field size in bytes */ - BPF_CORE_FIELD_EXISTS = 2, /* field existence in target kernel */ - BPF_CORE_FIELD_SIGNED = 3, /* field signedness (0 - unsigned, 1 - signed) */ - BPF_CORE_FIELD_LSHIFT_U64 = 4, /* bitfield-specific left bitshift */ - BPF_CORE_FIELD_RSHIFT_U64 = 5, /* bitfield-specific right bitshift */ - BPF_CORE_TYPE_ID_LOCAL = 6, /* type ID in local BPF object */ - BPF_CORE_TYPE_ID_TARGET = 7, /* type ID in target kernel */ - BPF_CORE_TYPE_EXISTS = 8, /* type existence in target kernel */ - BPF_CORE_TYPE_SIZE = 9, /* type size in bytes */ - BPF_CORE_ENUMVAL_EXISTS = 10, /* enum value existence in target kernel */ - BPF_CORE_ENUMVAL_VALUE = 11, /* enum value integer value */ -}; - -/* - * "struct bpf_core_relo" is used to pass relocation data form LLVM to libbpf - * and from libbpf to the kernel. - * - * CO-RE relocation captures the following data: - * - insn_off - instruction offset (in bytes) within a BPF program that needs - * its insn->imm field to be relocated with actual field info; - * - type_id - BTF type ID of the "root" (containing) entity of a relocatable - * type or field; - * - access_str_off - offset into corresponding .BTF string section. String - * interpretation depends on specific relocation kind: - * - for field-based relocations, string encodes an accessed field using - * a sequence of field and array indices, separated by colon (:). It's - * conceptually very close to LLVM's getelementptr ([0]) instruction's - * arguments for identifying offset to a field. - * - for type-based relocations, strings is expected to be just "0"; - * - for enum value-based relocations, string contains an index of enum - * value within its enum type; - * - kind - one of enum bpf_core_relo_kind; - * - * Example: - * struct sample { - * int a; - * struct { - * int b[10]; - * }; - * }; - * - * struct sample *s = ...; - * int *x = &s->a; // encoded as "0:0" (a is field #0) - * int *y = &s->b[5]; // encoded as "0:1:0:5" (anon struct is field #1, - * // b is field #0 inside anon struct, accessing elem #5) - * int *z = &s[10]->b; // encoded as "10:1" (ptr is used as an array) - * - * type_id for all relocs in this example will capture BTF type id of - * `struct sample`. - * - * Such relocation is emitted when using __builtin_preserve_access_index() - * Clang built-in, passing expression that captures field address, e.g.: - * - * bpf_probe_read(&dst, sizeof(dst), - * __builtin_preserve_access_index(&src->a.b.c)); - * - * In this case Clang will emit field relocation recording necessary data to - * be able to find offset of embedded `a.b.c` field within `src` struct. - * - * [0] https://llvm.org/docs/LangRef.html#getelementptr-instruction - */ -struct bpf_core_relo { - __u32 insn_off; - __u32 type_id; - __u32 access_str_off; - enum bpf_core_relo_kind kind; -}; - #endif /* _UAPI__LINUX_BPF_H__ */ diff --git a/original/uapi/linux/btf.h b/original/uapi/linux/btf.h index b0d8fea..5a66710 100644 --- a/original/uapi/linux/btf.h +++ b/original/uapi/linux/btf.h @@ -43,7 +43,7 @@ struct btf_type { * "size" tells the size of the type it is describing. * * "type" is used by PTR, TYPEDEF, VOLATILE, CONST, RESTRICT, - * FUNC, FUNC_PROTO, VAR, DECL_TAG and TYPE_TAG. + * FUNC, FUNC_PROTO and VAR. * "type" is a type_id referring to another type. */ union { @@ -52,34 +52,28 @@ struct btf_type { }; }; -#define BTF_INFO_KIND(info) (((info) >> 24) & 0x1f) +#define BTF_INFO_KIND(info) (((info) >> 24) & 0x0f) #define BTF_INFO_VLEN(info) ((info) & 0xffff) #define BTF_INFO_KFLAG(info) ((info) >> 31) -enum { - BTF_KIND_UNKN = 0, /* Unknown */ - BTF_KIND_INT = 1, /* Integer */ - BTF_KIND_PTR = 2, /* Pointer */ - BTF_KIND_ARRAY = 3, /* Array */ - BTF_KIND_STRUCT = 4, /* Struct */ - BTF_KIND_UNION = 5, /* Union */ - BTF_KIND_ENUM = 6, /* Enumeration */ - BTF_KIND_FWD = 7, /* Forward */ - BTF_KIND_TYPEDEF = 8, /* Typedef */ - BTF_KIND_VOLATILE = 9, /* Volatile */ - BTF_KIND_CONST = 10, /* Const */ - BTF_KIND_RESTRICT = 11, /* Restrict */ - BTF_KIND_FUNC = 12, /* Function */ - BTF_KIND_FUNC_PROTO = 13, /* Function Proto */ - BTF_KIND_VAR = 14, /* Variable */ - BTF_KIND_DATASEC = 15, /* Section */ - BTF_KIND_FLOAT = 16, /* Floating point */ - BTF_KIND_DECL_TAG = 17, /* Decl Tag */ - BTF_KIND_TYPE_TAG = 18, /* Type Tag */ - - NR_BTF_KINDS, - BTF_KIND_MAX = NR_BTF_KINDS - 1, -}; +#define BTF_KIND_UNKN 0 /* Unknown */ +#define BTF_KIND_INT 1 /* Integer */ +#define BTF_KIND_PTR 2 /* Pointer */ +#define BTF_KIND_ARRAY 3 /* Array */ +#define BTF_KIND_STRUCT 4 /* Struct */ +#define BTF_KIND_UNION 5 /* Union */ +#define BTF_KIND_ENUM 6 /* Enumeration */ +#define BTF_KIND_FWD 7 /* Forward */ +#define BTF_KIND_TYPEDEF 8 /* Typedef */ +#define BTF_KIND_VOLATILE 9 /* Volatile */ +#define BTF_KIND_CONST 10 /* Const */ +#define BTF_KIND_RESTRICT 11 /* Restrict */ +#define BTF_KIND_FUNC 12 /* Function */ +#define BTF_KIND_FUNC_PROTO 13 /* Function Proto */ +#define BTF_KIND_VAR 14 /* Variable */ +#define BTF_KIND_DATASEC 15 /* Section */ +#define BTF_KIND_MAX BTF_KIND_DATASEC +#define NR_BTF_KINDS (BTF_KIND_MAX + 1) /* For some specific BTF_KIND, "struct btf_type" is immediately * followed by extra data. @@ -175,15 +169,4 @@ struct btf_var_secinfo { __u32 size; }; -/* BTF_KIND_DECL_TAG is followed by a single "struct btf_decl_tag" to describe - * additional information related to the tag applied location. - * If component_idx == -1, the tag is applied to a struct, union, - * variable or function. Otherwise, it is applied to a struct/union - * member or a func argument, and component_idx indicates which member - * or argument (0 ... vlen-1). - */ -struct btf_decl_tag { - __s32 component_idx; -}; - #endif /* _UAPI__LINUX_BTF_H__ */ diff --git a/original/uapi/linux/btrfs.h b/original/uapi/linux/btrfs.h index 7386199..5df7300 100644 --- a/original/uapi/linux/btrfs.h +++ b/original/uapi/linux/btrfs.h @@ -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 occurrences, where the metadata + __u64 verify_errors; /* # of occurences, 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 occurrences where a read for a + __u64 unverified_errors; /* # of occurences where a read for a * full (64k) bio failed, but the re- * check succeeded for each 4k piece. * Intermittent error. */ @@ -288,7 +288,6 @@ struct btrfs_ioctl_fs_info_args { * first mount when booting older kernel versions. */ #define BTRFS_FEATURE_COMPAT_RO_FREE_SPACE_TREE_VALID (1ULL << 1) -#define BTRFS_FEATURE_COMPAT_RO_VERITY (1ULL << 2) #define BTRFS_FEATURE_INCOMPAT_MIXED_BACKREF (1ULL << 0) #define BTRFS_FEATURE_INCOMPAT_DEFAULT_SUBVOL (1ULL << 1) @@ -771,16 +770,10 @@ struct btrfs_ioctl_received_subvol_args { */ #define BTRFS_SEND_FLAG_OMIT_END_CMD 0x4 -/* - * Read the protocol version in the structure - */ -#define BTRFS_SEND_FLAG_VERSION 0x8 - #define BTRFS_SEND_FLAG_MASK \ (BTRFS_SEND_FLAG_NO_FILE_DATA | \ BTRFS_SEND_FLAG_OMIT_STREAM_HEADER | \ - BTRFS_SEND_FLAG_OMIT_END_CMD | \ - BTRFS_SEND_FLAG_VERSION) + BTRFS_SEND_FLAG_OMIT_END_CMD) struct btrfs_ioctl_send_args { __s64 send_fd; /* in */ @@ -788,8 +781,7 @@ struct btrfs_ioctl_send_args { __u64 __user *clone_sources; /* in */ __u64 parent_root; /* in */ __u64 flags; /* in */ - __u32 version; /* in */ - __u8 reserved[28]; /* in */ + __u64 reserved[4]; /* in */ }; /* diff --git a/original/uapi/linux/btrfs_tree.h b/original/uapi/linux/btrfs_tree.h index 5416f1f..58d7cff 100644 --- a/original/uapi/linux/btrfs_tree.h +++ b/original/uapi/linux/btrfs_tree.h @@ -59,7 +59,7 @@ /* for storing balance parameters in the root tree */ #define BTRFS_BALANCE_OBJECTID -4ULL -/* orphan objectid for tracking unlinked/truncated files */ +/* orhpan objectid for tracking unlinked/truncated files */ #define BTRFS_ORPHAN_OBJECTID -5ULL /* does write ahead logging to speed up fsyncs */ @@ -118,37 +118,12 @@ #define BTRFS_INODE_REF_KEY 12 #define BTRFS_INODE_EXTREF_KEY 13 #define BTRFS_XATTR_ITEM_KEY 24 - -/* - * fs verity items are stored under two different key types on disk. - * The descriptor items: - * [ inode objectid, BTRFS_VERITY_DESC_ITEM_KEY, offset ] - * - * At offset 0, we store a btrfs_verity_descriptor_item which tracks the size - * of the descriptor item and some extra data for encryption. - * Starting at offset 1, these hold the generic fs verity descriptor. The - * latter are opaque to btrfs, we just read and write them as a blob for the - * higher level verity code. The most common descriptor size is 256 bytes. - * - * The merkle tree items: - * [ inode objectid, BTRFS_VERITY_MERKLE_ITEM_KEY, offset ] - * - * These also start at offset 0, and correspond to the merkle tree bytes. When - * fsverity asks for page 0 of the merkle tree, we pull up one page starting at - * offset 0 for this key type. These are also opaque to btrfs, we're blindly - * storing whatever fsverity sends down. - */ -#define BTRFS_VERITY_DESC_ITEM_KEY 36 -#define BTRFS_VERITY_MERKLE_ITEM_KEY 37 - #define BTRFS_ORPHAN_ITEM_KEY 48 /* reserve 2-15 close to the inode for later flexibility */ /* * dir items are the name -> inode pointers in a directory. There is one - * for every name in a directory. BTRFS_DIR_LOG_ITEM_KEY is no longer used - * but it's still defined here for documentation purposes and to help avoid - * having its numerical value reused in the future. + * for every name in a directory. */ #define BTRFS_DIR_LOG_ITEM_KEY 60 #define BTRFS_DIR_LOG_INDEX_KEY 72 @@ -300,7 +275,7 @@ #define BTRFS_PERSISTENT_ITEM_KEY 249 /* - * Persistently stores the device replace state in the device tree. + * Persistantly 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 @@ -1016,16 +991,4 @@ struct btrfs_qgroup_limit_item { __le64 rsv_excl; } __attribute__ ((__packed__)); -struct btrfs_verity_descriptor_item { - /* Size of the verity descriptor in bytes */ - __le64 size; - /* - * When we implement support for fscrypt, we will need to encrypt the - * Merkle tree for encrypted verity files. These 128 bits are for the - * eventual storage of an fscrypt initialization vector. - */ - __le64 reserved[2]; - __u8 encryption; -} __attribute__ ((__packed__)); - #endif /* _BTRFS_CTREE_H_ */ diff --git a/original/uapi/linux/byteorder/big_endian.h b/original/uapi/linux/byteorder/big_endian.h index 80aa5c4..2199adc 100644 --- a/original/uapi/linux/byteorder/big_endian.h +++ b/original/uapi/linux/byteorder/big_endian.h @@ -9,7 +9,6 @@ #define __BIG_ENDIAN_BITFIELD #endif -#include <linux/stddef.h> #include <linux/types.h> #include <linux/swab.h> diff --git a/original/uapi/linux/byteorder/little_endian.h b/original/uapi/linux/byteorder/little_endian.h index cd98982..601c904 100644 --- a/original/uapi/linux/byteorder/little_endian.h +++ b/original/uapi/linux/byteorder/little_endian.h @@ -9,7 +9,6 @@ #define __LITTLE_ENDIAN_BITFIELD #endif -#include <linux/stddef.h> #include <linux/types.h> #include <linux/swab.h> diff --git a/original/uapi/linux/can.h b/original/uapi/linux/can.h index 90801ad..c753535 100644 --- a/original/uapi/linux/can.h +++ b/original/uapi/linux/can.h @@ -123,8 +123,8 @@ struct can_frame { /* * defined bits for canfd_frame.flags * - * 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 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 CAN controllers bitstream processor into the CAN FD mode which creates * two new options within the CAN FD frame specification: * @@ -135,18 +135,9 @@ 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 diff --git a/original/uapi/linux/can/j1939.h b/original/uapi/linux/can/j1939.h index 3893646..df6e821 100644 --- a/original/uapi/linux/can/j1939.h +++ b/original/uapi/linux/can/j1939.h @@ -78,20 +78,11 @@ enum { enum { J1939_NLA_PAD, J1939_NLA_BYTES_ACKED, - J1939_NLA_TOTAL_SIZE, - J1939_NLA_PGN, - J1939_NLA_SRC_NAME, - J1939_NLA_DEST_NAME, - J1939_NLA_SRC_ADDR, - J1939_NLA_DEST_ADDR, }; enum { J1939_EE_INFO_NONE, J1939_EE_INFO_TX_ABORT, - J1939_EE_INFO_RX_RTS, - J1939_EE_INFO_RX_DPO, - J1939_EE_INFO_RX_ABORT, }; struct j1939_filter { diff --git a/original/uapi/linux/can/netlink.h b/original/uapi/linux/can/netlink.h index 02ec32d..f730d44 100644 --- a/original/uapi/linux/can/netlink.h +++ b/original/uapi/linux/can/netlink.h @@ -101,8 +101,6 @@ 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 */ /* * CAN device statistics @@ -136,48 +134,10 @@ enum { IFLA_CAN_BITRATE_CONST, IFLA_CAN_DATA_BITRATE_CONST, IFLA_CAN_BITRATE_MAX, - IFLA_CAN_TDC, - IFLA_CAN_CTRLMODE_EXT, - - /* add new constants above here */ - __IFLA_CAN_MAX, - IFLA_CAN_MAX = __IFLA_CAN_MAX - 1 + __IFLA_CAN_MAX }; -/* - * CAN FD Transmitter Delay Compensation (TDC) - * - * Please refer to struct can_tdc_const and can_tdc in - * include/linux/can/bittiming.h for further details. - */ -enum { - IFLA_CAN_TDC_UNSPEC, - IFLA_CAN_TDC_TDCV_MIN, /* u32 */ - IFLA_CAN_TDC_TDCV_MAX, /* u32 */ - IFLA_CAN_TDC_TDCO_MIN, /* u32 */ - IFLA_CAN_TDC_TDCO_MAX, /* u32 */ - IFLA_CAN_TDC_TDCF_MIN, /* u32 */ - IFLA_CAN_TDC_TDCF_MAX, /* u32 */ - IFLA_CAN_TDC_TDCV, /* u32 */ - IFLA_CAN_TDC_TDCO, /* u32 */ - IFLA_CAN_TDC_TDCF, /* u32 */ - - /* add new constants above here */ - __IFLA_CAN_TDC, - IFLA_CAN_TDC_MAX = __IFLA_CAN_TDC - 1 -}; - -/* - * IFLA_CAN_CTRLMODE_EXT nest: controller mode extended parameters - */ -enum { - IFLA_CAN_CTRLMODE_UNSPEC, - IFLA_CAN_CTRLMODE_SUPPORTED, /* u32 */ - - /* add new constants above here */ - __IFLA_CAN_CTRLMODE, - IFLA_CAN_CTRLMODE_MAX = __IFLA_CAN_CTRLMODE - 1 -}; +#define IFLA_CAN_MAX (__IFLA_CAN_MAX - 1) /* u16 termination range: 1..65535 Ohms */ #define CAN_TERMINATION_DISABLED 0 diff --git a/original/uapi/linux/capability.h b/original/uapi/linux/capability.h index 463d1ba..741985d 100644 --- a/original/uapi/linux/capability.h +++ b/original/uapi/linux/capability.h @@ -243,6 +243,7 @@ struct vfs_ns_cap_data { /* Allow examination and configuration of disk quotas */ /* Allow setting the domainname */ /* Allow setting the hostname */ +/* Allow calling bdflush() */ /* Allow mount() and umount(), setting up new smb connection */ /* Allow some autofs root ioctls */ /* Allow nfsservctl */ @@ -287,8 +288,6 @@ struct vfs_ns_cap_data { processes and setting the scheduling algorithm used by another process. */ /* Allow setting cpu affinity on other processes */ -/* Allow setting realtime ioprio class */ -/* Allow setting ioprio class on other processes */ #define CAP_SYS_NICE 23 diff --git a/original/uapi/linux/cdrom.h b/original/uapi/linux/cdrom.h index 804ff8d..6c34f6e 100644 --- a/original/uapi/linux/cdrom.h +++ b/original/uapi/linux/cdrom.h @@ -147,8 +147,6 @@ #define CDROM_NEXT_WRITABLE 0x5394 /* get next writable block */ #define CDROM_LAST_WRITTEN 0x5395 /* get last block written on disc */ -#define CDROM_TIMED_MEDIA_CHANGE 0x5396 /* get the timestamp of the last media change */ - /******************************************************* * CDROM IOCTL structures *******************************************************/ @@ -297,23 +295,6 @@ struct cdrom_generic_command }; }; -/* This struct is used by CDROM_TIMED_MEDIA_CHANGE */ -struct cdrom_timed_media_change_info { - __s64 last_media_change; /* Timestamp of the last detected media - * change in ms. May be set by caller, - * updated upon successful return of - * ioctl. - */ - __u64 media_flags; /* Flags returned by ioctl to indicate - * media status. - */ -}; -#define MEDIA_CHANGED_FLAG 0x1 /* Last detected media change was more - * recent than last_media_change set by - * caller. - */ -/* other bits of media_flags available for future use */ - /* * A CD-ROM physical sector size is 2048, 2052, 2056, 2324, 2332, 2336, * 2340, or 2352 bytes long. diff --git a/original/uapi/linux/cec-funcs.h b/original/uapi/linux/cec-funcs.h index c3baaea..3759002 100644 --- a/original/uapi/linux/cec-funcs.h +++ b/original/uapi/linux/cec-funcs.h @@ -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 = 1; + *audio_out_delay = 0; } static inline void cec_msg_request_current_latency(struct cec_msg *msg, diff --git a/original/uapi/linux/cec.h b/original/uapi/linux/cec.h index de936f5..7d1a06c 100644 --- a/original/uapi/linux/cec.h +++ b/original/uapi/linux/cec.h @@ -396,7 +396,6 @@ struct cec_drm_connector_info { * associated with the CEC adapter. * @type: connector type (if any) * @drm: drm connector info - * @raw: array to pad the union */ struct cec_connector_info { __u32 type; @@ -454,7 +453,7 @@ struct cec_event_lost_msgs { * struct cec_event - CEC event structure * @ts: the timestamp of when the event was sent. * @event: the event. - * @flags: event flags. + * array. * @state_change: the event payload for CEC_EVENT_STATE_CHANGE. * @lost_msgs: the event payload for CEC_EVENT_LOST_MSGS. * @raw: array to pad the union. @@ -642,7 +641,7 @@ struct cec_event { #define CEC_OP_REC_SEQ_WEDNESDAY 0x08 #define CEC_OP_REC_SEQ_THURSDAY 0x10 #define CEC_OP_REC_SEQ_FRIDAY 0x20 -#define CEC_OP_REC_SEQ_SATURDAY 0x40 +#define CEC_OP_REC_SEQ_SATERDAY 0x40 #define CEC_OP_REC_SEQ_ONCE_ONLY 0x00 #define CEC_MSG_CLEAR_DIGITAL_TIMER 0x99 diff --git a/original/uapi/linux/cifs/cifs_mount.h b/original/uapi/linux/cifs/cifs_mount.h index 8e87d27..6982920 100644 --- a/original/uapi/linux/cifs/cifs_mount.h +++ b/original/uapi/linux/cifs/cifs_mount.h @@ -1,5 +1,6 @@ /* SPDX-License-Identifier: LGPL-2.1+ WITH Linux-syscall-note */ /* + * include/uapi/linux/cifs/cifs_mount.h * * Author(s): Scott Lovenberg (scott.lovenberg@gmail.com) * diff --git a/original/uapi/linux/comedi.h b/original/uapi/linux/comedi.h deleted file mode 100644 index 7314e5e..0000000 --- a/original/uapi/linux/comedi.h +++ /dev/null @@ -1,1528 +0,0 @@ -/* SPDX-License-Identifier: LGPL-2.0+ WITH Linux-syscall-note */ -/* - * comedi.h - * header file for COMEDI user API - * - * COMEDI - Linux Control and Measurement Device Interface - * Copyright (C) 1998-2001 David A. Schleef <ds@schleef.org> - */ - -#ifndef _COMEDI_H -#define _COMEDI_H - -#define COMEDI_MAJORVERSION 0 -#define COMEDI_MINORVERSION 7 -#define COMEDI_MICROVERSION 76 -#define VERSION "0.7.76" - -/* comedi's major device number */ -#define COMEDI_MAJOR 98 - -/* - * maximum number of minor devices. This can be increased, although - * kernel structures are currently statically allocated, thus you - * don't want this to be much more than you actually use. - */ -#define COMEDI_NDEVICES 16 - -/* number of config options in the config structure */ -#define COMEDI_NDEVCONFOPTS 32 - -/* - * NOTE: 'comedi_config --init-data' is deprecated - * - * The following indexes in the config options were used by - * comedi_config to pass firmware blobs from user space to the - * comedi drivers. The request_firmware() hotplug interface is - * now used by all comedi drivers instead. - */ - -/* length of nth chunk of firmware data -*/ -#define COMEDI_DEVCONF_AUX_DATA3_LENGTH 25 -#define COMEDI_DEVCONF_AUX_DATA2_LENGTH 26 -#define COMEDI_DEVCONF_AUX_DATA1_LENGTH 27 -#define COMEDI_DEVCONF_AUX_DATA0_LENGTH 28 -/* most significant 32 bits of pointer address (if needed) */ -#define COMEDI_DEVCONF_AUX_DATA_HI 29 -/* least significant 32 bits of pointer address */ -#define COMEDI_DEVCONF_AUX_DATA_LO 30 -#define COMEDI_DEVCONF_AUX_DATA_LENGTH 31 /* total data length */ - -/* max length of device and driver names */ -#define COMEDI_NAMELEN 20 - -/* packs and unpacks a channel/range number */ - -#define CR_PACK(chan, rng, aref) \ - ((((aref) & 0x3) << 24) | (((rng) & 0xff) << 16) | (chan)) -#define CR_PACK_FLAGS(chan, range, aref, flags) \ - (CR_PACK(chan, range, aref) | ((flags) & CR_FLAGS_MASK)) - -#define CR_CHAN(a) ((a) & 0xffff) -#define CR_RANGE(a) (((a) >> 16) & 0xff) -#define CR_AREF(a) (((a) >> 24) & 0x03) - -#define CR_FLAGS_MASK 0xfc000000 -#define CR_ALT_FILTER 0x04000000 -#define CR_DITHER CR_ALT_FILTER -#define CR_DEGLITCH CR_ALT_FILTER -#define CR_ALT_SOURCE 0x08000000 -#define CR_EDGE 0x40000000 -#define CR_INVERT 0x80000000 - -#define AREF_GROUND 0x00 /* analog ref = analog ground */ -#define AREF_COMMON 0x01 /* analog ref = analog common */ -#define AREF_DIFF 0x02 /* analog ref = differential */ -#define AREF_OTHER 0x03 /* analog ref = other (undefined) */ - -/* counters -- these are arbitrary values */ -#define GPCT_RESET 0x0001 -#define GPCT_SET_SOURCE 0x0002 -#define GPCT_SET_GATE 0x0004 -#define GPCT_SET_DIRECTION 0x0008 -#define GPCT_SET_OPERATION 0x0010 -#define GPCT_ARM 0x0020 -#define GPCT_DISARM 0x0040 -#define GPCT_GET_INT_CLK_FRQ 0x0080 - -#define GPCT_INT_CLOCK 0x0001 -#define GPCT_EXT_PIN 0x0002 -#define GPCT_NO_GATE 0x0004 -#define GPCT_UP 0x0008 -#define GPCT_DOWN 0x0010 -#define GPCT_HWUD 0x0020 -#define GPCT_SIMPLE_EVENT 0x0040 -#define GPCT_SINGLE_PERIOD 0x0080 -#define GPCT_SINGLE_PW 0x0100 -#define GPCT_CONT_PULSE_OUT 0x0200 -#define GPCT_SINGLE_PULSE_OUT 0x0400 - -/* instructions */ - -#define INSN_MASK_WRITE 0x8000000 -#define INSN_MASK_READ 0x4000000 -#define INSN_MASK_SPECIAL 0x2000000 - -#define INSN_READ (0 | INSN_MASK_READ) -#define INSN_WRITE (1 | INSN_MASK_WRITE) -#define INSN_BITS (2 | INSN_MASK_READ | INSN_MASK_WRITE) -#define INSN_CONFIG (3 | INSN_MASK_READ | INSN_MASK_WRITE) -#define INSN_DEVICE_CONFIG (INSN_CONFIG | INSN_MASK_SPECIAL) -#define INSN_GTOD (4 | INSN_MASK_READ | INSN_MASK_SPECIAL) -#define INSN_WAIT (5 | INSN_MASK_WRITE | INSN_MASK_SPECIAL) -#define INSN_INTTRIG (6 | INSN_MASK_WRITE | INSN_MASK_SPECIAL) - -/* command flags */ -/* These flags are used in comedi_cmd structures */ - -#define CMDF_BOGUS 0x00000001 /* do the motions */ - -/* try to use a real-time interrupt while performing command */ -#define CMDF_PRIORITY 0x00000008 - -/* wake up on end-of-scan events */ -#define CMDF_WAKE_EOS 0x00000020 - -#define CMDF_WRITE 0x00000040 - -#define CMDF_RAWDATA 0x00000080 - -/* timer rounding definitions */ -#define CMDF_ROUND_MASK 0x00030000 -#define CMDF_ROUND_NEAREST 0x00000000 -#define CMDF_ROUND_DOWN 0x00010000 -#define CMDF_ROUND_UP 0x00020000 -#define CMDF_ROUND_UP_NEXT 0x00030000 - -#define COMEDI_EV_START 0x00040000 -#define COMEDI_EV_SCAN_BEGIN 0x00080000 -#define COMEDI_EV_CONVERT 0x00100000 -#define COMEDI_EV_SCAN_END 0x00200000 -#define COMEDI_EV_STOP 0x00400000 - -/* compatibility definitions */ -#define TRIG_BOGUS CMDF_BOGUS -#define TRIG_RT CMDF_PRIORITY -#define TRIG_WAKE_EOS CMDF_WAKE_EOS -#define TRIG_WRITE CMDF_WRITE -#define TRIG_ROUND_MASK CMDF_ROUND_MASK -#define TRIG_ROUND_NEAREST CMDF_ROUND_NEAREST -#define TRIG_ROUND_DOWN CMDF_ROUND_DOWN -#define TRIG_ROUND_UP CMDF_ROUND_UP -#define TRIG_ROUND_UP_NEXT CMDF_ROUND_UP_NEXT - -/* trigger sources */ - -#define TRIG_ANY 0xffffffff -#define TRIG_INVALID 0x00000000 - -#define TRIG_NONE 0x00000001 /* never trigger */ -#define TRIG_NOW 0x00000002 /* trigger now + N ns */ -#define TRIG_FOLLOW 0x00000004 /* trigger on next lower level trig */ -#define TRIG_TIME 0x00000008 /* trigger at time N ns */ -#define TRIG_TIMER 0x00000010 /* trigger at rate N ns */ -#define TRIG_COUNT 0x00000020 /* trigger when count reaches N */ -#define TRIG_EXT 0x00000040 /* trigger on external signal N */ -#define TRIG_INT 0x00000080 /* trigger on comedi-internal signal N */ -#define TRIG_OTHER 0x00000100 /* driver defined */ - -/* subdevice flags */ - -#define SDF_BUSY 0x0001 /* device is busy */ -#define SDF_BUSY_OWNER 0x0002 /* device is busy with your job */ -#define SDF_LOCKED 0x0004 /* subdevice is locked */ -#define SDF_LOCK_OWNER 0x0008 /* you own lock */ -#define SDF_MAXDATA 0x0010 /* maxdata depends on channel */ -#define SDF_FLAGS 0x0020 /* flags depend on channel */ -#define SDF_RANGETYPE 0x0040 /* range type depends on channel */ -#define SDF_PWM_COUNTER 0x0080 /* PWM can automatically switch off */ -#define SDF_PWM_HBRIDGE 0x0100 /* PWM is signed (H-bridge) */ -#define SDF_CMD 0x1000 /* can do commands (deprecated) */ -#define SDF_SOFT_CALIBRATED 0x2000 /* subdevice uses software calibration */ -#define SDF_CMD_WRITE 0x4000 /* can do output commands */ -#define SDF_CMD_READ 0x8000 /* can do input commands */ - -/* subdevice can be read (e.g. analog input) */ -#define SDF_READABLE 0x00010000 -/* subdevice can be written (e.g. analog output) */ -#define SDF_WRITABLE 0x00020000 -#define SDF_WRITEABLE SDF_WRITABLE /* spelling error in API */ -/* subdevice does not have externally visible lines */ -#define SDF_INTERNAL 0x00040000 -#define SDF_GROUND 0x00100000 /* can do aref=ground */ -#define SDF_COMMON 0x00200000 /* can do aref=common */ -#define SDF_DIFF 0x00400000 /* can do aref=diff */ -#define SDF_OTHER 0x00800000 /* can do aref=other */ -#define SDF_DITHER 0x01000000 /* can do dithering */ -#define SDF_DEGLITCH 0x02000000 /* can do deglitching */ -#define SDF_MMAP 0x04000000 /* can do mmap() */ -#define SDF_RUNNING 0x08000000 /* subdevice is acquiring data */ -#define SDF_LSAMPL 0x10000000 /* subdevice uses 32-bit samples */ -#define SDF_PACKED 0x20000000 /* subdevice can do packed DIO */ - -/* subdevice types */ - -/** - * enum comedi_subdevice_type - COMEDI subdevice types - * @COMEDI_SUBD_UNUSED: Unused subdevice. - * @COMEDI_SUBD_AI: Analog input. - * @COMEDI_SUBD_AO: Analog output. - * @COMEDI_SUBD_DI: Digital input. - * @COMEDI_SUBD_DO: Digital output. - * @COMEDI_SUBD_DIO: Digital input/output. - * @COMEDI_SUBD_COUNTER: Counter. - * @COMEDI_SUBD_TIMER: Timer. - * @COMEDI_SUBD_MEMORY: Memory, EEPROM, DPRAM. - * @COMEDI_SUBD_CALIB: Calibration DACs. - * @COMEDI_SUBD_PROC: Processor, DSP. - * @COMEDI_SUBD_SERIAL: Serial I/O. - * @COMEDI_SUBD_PWM: Pulse-Width Modulation output. - */ -enum comedi_subdevice_type { - COMEDI_SUBD_UNUSED, - COMEDI_SUBD_AI, - COMEDI_SUBD_AO, - COMEDI_SUBD_DI, - COMEDI_SUBD_DO, - COMEDI_SUBD_DIO, - COMEDI_SUBD_COUNTER, - COMEDI_SUBD_TIMER, - COMEDI_SUBD_MEMORY, - COMEDI_SUBD_CALIB, - COMEDI_SUBD_PROC, - COMEDI_SUBD_SERIAL, - COMEDI_SUBD_PWM -}; - -/* configuration instructions */ - -/** - * enum comedi_io_direction - COMEDI I/O directions - * @COMEDI_INPUT: Input. - * @COMEDI_OUTPUT: Output. - * @COMEDI_OPENDRAIN: Open-drain (or open-collector) output. - * - * These are used by the %INSN_CONFIG_DIO_QUERY configuration instruction to - * report a direction. They may also be used in other places where a direction - * needs to be specified. - */ -enum comedi_io_direction { - COMEDI_INPUT = 0, - COMEDI_OUTPUT = 1, - COMEDI_OPENDRAIN = 2 -}; - -/** - * enum configuration_ids - COMEDI configuration instruction codes - * @INSN_CONFIG_DIO_INPUT: Configure digital I/O as input. - * @INSN_CONFIG_DIO_OUTPUT: Configure digital I/O as output. - * @INSN_CONFIG_DIO_OPENDRAIN: Configure digital I/O as open-drain (or open - * collector) output. - * @INSN_CONFIG_ANALOG_TRIG: Configure analog trigger. - * @INSN_CONFIG_ALT_SOURCE: Configure alternate input source. - * @INSN_CONFIG_DIGITAL_TRIG: Configure digital trigger. - * @INSN_CONFIG_BLOCK_SIZE: Configure block size for DMA transfers. - * @INSN_CONFIG_TIMER_1: Configure divisor for external clock. - * @INSN_CONFIG_FILTER: Configure a filter. - * @INSN_CONFIG_CHANGE_NOTIFY: Configure change notification for digital - * inputs. (New drivers should use - * %INSN_CONFIG_DIGITAL_TRIG instead.) - * @INSN_CONFIG_SERIAL_CLOCK: Configure clock for serial I/O. - * @INSN_CONFIG_BIDIRECTIONAL_DATA: Send and receive byte over serial I/O. - * @INSN_CONFIG_DIO_QUERY: Query direction of digital I/O channel. - * @INSN_CONFIG_PWM_OUTPUT: Configure pulse-width modulator output. - * @INSN_CONFIG_GET_PWM_OUTPUT: Get pulse-width modulator output configuration. - * @INSN_CONFIG_ARM: Arm a subdevice or channel. - * @INSN_CONFIG_DISARM: Disarm a subdevice or channel. - * @INSN_CONFIG_GET_COUNTER_STATUS: Get counter status. - * @INSN_CONFIG_RESET: Reset a subdevice or channel. - * @INSN_CONFIG_GPCT_SINGLE_PULSE_GENERATOR: Configure counter/timer as - * single pulse generator. - * @INSN_CONFIG_GPCT_PULSE_TRAIN_GENERATOR: Configure counter/timer as - * pulse train generator. - * @INSN_CONFIG_GPCT_QUADRATURE_ENCODER: Configure counter as a quadrature - * encoder. - * @INSN_CONFIG_SET_GATE_SRC: Set counter/timer gate source. - * @INSN_CONFIG_GET_GATE_SRC: Get counter/timer gate source. - * @INSN_CONFIG_SET_CLOCK_SRC: Set counter/timer master clock source. - * @INSN_CONFIG_GET_CLOCK_SRC: Get counter/timer master clock source. - * @INSN_CONFIG_SET_OTHER_SRC: Set counter/timer "other" source. - * @INSN_CONFIG_GET_HARDWARE_BUFFER_SIZE: Get size (in bytes) of subdevice's - * on-board FIFOs used during streaming - * input/output. - * @INSN_CONFIG_SET_COUNTER_MODE: Set counter/timer mode. - * @INSN_CONFIG_8254_SET_MODE: (Deprecated) Same as - * %INSN_CONFIG_SET_COUNTER_MODE. - * @INSN_CONFIG_8254_READ_STATUS: Read status of 8254 counter channel. - * @INSN_CONFIG_SET_ROUTING: Set routing for a channel. - * @INSN_CONFIG_GET_ROUTING: Get routing for a channel. - * @INSN_CONFIG_PWM_SET_PERIOD: Set PWM period in nanoseconds. - * @INSN_CONFIG_PWM_GET_PERIOD: Get PWM period in nanoseconds. - * @INSN_CONFIG_GET_PWM_STATUS: Get PWM status. - * @INSN_CONFIG_PWM_SET_H_BRIDGE: Set PWM H bridge duty cycle and polarity for - * a relay simultaneously. - * @INSN_CONFIG_PWM_GET_H_BRIDGE: Get PWM H bridge duty cycle and polarity. - * @INSN_CONFIG_GET_CMD_TIMING_CONSTRAINTS: Get the hardware timing restraints, - * regardless of trigger sources. - */ -enum configuration_ids { - INSN_CONFIG_DIO_INPUT = COMEDI_INPUT, - INSN_CONFIG_DIO_OUTPUT = COMEDI_OUTPUT, - INSN_CONFIG_DIO_OPENDRAIN = COMEDI_OPENDRAIN, - INSN_CONFIG_ANALOG_TRIG = 16, -/* INSN_CONFIG_WAVEFORM = 17, */ -/* INSN_CONFIG_TRIG = 18, */ -/* INSN_CONFIG_COUNTER = 19, */ - INSN_CONFIG_ALT_SOURCE = 20, - INSN_CONFIG_DIGITAL_TRIG = 21, - INSN_CONFIG_BLOCK_SIZE = 22, - INSN_CONFIG_TIMER_1 = 23, - INSN_CONFIG_FILTER = 24, - INSN_CONFIG_CHANGE_NOTIFY = 25, - - INSN_CONFIG_SERIAL_CLOCK = 26, /*ALPHA*/ - INSN_CONFIG_BIDIRECTIONAL_DATA = 27, - INSN_CONFIG_DIO_QUERY = 28, - INSN_CONFIG_PWM_OUTPUT = 29, - INSN_CONFIG_GET_PWM_OUTPUT = 30, - INSN_CONFIG_ARM = 31, - INSN_CONFIG_DISARM = 32, - INSN_CONFIG_GET_COUNTER_STATUS = 33, - INSN_CONFIG_RESET = 34, - INSN_CONFIG_GPCT_SINGLE_PULSE_GENERATOR = 1001, - INSN_CONFIG_GPCT_PULSE_TRAIN_GENERATOR = 1002, - INSN_CONFIG_GPCT_QUADRATURE_ENCODER = 1003, - INSN_CONFIG_SET_GATE_SRC = 2001, - INSN_CONFIG_GET_GATE_SRC = 2002, - INSN_CONFIG_SET_CLOCK_SRC = 2003, - INSN_CONFIG_GET_CLOCK_SRC = 2004, - INSN_CONFIG_SET_OTHER_SRC = 2005, - INSN_CONFIG_GET_HARDWARE_BUFFER_SIZE = 2006, - INSN_CONFIG_SET_COUNTER_MODE = 4097, - INSN_CONFIG_8254_SET_MODE = INSN_CONFIG_SET_COUNTER_MODE, - INSN_CONFIG_8254_READ_STATUS = 4098, - INSN_CONFIG_SET_ROUTING = 4099, - INSN_CONFIG_GET_ROUTING = 4109, - INSN_CONFIG_PWM_SET_PERIOD = 5000, - INSN_CONFIG_PWM_GET_PERIOD = 5001, - INSN_CONFIG_GET_PWM_STATUS = 5002, - INSN_CONFIG_PWM_SET_H_BRIDGE = 5003, - INSN_CONFIG_PWM_GET_H_BRIDGE = 5004, - INSN_CONFIG_GET_CMD_TIMING_CONSTRAINTS = 5005, -}; - -/** - * enum device_configuration_ids - COMEDI configuration instruction codes global - * to an entire device. - * @INSN_DEVICE_CONFIG_TEST_ROUTE: Validate the possibility of a - * globally-named route - * @INSN_DEVICE_CONFIG_CONNECT_ROUTE: Connect a globally-named route - * @INSN_DEVICE_CONFIG_DISCONNECT_ROUTE:Disconnect a globally-named route - * @INSN_DEVICE_CONFIG_GET_ROUTES: Get a list of all globally-named routes - * that are valid for a particular device. - */ -enum device_config_route_ids { - INSN_DEVICE_CONFIG_TEST_ROUTE = 0, - INSN_DEVICE_CONFIG_CONNECT_ROUTE = 1, - INSN_DEVICE_CONFIG_DISCONNECT_ROUTE = 2, - INSN_DEVICE_CONFIG_GET_ROUTES = 3, -}; - -/** - * enum comedi_digital_trig_op - operations for configuring a digital trigger - * @COMEDI_DIGITAL_TRIG_DISABLE: Return digital trigger to its default, - * inactive, unconfigured state. - * @COMEDI_DIGITAL_TRIG_ENABLE_EDGES: Set rising and/or falling edge inputs - * that each can fire the trigger. - * @COMEDI_DIGITAL_TRIG_ENABLE_LEVELS: Set a combination of high and/or low - * level inputs that can fire the trigger. - * - * These are used with the %INSN_CONFIG_DIGITAL_TRIG configuration instruction. - * The data for the configuration instruction is as follows... - * - * data[%0] = %INSN_CONFIG_DIGITAL_TRIG - * - * data[%1] = trigger ID - * - * data[%2] = configuration operation - * - * data[%3] = configuration parameter 1 - * - * data[%4] = configuration parameter 2 - * - * data[%5] = configuration parameter 3 - * - * The trigger ID (data[%1]) is used to differentiate multiple digital triggers - * belonging to the same subdevice. The configuration operation (data[%2]) is - * one of the enum comedi_digital_trig_op values. The configuration - * parameters (data[%3], data[%4], and data[%5]) depend on the operation; they - * are not used with %COMEDI_DIGITAL_TRIG_DISABLE. - * - * For %COMEDI_DIGITAL_TRIG_ENABLE_EDGES and %COMEDI_DIGITAL_TRIG_ENABLE_LEVELS, - * configuration parameter 1 (data[%3]) contains a "left-shift" value that - * specifies the input corresponding to bit 0 of configuration parameters 2 - * and 3. This is useful if the trigger has more than 32 inputs. - * - * For %COMEDI_DIGITAL_TRIG_ENABLE_EDGES, configuration parameter 2 (data[%4]) - * specifies which of up to 32 inputs have rising-edge sensitivity, and - * configuration parameter 3 (data[%5]) specifies which of up to 32 inputs - * have falling-edge sensitivity that can fire the trigger. - * - * For %COMEDI_DIGITAL_TRIG_ENABLE_LEVELS, configuration parameter 2 (data[%4]) - * specifies which of up to 32 inputs must be at a high level, and - * configuration parameter 3 (data[%5]) specifies which of up to 32 inputs - * must be at a low level for the trigger to fire. - * - * Some sequences of %INSN_CONFIG_DIGITAL_TRIG instructions may have a (partly) - * accumulative effect, depending on the low-level driver. This is useful - * when setting up a trigger that has more than 32 inputs, or has a combination - * of edge- and level-triggered inputs. - */ -enum comedi_digital_trig_op { - COMEDI_DIGITAL_TRIG_DISABLE = 0, - COMEDI_DIGITAL_TRIG_ENABLE_EDGES = 1, - COMEDI_DIGITAL_TRIG_ENABLE_LEVELS = 2 -}; - -/** - * enum comedi_support_level - support level for a COMEDI feature - * @COMEDI_UNKNOWN_SUPPORT: Unspecified support for feature. - * @COMEDI_SUPPORTED: Feature is supported. - * @COMEDI_UNSUPPORTED: Feature is unsupported. - */ -enum comedi_support_level { - COMEDI_UNKNOWN_SUPPORT = 0, - COMEDI_SUPPORTED, - COMEDI_UNSUPPORTED -}; - -/** - * enum comedi_counter_status_flags - counter status bits - * @COMEDI_COUNTER_ARMED: Counter is armed. - * @COMEDI_COUNTER_COUNTING: Counter is counting. - * @COMEDI_COUNTER_TERMINAL_COUNT: Counter reached terminal count. - * - * These bitwise values are used by the %INSN_CONFIG_GET_COUNTER_STATUS - * configuration instruction to report the status of a counter. - */ -enum comedi_counter_status_flags { - COMEDI_COUNTER_ARMED = 0x1, - COMEDI_COUNTER_COUNTING = 0x2, - COMEDI_COUNTER_TERMINAL_COUNT = 0x4, -}; - -/* ioctls */ - -#define CIO 'd' -#define COMEDI_DEVCONFIG _IOW(CIO, 0, struct comedi_devconfig) -#define COMEDI_DEVINFO _IOR(CIO, 1, struct comedi_devinfo) -#define COMEDI_SUBDINFO _IOR(CIO, 2, struct comedi_subdinfo) -#define COMEDI_CHANINFO _IOR(CIO, 3, struct comedi_chaninfo) -/* _IOWR(CIO, 4, ...) is reserved */ -#define COMEDI_LOCK _IO(CIO, 5) -#define COMEDI_UNLOCK _IO(CIO, 6) -#define COMEDI_CANCEL _IO(CIO, 7) -#define COMEDI_RANGEINFO _IOR(CIO, 8, struct comedi_rangeinfo) -#define COMEDI_CMD _IOR(CIO, 9, struct comedi_cmd) -#define COMEDI_CMDTEST _IOR(CIO, 10, struct comedi_cmd) -#define COMEDI_INSNLIST _IOR(CIO, 11, struct comedi_insnlist) -#define COMEDI_INSN _IOR(CIO, 12, struct comedi_insn) -#define COMEDI_BUFCONFIG _IOR(CIO, 13, struct comedi_bufconfig) -#define COMEDI_BUFINFO _IOWR(CIO, 14, struct comedi_bufinfo) -#define COMEDI_POLL _IO(CIO, 15) -#define COMEDI_SETRSUBD _IO(CIO, 16) -#define COMEDI_SETWSUBD _IO(CIO, 17) - -/* structures */ - -/** - * struct comedi_insn - COMEDI instruction - * @insn: COMEDI instruction type (%INSN_xxx). - * @n: Length of @data[]. - * @data: Pointer to data array operated on by the instruction. - * @subdev: Subdevice index. - * @chanspec: A packed "chanspec" value consisting of channel number, - * analog range index, analog reference type, and flags. - * @unused: Reserved for future use. - * - * This is used with the %COMEDI_INSN ioctl, and indirectly with the - * %COMEDI_INSNLIST ioctl. - */ -struct comedi_insn { - unsigned int insn; - unsigned int n; - unsigned int __user *data; - unsigned int subdev; - unsigned int chanspec; - unsigned int unused[3]; -}; - -/** - * struct comedi_insnlist - list of COMEDI instructions - * @n_insns: Number of COMEDI instructions. - * @insns: Pointer to array COMEDI instructions. - * - * This is used with the %COMEDI_INSNLIST ioctl. - */ -struct comedi_insnlist { - unsigned int n_insns; - struct comedi_insn __user *insns; -}; - -/** - * struct comedi_cmd - COMEDI asynchronous acquisition command details - * @subdev: Subdevice index. - * @flags: Command flags (%CMDF_xxx). - * @start_src: "Start acquisition" trigger source (%TRIG_xxx). - * @start_arg: "Start acquisition" trigger argument. - * @scan_begin_src: "Scan begin" trigger source. - * @scan_begin_arg: "Scan begin" trigger argument. - * @convert_src: "Convert" trigger source. - * @convert_arg: "Convert" trigger argument. - * @scan_end_src: "Scan end" trigger source. - * @scan_end_arg: "Scan end" trigger argument. - * @stop_src: "Stop acquisition" trigger source. - * @stop_arg: "Stop acquisition" trigger argument. - * @chanlist: Pointer to array of "chanspec" values, containing a - * sequence of channel numbers packed with analog range - * index, etc. - * @chanlist_len: Number of channels in sequence. - * @data: Pointer to miscellaneous set-up data (not used). - * @data_len: Length of miscellaneous set-up data. - * - * This is used with the %COMEDI_CMD or %COMEDI_CMDTEST ioctl to set-up - * or validate an asynchronous acquisition command. The ioctl may modify - * the &struct comedi_cmd and copy it back to the caller. - * - * Optional command @flags values that can be ORed together... - * - * %CMDF_BOGUS - makes %COMEDI_CMD ioctl return error %EAGAIN instead of - * starting the command. - * - * %CMDF_PRIORITY - requests "hard real-time" processing (which is not - * supported in this version of COMEDI). - * - * %CMDF_WAKE_EOS - requests the command makes data available for reading - * after every "scan" period. - * - * %CMDF_WRITE - marks the command as being in the "write" (to device) - * direction. This does not need to be specified by the caller unless the - * subdevice supports commands in either direction. - * - * %CMDF_RAWDATA - prevents the command from "munging" the data between the - * COMEDI sample format and the raw hardware sample format. - * - * %CMDF_ROUND_NEAREST - requests timing periods to be rounded to nearest - * supported values. - * - * %CMDF_ROUND_DOWN - requests timing periods to be rounded down to supported - * values (frequencies rounded up). - * - * %CMDF_ROUND_UP - requests timing periods to be rounded up to supported - * values (frequencies rounded down). - * - * Trigger source values for @start_src, @scan_begin_src, @convert_src, - * @scan_end_src, and @stop_src... - * - * %TRIG_ANY - "all ones" value used to test which trigger sources are - * supported. - * - * %TRIG_INVALID - "all zeroes" value used to indicate that all requested - * trigger sources are invalid. - * - * %TRIG_NONE - never trigger (often used as a @stop_src value). - * - * %TRIG_NOW - trigger after '_arg' nanoseconds. - * - * %TRIG_FOLLOW - trigger follows another event. - * - * %TRIG_TIMER - trigger every '_arg' nanoseconds. - * - * %TRIG_COUNT - trigger when count '_arg' is reached. - * - * %TRIG_EXT - trigger on external signal specified by '_arg'. - * - * %TRIG_INT - trigger on internal, software trigger specified by '_arg'. - * - * %TRIG_OTHER - trigger on other, driver-defined signal specified by '_arg'. - */ -struct comedi_cmd { - unsigned int subdev; - unsigned int flags; - - unsigned int start_src; - unsigned int start_arg; - - unsigned int scan_begin_src; - unsigned int scan_begin_arg; - - unsigned int convert_src; - unsigned int convert_arg; - - unsigned int scan_end_src; - unsigned int scan_end_arg; - - unsigned int stop_src; - unsigned int stop_arg; - - unsigned int *chanlist; - unsigned int chanlist_len; - - short __user *data; - unsigned int data_len; -}; - -/** - * struct comedi_chaninfo - used to retrieve per-channel information - * @subdev: Subdevice index. - * @maxdata_list: Optional pointer to per-channel maximum data values. - * @flaglist: Optional pointer to per-channel flags. - * @rangelist: Optional pointer to per-channel range types. - * @unused: Reserved for future use. - * - * This is used with the %COMEDI_CHANINFO ioctl to get per-channel information - * for the subdevice. Use of this requires knowledge of the number of channels - * and subdevice flags obtained using the %COMEDI_SUBDINFO ioctl. - * - * The @maxdata_list member must be %NULL unless the %SDF_MAXDATA subdevice - * flag is set. The @flaglist member must be %NULL unless the %SDF_FLAGS - * subdevice flag is set. The @rangelist member must be %NULL unless the - * %SDF_RANGETYPE subdevice flag is set. Otherwise, the arrays they point to - * must be at least as long as the number of channels. - */ -struct comedi_chaninfo { - unsigned int subdev; - unsigned int __user *maxdata_list; - unsigned int __user *flaglist; - unsigned int __user *rangelist; - unsigned int unused[4]; -}; - -/** - * struct comedi_rangeinfo - used to retrieve the range table for a channel - * @range_type: Encodes subdevice index (bits 27:24), channel index - * (bits 23:16) and range table length (bits 15:0). - * @range_ptr: Pointer to array of @struct comedi_krange to be filled - * in with the range table for the channel or subdevice. - * - * This is used with the %COMEDI_RANGEINFO ioctl to retrieve the range table - * for a specific channel (if the subdevice has the %SDF_RANGETYPE flag set to - * indicate that the range table depends on the channel), or for the subdevice - * as a whole (if the %SDF_RANGETYPE flag is clear, indicating the range table - * is shared by all channels). - * - * The @range_type value is an input to the ioctl and comes from a previous - * use of the %COMEDI_SUBDINFO ioctl (if the %SDF_RANGETYPE flag is clear), - * or the %COMEDI_CHANINFO ioctl (if the %SDF_RANGETYPE flag is set). - */ -struct comedi_rangeinfo { - unsigned int range_type; - void __user *range_ptr; -}; - -/** - * struct comedi_krange - describes a range in a range table - * @min: Minimum value in millionths (1e-6) of a unit. - * @max: Maximum value in millionths (1e-6) of a unit. - * @flags: Indicates the units (in bits 7:0) OR'ed with optional flags. - * - * A range table is associated with a single channel, or with all channels in a - * subdevice, and a list of one or more ranges. A %struct comedi_krange - * describes the physical range of units for one of those ranges. Sample - * values in COMEDI are unsigned from %0 up to some 'maxdata' value. The - * mapping from sample values to physical units is assumed to be nomimally - * linear (for the purpose of describing the range), with sample value %0 - * mapping to @min, and the 'maxdata' sample value mapping to @max. - * - * The currently defined units are %UNIT_volt (%0), %UNIT_mA (%1), and - * %UNIT_none (%2). The @min and @max values are the physical range multiplied - * by 1e6, so a @max value of %1000000 (with %UNIT_volt) represents a maximal - * value of 1 volt. - * - * The only defined flag value is %RF_EXTERNAL (%0x100), indicating that the - * range needs to be multiplied by an external reference. - */ -struct comedi_krange { - int min; - int max; - unsigned int flags; -}; - -/** - * struct comedi_subdinfo - used to retrieve information about a subdevice - * @type: Type of subdevice from &enum comedi_subdevice_type. - * @n_chan: Number of channels the subdevice supports. - * @subd_flags: A mixture of static and dynamic flags describing - * aspects of the subdevice and its current state. - * @timer_type: Timer type. Always set to %5 ("nanosecond timer"). - * @len_chanlist: Maximum length of a channel list if the subdevice - * supports asynchronous acquisition commands. - * @maxdata: Maximum sample value for all channels if the - * %SDF_MAXDATA subdevice flag is clear. - * @flags: Channel flags for all channels if the %SDF_FLAGS - * subdevice flag is clear. - * @range_type: The range type for all channels if the %SDF_RANGETYPE - * subdevice flag is clear. Encodes the subdevice index - * (bits 27:24), a dummy channel index %0 (bits 23:16), - * and the range table length (bits 15:0). - * @settling_time_0: Not used. - * @insn_bits_support: Set to %COMEDI_SUPPORTED if the subdevice supports the - * %INSN_BITS instruction, or to %COMEDI_UNSUPPORTED if it - * does not. - * @unused: Reserved for future use. - * - * This is used with the %COMEDI_SUBDINFO ioctl which copies an array of - * &struct comedi_subdinfo back to user space, with one element per subdevice. - * Use of this requires knowledge of the number of subdevices obtained from - * the %COMEDI_DEVINFO ioctl. - * - * These are the @subd_flags values that may be ORed together... - * - * %SDF_BUSY - the subdevice is busy processing an asynchronous command or a - * synchronous instruction. - * - * %SDF_BUSY_OWNER - the subdevice is busy processing an asynchronous - * acquisition command started on the current file object (the file object - * issuing the %COMEDI_SUBDINFO ioctl). - * - * %SDF_LOCKED - the subdevice is locked by a %COMEDI_LOCK ioctl. - * - * %SDF_LOCK_OWNER - the subdevice is locked by a %COMEDI_LOCK ioctl from the - * current file object. - * - * %SDF_MAXDATA - maximum sample values are channel-specific. - * - * %SDF_FLAGS - channel flags are channel-specific. - * - * %SDF_RANGETYPE - range types are channel-specific. - * - * %SDF_PWM_COUNTER - PWM can switch off automatically. - * - * %SDF_PWM_HBRIDGE - or PWM is signed (H-bridge). - * - * %SDF_CMD - the subdevice supports asynchronous commands. - * - * %SDF_SOFT_CALIBRATED - the subdevice uses software calibration. - * - * %SDF_CMD_WRITE - the subdevice supports asynchronous commands in the output - * ("write") direction. - * - * %SDF_CMD_READ - the subdevice supports asynchronous commands in the input - * ("read") direction. - * - * %SDF_READABLE - the subdevice is readable (e.g. analog input). - * - * %SDF_WRITABLE (aliased as %SDF_WRITEABLE) - the subdevice is writable (e.g. - * analog output). - * - * %SDF_INTERNAL - the subdevice has no externally visible lines. - * - * %SDF_GROUND - the subdevice can use ground as an analog reference. - * - * %SDF_COMMON - the subdevice can use a common analog reference. - * - * %SDF_DIFF - the subdevice can use differential inputs (or outputs). - * - * %SDF_OTHER - the subdevice can use some other analog reference. - * - * %SDF_DITHER - the subdevice can do dithering. - * - * %SDF_DEGLITCH - the subdevice can do deglitching. - * - * %SDF_MMAP - this is never set. - * - * %SDF_RUNNING - an asynchronous command is still running. - * - * %SDF_LSAMPL - the subdevice uses "long" (32-bit) samples (for asynchronous - * command data). - * - * %SDF_PACKED - the subdevice packs several DIO samples into a single sample - * (for asynchronous command data). - * - * No "channel flags" (@flags) values are currently defined. - */ -struct comedi_subdinfo { - unsigned int type; - unsigned int n_chan; - unsigned int subd_flags; - unsigned int timer_type; - unsigned int len_chanlist; - unsigned int maxdata; - unsigned int flags; - unsigned int range_type; - unsigned int settling_time_0; - unsigned int insn_bits_support; - unsigned int unused[8]; -}; - -/** - * struct comedi_devinfo - used to retrieve information about a COMEDI device - * @version_code: COMEDI version code. - * @n_subdevs: Number of subdevices the device has. - * @driver_name: Null-terminated COMEDI driver name. - * @board_name: Null-terminated COMEDI board name. - * @read_subdevice: Index of the current "read" subdevice (%-1 if none). - * @write_subdevice: Index of the current "write" subdevice (%-1 if none). - * @unused: Reserved for future use. - * - * This is used with the %COMEDI_DEVINFO ioctl to get basic information about - * the device. - */ -struct comedi_devinfo { - unsigned int version_code; - unsigned int n_subdevs; - char driver_name[COMEDI_NAMELEN]; - char board_name[COMEDI_NAMELEN]; - int read_subdevice; - int write_subdevice; - int unused[30]; -}; - -/** - * struct comedi_devconfig - used to configure a legacy COMEDI device - * @board_name: Null-terminated string specifying the type of board - * to configure. - * @options: An array of integer configuration options. - * - * This is used with the %COMEDI_DEVCONFIG ioctl to configure a "legacy" COMEDI - * device, such as an ISA card. Not all COMEDI drivers support this. Those - * that do either expect the specified board name to match one of a list of - * names registered with the COMEDI core, or expect the specified board name - * to match the COMEDI driver name itself. The configuration options are - * handled in a driver-specific manner. - */ -struct comedi_devconfig { - char board_name[COMEDI_NAMELEN]; - int options[COMEDI_NDEVCONFOPTS]; -}; - -/** - * struct comedi_bufconfig - used to set or get buffer size for a subdevice - * @subdevice: Subdevice index. - * @flags: Not used. - * @maximum_size: Maximum allowed buffer size. - * @size: Buffer size. - * @unused: Reserved for future use. - * - * This is used with the %COMEDI_BUFCONFIG ioctl to get or configure the - * maximum buffer size and current buffer size for a COMEDI subdevice that - * supports asynchronous commands. If the subdevice does not support - * asynchronous commands, @maximum_size and @size are ignored and set to 0. - * - * On ioctl input, non-zero values of @maximum_size and @size specify a - * new maximum size and new current size (in bytes), respectively. These - * will by rounded up to a multiple of %PAGE_SIZE. Specifying a new maximum - * size requires admin capabilities. - * - * On ioctl output, @maximum_size and @size and set to the current maximum - * buffer size and current buffer size, respectively. - */ -struct comedi_bufconfig { - unsigned int subdevice; - unsigned int flags; - - unsigned int maximum_size; - unsigned int size; - - unsigned int unused[4]; -}; - -/** - * struct comedi_bufinfo - used to manipulate buffer position for a subdevice - * @subdevice: Subdevice index. - * @bytes_read: Specify amount to advance read position for an - * asynchronous command in the input ("read") direction. - * @buf_write_ptr: Current write position (index) within the buffer. - * @buf_read_ptr: Current read position (index) within the buffer. - * @buf_write_count: Total amount written, modulo 2^32. - * @buf_read_count: Total amount read, modulo 2^32. - * @bytes_written: Specify amount to advance write position for an - * asynchronous command in the output ("write") direction. - * @unused: Reserved for future use. - * - * This is used with the %COMEDI_BUFINFO ioctl to optionally advance the - * current read or write position in an asynchronous acquisition data buffer, - * and to get the current read and write positions in the buffer. - */ -struct comedi_bufinfo { - unsigned int subdevice; - unsigned int bytes_read; - - unsigned int buf_write_ptr; - unsigned int buf_read_ptr; - unsigned int buf_write_count; - unsigned int buf_read_count; - - unsigned int bytes_written; - - unsigned int unused[4]; -}; - -/* range stuff */ - -#define __RANGE(a, b) ((((a) & 0xffff) << 16) | ((b) & 0xffff)) - -#define RANGE_OFFSET(a) (((a) >> 16) & 0xffff) -#define RANGE_LENGTH(b) ((b) & 0xffff) - -#define RF_UNIT(flags) ((flags) & 0xff) -#define RF_EXTERNAL 0x100 - -#define UNIT_volt 0 -#define UNIT_mA 1 -#define UNIT_none 2 - -#define COMEDI_MIN_SPEED 0xffffffffu - -/**********************************************************/ -/* everything after this line is ALPHA */ -/**********************************************************/ - -/* - * 8254 specific configuration. - * - * It supports two config commands: - * - * 0 ID: INSN_CONFIG_SET_COUNTER_MODE - * 1 8254 Mode - * I8254_MODE0, I8254_MODE1, ..., I8254_MODE5 - * OR'ed with: - * I8254_BCD, I8254_BINARY - * - * 0 ID: INSN_CONFIG_8254_READ_STATUS - * 1 <-- Status byte returned here. - * B7 = Output - * B6 = NULL Count - * B5 - B0 Current mode. - */ - -enum i8254_mode { - I8254_MODE0 = (0 << 1), /* Interrupt on terminal count */ - I8254_MODE1 = (1 << 1), /* Hardware retriggerable one-shot */ - I8254_MODE2 = (2 << 1), /* Rate generator */ - I8254_MODE3 = (3 << 1), /* Square wave mode */ - I8254_MODE4 = (4 << 1), /* Software triggered strobe */ - /* Hardware triggered strobe (retriggerable) */ - I8254_MODE5 = (5 << 1), - /* Use binary-coded decimal instead of binary (pretty useless) */ - I8254_BCD = 1, - I8254_BINARY = 0 -}; - -/* *** BEGIN GLOBALLY-NAMED NI TERMINALS/SIGNALS *** */ - -/* - * Common National Instruments Terminal/Signal names. - * Some of these have no NI_ prefix as they are useful for non-NI hardware, such - * as those that utilize the PXI/RTSI trigger lines. - * - * NOTE ABOUT THE CHOICE OF NAMES HERE AND THE CAMELSCRIPT: - * The choice to use CamelScript and the exact names below is for - * maintainability, clarity, similarity to manufacturer's documentation, - * _and_ a mitigation for confusion that has plagued the use of these drivers - * for years! - * - * More detail: - * There have been significant confusions over the past many years for users - * when trying to understand how to connect to/from signals and terminals on - * NI hardware using comedi. The major reason for this is that the actual - * register values were exposed and required to be used by users. Several - * major reasons exist why this caused major confusion for users: - * 1) The register values are _NOT_ in user documentation, but rather in - * arcane locations, such as a few register programming manuals that are - * increasingly hard to find and the NI MHDDK (comments in example code). - * There is no one place to find the various valid values of the registers. - * 2) The register values are _NOT_ completely consistent. There is no way to - * gain any sense of intuition of which values, or even enums one should use - * for various registers. There was some attempt in prior use of comedi to - * name enums such that a user might know which enums should be used for - * varying purposes, but the end-user had to gain a knowledge of register - * values to correctly wield this approach. - * 3) The names for signals and registers found in the various register level - * programming manuals and vendor-provided documentation are _not_ even - * close to the same names that are in the end-user documentation. - * - * Similar, albeit less, confusion plagued NI's previous version of their own - * drivers. Earlier than 2003, NI greatly simplified the situation for users - * by releasing a new API that abstracted the names of signals/terminals to a - * common and intuitive set of names. - * - * The names below mirror the names chosen and well documented by NI. These - * names are exposed to the user via the comedilib user library. By keeping - * the names below, in spite of the use of CamelScript, maintenance will be - * greatly eased and confusion for users _and_ comedi developers will be - * greatly reduced. - */ - -/* - * Base of abstracted NI names. - * The first 16 bits of *_arg are reserved for channel selection. - * Since we only actually need the first 4 or 5 bits for all register values on - * NI select registers anyways, we'll identify all values >= (1<<15) as being an - * abstracted NI signal/terminal name. - * These values are also used/returned by INSN_DEVICE_CONFIG_TEST_ROUTE, - * INSN_DEVICE_CONFIG_CONNECT_ROUTE, INSN_DEVICE_CONFIG_DISCONNECT_ROUTE, - * and INSN_DEVICE_CONFIG_GET_ROUTES. - */ -#define NI_NAMES_BASE 0x8000u - -#define _TERM_N(base, n, x) ((base) + ((x) & ((n) - 1))) - -/* - * not necessarily all allowed 64 PFIs are valid--certainly not for all devices - */ -#define NI_PFI(x) _TERM_N(NI_NAMES_BASE, 64, x) -/* 8 trigger lines by standard, Some devices cannot talk to all eight. */ -#define TRIGGER_LINE(x) _TERM_N(NI_PFI(-1) + 1, 8, x) -/* 4 RTSI shared MUXes to route signals to/from TRIGGER_LINES on NI hardware */ -#define NI_RTSI_BRD(x) _TERM_N(TRIGGER_LINE(-1) + 1, 4, x) - -/* *** Counter/timer names : 8 counters max *** */ -#define NI_MAX_COUNTERS 8 -#define NI_COUNTER_NAMES_BASE (NI_RTSI_BRD(-1) + 1) -#define NI_CtrSource(x) _TERM_N(NI_COUNTER_NAMES_BASE, NI_MAX_COUNTERS, x) -/* Gate, Aux, A,B,Z are all treated, at times as gates */ -#define NI_GATES_NAMES_BASE (NI_CtrSource(-1) + 1) -#define NI_CtrGate(x) _TERM_N(NI_GATES_NAMES_BASE, NI_MAX_COUNTERS, x) -#define NI_CtrAux(x) _TERM_N(NI_CtrGate(-1) + 1, NI_MAX_COUNTERS, x) -#define NI_CtrA(x) _TERM_N(NI_CtrAux(-1) + 1, NI_MAX_COUNTERS, x) -#define NI_CtrB(x) _TERM_N(NI_CtrA(-1) + 1, NI_MAX_COUNTERS, x) -#define NI_CtrZ(x) _TERM_N(NI_CtrB(-1) + 1, NI_MAX_COUNTERS, x) -#define NI_GATES_NAMES_MAX NI_CtrZ(-1) -#define NI_CtrArmStartTrigger(x) _TERM_N(NI_CtrZ(-1) + 1, NI_MAX_COUNTERS, x) -#define NI_CtrInternalOutput(x) \ - _TERM_N(NI_CtrArmStartTrigger(-1) + 1, NI_MAX_COUNTERS, x) -/** external pin(s) labeled conveniently as Ctr<i>Out. */ -#define NI_CtrOut(x) _TERM_N(NI_CtrInternalOutput(-1) + 1, NI_MAX_COUNTERS, x) -/** For Buffered sampling of ctr -- x series capability. */ -#define NI_CtrSampleClock(x) _TERM_N(NI_CtrOut(-1) + 1, NI_MAX_COUNTERS, x) -#define NI_COUNTER_NAMES_MAX NI_CtrSampleClock(-1) - -enum ni_common_signal_names { - /* PXI_Star: this is a non-NI-specific signal */ - PXI_Star = NI_COUNTER_NAMES_MAX + 1, - PXI_Clk10, - PXIe_Clk100, - NI_AI_SampleClock, - NI_AI_SampleClockTimebase, - NI_AI_StartTrigger, - NI_AI_ReferenceTrigger, - NI_AI_ConvertClock, - NI_AI_ConvertClockTimebase, - NI_AI_PauseTrigger, - NI_AI_HoldCompleteEvent, - NI_AI_HoldComplete, - NI_AI_ExternalMUXClock, - NI_AI_STOP, /* pulse signal that occurs when a update is finished(?) */ - NI_AO_SampleClock, - NI_AO_SampleClockTimebase, - NI_AO_StartTrigger, - NI_AO_PauseTrigger, - NI_DI_SampleClock, - NI_DI_SampleClockTimebase, - NI_DI_StartTrigger, - NI_DI_ReferenceTrigger, - NI_DI_PauseTrigger, - NI_DI_InputBufferFull, - NI_DI_ReadyForStartEvent, - NI_DI_ReadyForTransferEventBurst, - NI_DI_ReadyForTransferEventPipelined, - NI_DO_SampleClock, - NI_DO_SampleClockTimebase, - NI_DO_StartTrigger, - NI_DO_PauseTrigger, - NI_DO_OutputBufferFull, - NI_DO_DataActiveEvent, - NI_DO_ReadyForStartEvent, - NI_DO_ReadyForTransferEvent, - NI_MasterTimebase, - NI_20MHzTimebase, - NI_80MHzTimebase, - NI_100MHzTimebase, - NI_200MHzTimebase, - NI_100kHzTimebase, - NI_10MHzRefClock, - NI_FrequencyOutput, - NI_ChangeDetectionEvent, - NI_AnalogComparisonEvent, - NI_WatchdogExpiredEvent, - NI_WatchdogExpirationTrigger, - NI_SCXI_Trig1, - NI_LogicLow, - NI_LogicHigh, - NI_ExternalStrobe, - NI_PFI_DO, - NI_CaseGround, - /* special internal signal used as variable source for RTSI bus: */ - NI_RGOUT0, - - /* just a name to make the next more convenient, regardless of above */ - _NI_NAMES_MAX_PLUS_1, - NI_NUM_NAMES = _NI_NAMES_MAX_PLUS_1 - NI_NAMES_BASE, -}; - -/* *** END GLOBALLY-NAMED NI TERMINALS/SIGNALS *** */ - -#define NI_USUAL_PFI_SELECT(x) (((x) < 10) ? (0x1 + (x)) : (0xb + (x))) -#define NI_USUAL_RTSI_SELECT(x) (((x) < 7) ? (0xb + (x)) : 0x1b) - -/* - * mode bits for NI general-purpose counters, set with - * INSN_CONFIG_SET_COUNTER_MODE - */ -#define NI_GPCT_COUNTING_MODE_SHIFT 16 -#define NI_GPCT_INDEX_PHASE_BITSHIFT 20 -#define NI_GPCT_COUNTING_DIRECTION_SHIFT 24 -enum ni_gpct_mode_bits { - NI_GPCT_GATE_ON_BOTH_EDGES_BIT = 0x4, - NI_GPCT_EDGE_GATE_MODE_MASK = 0x18, - NI_GPCT_EDGE_GATE_STARTS_STOPS_BITS = 0x0, - NI_GPCT_EDGE_GATE_STOPS_STARTS_BITS = 0x8, - NI_GPCT_EDGE_GATE_STARTS_BITS = 0x10, - NI_GPCT_EDGE_GATE_NO_STARTS_NO_STOPS_BITS = 0x18, - NI_GPCT_STOP_MODE_MASK = 0x60, - NI_GPCT_STOP_ON_GATE_BITS = 0x00, - NI_GPCT_STOP_ON_GATE_OR_TC_BITS = 0x20, - NI_GPCT_STOP_ON_GATE_OR_SECOND_TC_BITS = 0x40, - NI_GPCT_LOAD_B_SELECT_BIT = 0x80, - NI_GPCT_OUTPUT_MODE_MASK = 0x300, - NI_GPCT_OUTPUT_TC_PULSE_BITS = 0x100, - NI_GPCT_OUTPUT_TC_TOGGLE_BITS = 0x200, - NI_GPCT_OUTPUT_TC_OR_GATE_TOGGLE_BITS = 0x300, - NI_GPCT_HARDWARE_DISARM_MASK = 0xc00, - NI_GPCT_NO_HARDWARE_DISARM_BITS = 0x000, - NI_GPCT_DISARM_AT_TC_BITS = 0x400, - NI_GPCT_DISARM_AT_GATE_BITS = 0x800, - NI_GPCT_DISARM_AT_TC_OR_GATE_BITS = 0xc00, - NI_GPCT_LOADING_ON_TC_BIT = 0x1000, - NI_GPCT_LOADING_ON_GATE_BIT = 0x4000, - NI_GPCT_COUNTING_MODE_MASK = 0x7 << NI_GPCT_COUNTING_MODE_SHIFT, - NI_GPCT_COUNTING_MODE_NORMAL_BITS = - 0x0 << NI_GPCT_COUNTING_MODE_SHIFT, - NI_GPCT_COUNTING_MODE_QUADRATURE_X1_BITS = - 0x1 << NI_GPCT_COUNTING_MODE_SHIFT, - NI_GPCT_COUNTING_MODE_QUADRATURE_X2_BITS = - 0x2 << NI_GPCT_COUNTING_MODE_SHIFT, - NI_GPCT_COUNTING_MODE_QUADRATURE_X4_BITS = - 0x3 << NI_GPCT_COUNTING_MODE_SHIFT, - NI_GPCT_COUNTING_MODE_TWO_PULSE_BITS = - 0x4 << NI_GPCT_COUNTING_MODE_SHIFT, - NI_GPCT_COUNTING_MODE_SYNC_SOURCE_BITS = - 0x6 << NI_GPCT_COUNTING_MODE_SHIFT, - NI_GPCT_INDEX_PHASE_MASK = 0x3 << NI_GPCT_INDEX_PHASE_BITSHIFT, - NI_GPCT_INDEX_PHASE_LOW_A_LOW_B_BITS = - 0x0 << NI_GPCT_INDEX_PHASE_BITSHIFT, - NI_GPCT_INDEX_PHASE_LOW_A_HIGH_B_BITS = - 0x1 << NI_GPCT_INDEX_PHASE_BITSHIFT, - NI_GPCT_INDEX_PHASE_HIGH_A_LOW_B_BITS = - 0x2 << NI_GPCT_INDEX_PHASE_BITSHIFT, - NI_GPCT_INDEX_PHASE_HIGH_A_HIGH_B_BITS = - 0x3 << NI_GPCT_INDEX_PHASE_BITSHIFT, - NI_GPCT_INDEX_ENABLE_BIT = 0x400000, - NI_GPCT_COUNTING_DIRECTION_MASK = - 0x3 << NI_GPCT_COUNTING_DIRECTION_SHIFT, - NI_GPCT_COUNTING_DIRECTION_DOWN_BITS = - 0x00 << NI_GPCT_COUNTING_DIRECTION_SHIFT, - NI_GPCT_COUNTING_DIRECTION_UP_BITS = - 0x1 << NI_GPCT_COUNTING_DIRECTION_SHIFT, - NI_GPCT_COUNTING_DIRECTION_HW_UP_DOWN_BITS = - 0x2 << NI_GPCT_COUNTING_DIRECTION_SHIFT, - NI_GPCT_COUNTING_DIRECTION_HW_GATE_BITS = - 0x3 << NI_GPCT_COUNTING_DIRECTION_SHIFT, - NI_GPCT_RELOAD_SOURCE_MASK = 0xc000000, - NI_GPCT_RELOAD_SOURCE_FIXED_BITS = 0x0, - NI_GPCT_RELOAD_SOURCE_SWITCHING_BITS = 0x4000000, - NI_GPCT_RELOAD_SOURCE_GATE_SELECT_BITS = 0x8000000, - NI_GPCT_OR_GATE_BIT = 0x10000000, - NI_GPCT_INVERT_OUTPUT_BIT = 0x20000000 -}; - -/* - * Bits for setting a clock source with - * INSN_CONFIG_SET_CLOCK_SRC when using NI general-purpose counters. - */ -enum ni_gpct_clock_source_bits { - NI_GPCT_CLOCK_SRC_SELECT_MASK = 0x3f, - NI_GPCT_TIMEBASE_1_CLOCK_SRC_BITS = 0x0, - NI_GPCT_TIMEBASE_2_CLOCK_SRC_BITS = 0x1, - NI_GPCT_TIMEBASE_3_CLOCK_SRC_BITS = 0x2, - NI_GPCT_LOGIC_LOW_CLOCK_SRC_BITS = 0x3, - NI_GPCT_NEXT_GATE_CLOCK_SRC_BITS = 0x4, - NI_GPCT_NEXT_TC_CLOCK_SRC_BITS = 0x5, - /* NI 660x-specific */ - NI_GPCT_SOURCE_PIN_i_CLOCK_SRC_BITS = 0x6, - NI_GPCT_PXI10_CLOCK_SRC_BITS = 0x7, - NI_GPCT_PXI_STAR_TRIGGER_CLOCK_SRC_BITS = 0x8, - NI_GPCT_ANALOG_TRIGGER_OUT_CLOCK_SRC_BITS = 0x9, - NI_GPCT_PRESCALE_MODE_CLOCK_SRC_MASK = 0x30000000, - NI_GPCT_NO_PRESCALE_CLOCK_SRC_BITS = 0x0, - /* divide source by 2 */ - NI_GPCT_PRESCALE_X2_CLOCK_SRC_BITS = 0x10000000, - /* divide source by 8 */ - NI_GPCT_PRESCALE_X8_CLOCK_SRC_BITS = 0x20000000, - NI_GPCT_INVERT_CLOCK_SRC_BIT = 0x80000000 -}; - -/* NI 660x-specific */ -#define NI_GPCT_SOURCE_PIN_CLOCK_SRC_BITS(x) (0x10 + (x)) - -#define NI_GPCT_RTSI_CLOCK_SRC_BITS(x) (0x18 + (x)) - -/* no pfi on NI 660x */ -#define NI_GPCT_PFI_CLOCK_SRC_BITS(x) (0x20 + (x)) - -/* - * Possibilities for setting a gate source with - * INSN_CONFIG_SET_GATE_SRC when using NI general-purpose counters. - * May be bitwise-or'd with CR_EDGE or CR_INVERT. - */ -enum ni_gpct_gate_select { - /* m-series gates */ - NI_GPCT_TIMESTAMP_MUX_GATE_SELECT = 0x0, - NI_GPCT_AI_START2_GATE_SELECT = 0x12, - NI_GPCT_PXI_STAR_TRIGGER_GATE_SELECT = 0x13, - NI_GPCT_NEXT_OUT_GATE_SELECT = 0x14, - NI_GPCT_AI_START1_GATE_SELECT = 0x1c, - NI_GPCT_NEXT_SOURCE_GATE_SELECT = 0x1d, - NI_GPCT_ANALOG_TRIGGER_OUT_GATE_SELECT = 0x1e, - NI_GPCT_LOGIC_LOW_GATE_SELECT = 0x1f, - /* more gates for 660x */ - NI_GPCT_SOURCE_PIN_i_GATE_SELECT = 0x100, - NI_GPCT_GATE_PIN_i_GATE_SELECT = 0x101, - /* more gates for 660x "second gate" */ - NI_GPCT_UP_DOWN_PIN_i_GATE_SELECT = 0x201, - NI_GPCT_SELECTED_GATE_GATE_SELECT = 0x21e, - /* - * m-series "second gate" sources are unknown, - * we should add them here with an offset of 0x300 when - * known. - */ - NI_GPCT_DISABLED_GATE_SELECT = 0x8000, -}; - -#define NI_GPCT_GATE_PIN_GATE_SELECT(x) (0x102 + (x)) -#define NI_GPCT_RTSI_GATE_SELECT(x) NI_USUAL_RTSI_SELECT(x) -#define NI_GPCT_PFI_GATE_SELECT(x) NI_USUAL_PFI_SELECT(x) -#define NI_GPCT_UP_DOWN_PIN_GATE_SELECT(x) (0x202 + (x)) - -/* - * Possibilities for setting a source with - * INSN_CONFIG_SET_OTHER_SRC when using NI general-purpose counters. - */ -enum ni_gpct_other_index { - NI_GPCT_SOURCE_ENCODER_A, - NI_GPCT_SOURCE_ENCODER_B, - NI_GPCT_SOURCE_ENCODER_Z -}; - -enum ni_gpct_other_select { - /* m-series gates */ - /* Still unknown, probably only need NI_GPCT_PFI_OTHER_SELECT */ - NI_GPCT_DISABLED_OTHER_SELECT = 0x8000, -}; - -#define NI_GPCT_PFI_OTHER_SELECT(x) NI_USUAL_PFI_SELECT(x) - -/* - * start sources for ni general-purpose counters for use with - * INSN_CONFIG_ARM - */ -enum ni_gpct_arm_source { - NI_GPCT_ARM_IMMEDIATE = 0x0, - /* - * Start both the counter and the adjacent paired counter simultaneously - */ - NI_GPCT_ARM_PAIRED_IMMEDIATE = 0x1, - /* - * If the NI_GPCT_HW_ARM bit is set, we will pass the least significant - * bits (3 bits for 660x or 5 bits for m-series) through to the - * hardware. To select a hardware trigger, pass the appropriate select - * bit, e.g., - * NI_GPCT_HW_ARM | NI_GPCT_AI_START1_GATE_SELECT or - * NI_GPCT_HW_ARM | NI_GPCT_PFI_GATE_SELECT(pfi_number) - */ - NI_GPCT_HW_ARM = 0x1000, - NI_GPCT_ARM_UNKNOWN = NI_GPCT_HW_ARM, /* for backward compatibility */ -}; - -/* digital filtering options for ni 660x for use with INSN_CONFIG_FILTER. */ -enum ni_gpct_filter_select { - NI_GPCT_FILTER_OFF = 0x0, - NI_GPCT_FILTER_TIMEBASE_3_SYNC = 0x1, - NI_GPCT_FILTER_100x_TIMEBASE_1 = 0x2, - NI_GPCT_FILTER_20x_TIMEBASE_1 = 0x3, - NI_GPCT_FILTER_10x_TIMEBASE_1 = 0x4, - NI_GPCT_FILTER_2x_TIMEBASE_1 = 0x5, - NI_GPCT_FILTER_2x_TIMEBASE_3 = 0x6 -}; - -/* - * PFI digital filtering options for ni m-series for use with - * INSN_CONFIG_FILTER. - */ -enum ni_pfi_filter_select { - NI_PFI_FILTER_OFF = 0x0, - NI_PFI_FILTER_125ns = 0x1, - NI_PFI_FILTER_6425ns = 0x2, - NI_PFI_FILTER_2550us = 0x3 -}; - -/* master clock sources for ni mio boards and INSN_CONFIG_SET_CLOCK_SRC */ -enum ni_mio_clock_source { - NI_MIO_INTERNAL_CLOCK = 0, - /* - * Doesn't work for m-series, use NI_MIO_PLL_RTSI_CLOCK() - * the NI_MIO_PLL_* sources are m-series only - */ - NI_MIO_RTSI_CLOCK = 1, - NI_MIO_PLL_PXI_STAR_TRIGGER_CLOCK = 2, - NI_MIO_PLL_PXI10_CLOCK = 3, - NI_MIO_PLL_RTSI0_CLOCK = 4 -}; - -#define NI_MIO_PLL_RTSI_CLOCK(x) (NI_MIO_PLL_RTSI0_CLOCK + (x)) - -/* - * Signals which can be routed to an NI RTSI pin with INSN_CONFIG_SET_ROUTING. - * The numbers assigned are not arbitrary, they correspond to the bits required - * to program the board. - */ -enum ni_rtsi_routing { - NI_RTSI_OUTPUT_ADR_START1 = 0, - NI_RTSI_OUTPUT_ADR_START2 = 1, - NI_RTSI_OUTPUT_SCLKG = 2, - NI_RTSI_OUTPUT_DACUPDN = 3, - NI_RTSI_OUTPUT_DA_START1 = 4, - NI_RTSI_OUTPUT_G_SRC0 = 5, - NI_RTSI_OUTPUT_G_GATE0 = 6, - NI_RTSI_OUTPUT_RGOUT0 = 7, - NI_RTSI_OUTPUT_RTSI_BRD_0 = 8, - /* Pre-m-series always have RTSI clock on line 7 */ - NI_RTSI_OUTPUT_RTSI_OSC = 12 -}; - -#define NI_RTSI_OUTPUT_RTSI_BRD(x) (NI_RTSI_OUTPUT_RTSI_BRD_0 + (x)) - -/* - * Signals which can be routed to an NI PFI pin on an m-series board with - * INSN_CONFIG_SET_ROUTING. These numbers are also returned by - * INSN_CONFIG_GET_ROUTING on pre-m-series boards, even though their routing - * cannot be changed. The numbers assigned are not arbitrary, they correspond - * to the bits required to program the board. - */ -enum ni_pfi_routing { - NI_PFI_OUTPUT_PFI_DEFAULT = 0, - NI_PFI_OUTPUT_AI_START1 = 1, - NI_PFI_OUTPUT_AI_START2 = 2, - NI_PFI_OUTPUT_AI_CONVERT = 3, - NI_PFI_OUTPUT_G_SRC1 = 4, - NI_PFI_OUTPUT_G_GATE1 = 5, - NI_PFI_OUTPUT_AO_UPDATE_N = 6, - NI_PFI_OUTPUT_AO_START1 = 7, - NI_PFI_OUTPUT_AI_START_PULSE = 8, - NI_PFI_OUTPUT_G_SRC0 = 9, - NI_PFI_OUTPUT_G_GATE0 = 10, - NI_PFI_OUTPUT_EXT_STROBE = 11, - NI_PFI_OUTPUT_AI_EXT_MUX_CLK = 12, - NI_PFI_OUTPUT_GOUT0 = 13, - NI_PFI_OUTPUT_GOUT1 = 14, - NI_PFI_OUTPUT_FREQ_OUT = 15, - NI_PFI_OUTPUT_PFI_DO = 16, - NI_PFI_OUTPUT_I_ATRIG = 17, - NI_PFI_OUTPUT_RTSI0 = 18, - NI_PFI_OUTPUT_PXI_STAR_TRIGGER_IN = 26, - NI_PFI_OUTPUT_SCXI_TRIG1 = 27, - NI_PFI_OUTPUT_DIO_CHANGE_DETECT_RTSI = 28, - NI_PFI_OUTPUT_CDI_SAMPLE = 29, - NI_PFI_OUTPUT_CDO_UPDATE = 30 -}; - -#define NI_PFI_OUTPUT_RTSI(x) (NI_PFI_OUTPUT_RTSI0 + (x)) - -/* - * Signals which can be routed to output on a NI PFI pin on a 660x board - * with INSN_CONFIG_SET_ROUTING. The numbers assigned are - * not arbitrary, they correspond to the bits required - * to program the board. Lines 0 to 7 can only be set to - * NI_660X_PFI_OUTPUT_DIO. Lines 32 to 39 can only be set to - * NI_660X_PFI_OUTPUT_COUNTER. - */ -enum ni_660x_pfi_routing { - NI_660X_PFI_OUTPUT_COUNTER = 1, /* counter */ - NI_660X_PFI_OUTPUT_DIO = 2, /* static digital output */ -}; - -/* - * NI External Trigger lines. These values are not arbitrary, but are related - * to the bits required to program the board (offset by 1 for historical - * reasons). - */ -#define NI_EXT_PFI(x) (NI_USUAL_PFI_SELECT(x) - 1) -#define NI_EXT_RTSI(x) (NI_USUAL_RTSI_SELECT(x) - 1) - -/* - * Clock sources for CDIO subdevice on NI m-series boards. Used as the - * scan_begin_arg for a comedi_command. These sources may also be bitwise-or'd - * with CR_INVERT to change polarity. - */ -enum ni_m_series_cdio_scan_begin_src { - NI_CDIO_SCAN_BEGIN_SRC_GROUND = 0, - NI_CDIO_SCAN_BEGIN_SRC_AI_START = 18, - NI_CDIO_SCAN_BEGIN_SRC_AI_CONVERT = 19, - NI_CDIO_SCAN_BEGIN_SRC_PXI_STAR_TRIGGER = 20, - NI_CDIO_SCAN_BEGIN_SRC_G0_OUT = 28, - NI_CDIO_SCAN_BEGIN_SRC_G1_OUT = 29, - NI_CDIO_SCAN_BEGIN_SRC_ANALOG_TRIGGER = 30, - NI_CDIO_SCAN_BEGIN_SRC_AO_UPDATE = 31, - NI_CDIO_SCAN_BEGIN_SRC_FREQ_OUT = 32, - NI_CDIO_SCAN_BEGIN_SRC_DIO_CHANGE_DETECT_IRQ = 33 -}; - -#define NI_CDIO_SCAN_BEGIN_SRC_PFI(x) NI_USUAL_PFI_SELECT(x) -#define NI_CDIO_SCAN_BEGIN_SRC_RTSI(x) NI_USUAL_RTSI_SELECT(x) - -/* - * scan_begin_src for scan_begin_arg==TRIG_EXT with analog output command on NI - * boards. These scan begin sources can also be bitwise-or'd with CR_INVERT to - * change polarity. - */ -#define NI_AO_SCAN_BEGIN_SRC_PFI(x) NI_USUAL_PFI_SELECT(x) -#define NI_AO_SCAN_BEGIN_SRC_RTSI(x) NI_USUAL_RTSI_SELECT(x) - -/* - * Bits for setting a clock source with - * INSN_CONFIG_SET_CLOCK_SRC when using NI frequency output subdevice. - */ -enum ni_freq_out_clock_source_bits { - NI_FREQ_OUT_TIMEBASE_1_DIV_2_CLOCK_SRC, /* 10 MHz */ - NI_FREQ_OUT_TIMEBASE_2_CLOCK_SRC /* 100 KHz */ -}; - -/* - * Values for setting a clock source with INSN_CONFIG_SET_CLOCK_SRC for - * 8254 counter subdevices on Amplicon DIO boards (amplc_dio200 driver). - */ -enum amplc_dio_clock_source { - /* - * Per channel external clock - * input/output pin (pin is only an - * input when clock source set to this value, - * otherwise it is an output) - */ - AMPLC_DIO_CLK_CLKN, - AMPLC_DIO_CLK_10MHZ, /* 10 MHz internal clock */ - AMPLC_DIO_CLK_1MHZ, /* 1 MHz internal clock */ - AMPLC_DIO_CLK_100KHZ, /* 100 kHz internal clock */ - AMPLC_DIO_CLK_10KHZ, /* 10 kHz internal clock */ - AMPLC_DIO_CLK_1KHZ, /* 1 kHz internal clock */ - /* - * Output of preceding counter channel - * (for channel 0, preceding counter - * channel is channel 2 on preceding - * counter subdevice, for first counter - * subdevice, preceding counter - * subdevice is the last counter - * subdevice) - */ - AMPLC_DIO_CLK_OUTNM1, - AMPLC_DIO_CLK_EXT, /* per chip external input pin */ - /* the following are "enhanced" clock sources for PCIe models */ - AMPLC_DIO_CLK_VCC, /* clock input HIGH */ - AMPLC_DIO_CLK_GND, /* clock input LOW */ - AMPLC_DIO_CLK_PAT_PRESENT, /* "pattern present" signal */ - AMPLC_DIO_CLK_20MHZ /* 20 MHz internal clock */ -}; - -/* - * Values for setting a clock source with INSN_CONFIG_SET_CLOCK_SRC for - * timer subdevice on some Amplicon DIO PCIe boards (amplc_dio200 driver). - */ -enum amplc_dio_ts_clock_src { - AMPLC_DIO_TS_CLK_1GHZ, /* 1 ns period with 20 ns granularity */ - AMPLC_DIO_TS_CLK_1MHZ, /* 1 us period */ - AMPLC_DIO_TS_CLK_1KHZ /* 1 ms period */ -}; - -/* - * Values for setting a gate source with INSN_CONFIG_SET_GATE_SRC for - * 8254 counter subdevices on Amplicon DIO boards (amplc_dio200 driver). - */ -enum amplc_dio_gate_source { - AMPLC_DIO_GAT_VCC, /* internal high logic level */ - AMPLC_DIO_GAT_GND, /* internal low logic level */ - AMPLC_DIO_GAT_GATN, /* per channel external gate input */ - /* - * negated output of counter channel minus 2 - * (for channels 0 or 1, channel minus 2 is channel 1 or 2 on - * the preceding counter subdevice, for the first counter subdevice - * the preceding counter subdevice is the last counter subdevice) - */ - AMPLC_DIO_GAT_NOUTNM2, - AMPLC_DIO_GAT_RESERVED4, - AMPLC_DIO_GAT_RESERVED5, - AMPLC_DIO_GAT_RESERVED6, - AMPLC_DIO_GAT_RESERVED7, - /* the following are "enhanced" gate sources for PCIe models */ - AMPLC_DIO_GAT_NGATN = 6, /* negated per channel gate input */ - /* non-negated output of counter channel minus 2 */ - AMPLC_DIO_GAT_OUTNM2, - AMPLC_DIO_GAT_PAT_PRESENT, /* "pattern present" signal */ - AMPLC_DIO_GAT_PAT_OCCURRED, /* "pattern occurred" latched */ - AMPLC_DIO_GAT_PAT_GONE, /* "pattern gone away" latched */ - AMPLC_DIO_GAT_NPAT_PRESENT, /* negated "pattern present" */ - AMPLC_DIO_GAT_NPAT_OCCURRED, /* negated "pattern occurred" */ - AMPLC_DIO_GAT_NPAT_GONE /* negated "pattern gone away" */ -}; - -/* - * Values for setting a clock source with INSN_CONFIG_SET_CLOCK_SRC for - * the counter subdevice on the Kolter Electronic PCI-Counter board - * (ke_counter driver). - */ -enum ke_counter_clock_source { - KE_CLK_20MHZ, /* internal 20MHz (default) */ - KE_CLK_4MHZ, /* internal 4MHz (option) */ - KE_CLK_EXT /* external clock on pin 21 of D-Sub */ -}; - -#endif /* _COMEDI_H */ diff --git a/original/uapi/linux/counter.h b/original/uapi/linux/counter.h deleted file mode 100644 index d0aa95a..0000000 --- a/original/uapi/linux/counter.h +++ /dev/null @@ -1,154 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ -/* - * Userspace ABI for Counter character devices - * Copyright (C) 2020 William Breathitt Gray - */ -#ifndef _UAPI_COUNTER_H_ -#define _UAPI_COUNTER_H_ - -#include <linux/ioctl.h> -#include <linux/types.h> - -/* Component type definitions */ -enum counter_component_type { - COUNTER_COMPONENT_NONE, - COUNTER_COMPONENT_SIGNAL, - COUNTER_COMPONENT_COUNT, - COUNTER_COMPONENT_FUNCTION, - COUNTER_COMPONENT_SYNAPSE_ACTION, - COUNTER_COMPONENT_EXTENSION, -}; - -/* Component scope definitions */ -enum counter_scope { - COUNTER_SCOPE_DEVICE, - COUNTER_SCOPE_SIGNAL, - COUNTER_SCOPE_COUNT, -}; - -/** - * struct counter_component - Counter component identification - * @type: component type (one of enum counter_component_type) - * @scope: component scope (one of enum counter_scope) - * @parent: parent ID (matching the ID suffix of the respective parent sysfs - * path as described by the ABI documentation file - * Documentation/ABI/testing/sysfs-bus-counter) - * @id: component ID (matching the ID provided by the respective *_component_id - * sysfs attribute of the desired component) - * - * For example, if the Count 2 ceiling extension of Counter device 4 is desired, - * set type equal to COUNTER_COMPONENT_EXTENSION, scope equal to - * COUNTER_COUNT_SCOPE, parent equal to 2, and id equal to the value provided by - * the respective /sys/bus/counter/devices/counter4/count2/ceiling_component_id - * sysfs attribute. - */ -struct counter_component { - __u8 type; - __u8 scope; - __u8 parent; - __u8 id; -}; - -/* Event type definitions */ -enum counter_event_type { - /* Count value increased past ceiling */ - COUNTER_EVENT_OVERFLOW, - /* Count value decreased past floor */ - COUNTER_EVENT_UNDERFLOW, - /* Count value increased past ceiling, or decreased past floor */ - COUNTER_EVENT_OVERFLOW_UNDERFLOW, - /* Count value reached threshold */ - COUNTER_EVENT_THRESHOLD, - /* Index signal detected */ - COUNTER_EVENT_INDEX, -}; - -/** - * struct counter_watch - Counter component watch configuration - * @component: component to watch when event triggers - * @event: event that triggers (one of enum counter_event_type) - * @channel: event channel (typically 0 unless the device supports concurrent - * events of the same type) - */ -struct counter_watch { - struct counter_component component; - __u8 event; - __u8 channel; -}; - -/* - * Queues a Counter watch for the specified event. - * - * The queued watches will not be applied until COUNTER_ENABLE_EVENTS_IOCTL is - * called. - */ -#define COUNTER_ADD_WATCH_IOCTL _IOW(0x3E, 0x00, struct counter_watch) -/* - * Enables monitoring the events specified by the Counter watches that were - * queued by COUNTER_ADD_WATCH_IOCTL. - * - * If events are already enabled, the new set of watches replaces the old one. - * Calling this ioctl also has the effect of clearing the queue of watches added - * by COUNTER_ADD_WATCH_IOCTL. - */ -#define COUNTER_ENABLE_EVENTS_IOCTL _IO(0x3E, 0x01) -/* - * Stops monitoring the previously enabled events. - */ -#define COUNTER_DISABLE_EVENTS_IOCTL _IO(0x3E, 0x02) - -/** - * struct counter_event - Counter event data - * @timestamp: best estimate of time of event occurrence, in nanoseconds - * @value: component value - * @watch: component watch configuration - * @status: return status (system error number) - */ -struct counter_event { - __aligned_u64 timestamp; - __aligned_u64 value; - struct counter_watch watch; - __u8 status; -}; - -/* Count direction values */ -enum counter_count_direction { - COUNTER_COUNT_DIRECTION_FORWARD, - COUNTER_COUNT_DIRECTION_BACKWARD, -}; - -/* Count mode values */ -enum counter_count_mode { - COUNTER_COUNT_MODE_NORMAL, - COUNTER_COUNT_MODE_RANGE_LIMIT, - COUNTER_COUNT_MODE_NON_RECYCLE, - COUNTER_COUNT_MODE_MODULO_N, -}; - -/* Count function values */ -enum counter_function { - COUNTER_FUNCTION_INCREASE, - COUNTER_FUNCTION_DECREASE, - COUNTER_FUNCTION_PULSE_DIRECTION, - COUNTER_FUNCTION_QUADRATURE_X1_A, - COUNTER_FUNCTION_QUADRATURE_X1_B, - COUNTER_FUNCTION_QUADRATURE_X2_A, - COUNTER_FUNCTION_QUADRATURE_X2_B, - COUNTER_FUNCTION_QUADRATURE_X4, -}; - -/* Signal values */ -enum counter_signal_level { - COUNTER_SIGNAL_LEVEL_LOW, - COUNTER_SIGNAL_LEVEL_HIGH, -}; - -/* Action mode values */ -enum counter_synapse_action { - COUNTER_SYNAPSE_ACTION_NONE, - COUNTER_SYNAPSE_ACTION_RISING_EDGE, - COUNTER_SYNAPSE_ACTION_FALLING_EDGE, - COUNTER_SYNAPSE_ACTION_BOTH_EDGES, -}; - -#endif /* _UAPI_COUNTER_H_ */ diff --git a/original/uapi/linux/cxl_mem.h b/original/uapi/linux/cxl_mem.h index 8d206f2..3155382 100644 --- a/original/uapi/linux/cxl_mem.h +++ b/original/uapi/linux/cxl_mem.h @@ -29,18 +29,6 @@ ___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 @@ -50,7 +38,7 @@ enum { CXL_CMDS }; #define ___C(a, b) { b } static const struct { const char *name; -} cxl_command_names[] __attribute__((__unused__)) = { CXL_CMDS }; +} cxl_command_names[] = { CXL_CMDS }; /* * Here's how this actually breaks out: diff --git a/original/uapi/linux/cyclades.h b/original/uapi/linux/cyclades.h index 6225c5a..fc0add2 100644 --- a/original/uapi/linux/cyclades.h +++ b/original/uapi/linux/cyclades.h @@ -1,27 +1,109 @@ /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ +/* $Revision: 3.0 $$Date: 1998/11/02 14:20:59 $ + * linux/include/linux/cyclades.h + * + * This file was initially written by + * Randolph Bentson <bentson@grieg.seaslug.org> and is maintained by + * Ivan Passos <ivan@cyclades.com>. + * + * This file contains the general definitions for the cyclades.c driver + *$Log: cyclades.h,v $ + *Revision 3.1 2002/01/29 11:36:16 henrique + *added throttle field on struct cyclades_port to indicate whether the + *port is throttled or not + * + *Revision 3.1 2000/04/19 18:52:52 ivan + *converted address fields to unsigned long and added fields for physical + *addresses on cyclades_card structure; + * + *Revision 3.0 1998/11/02 14:20:59 ivan + *added nports field on cyclades_card structure; + * + *Revision 2.5 1998/08/03 16:57:01 ivan + *added cyclades_idle_stats structure; + * + *Revision 2.4 1998/06/01 12:09:53 ivan + *removed closing_wait2 from cyclades_port structure; + * + *Revision 2.3 1998/03/16 18:01:12 ivan + *changes in the cyclades_port structure to get it closer to the + *standard serial port structure; + *added constants for new ioctls; + * + *Revision 2.2 1998/02/17 16:50:00 ivan + *changes in the cyclades_port structure (addition of shutdown_wait and + *chip_rev variables); + *added constants for new ioctls and for CD1400 rev. numbers. + * + *Revision 2.1 1997/10/24 16:03:00 ivan + *added rflow (which allows enabling the CD1400 special flow control + *feature) and rtsdtr_inv (which allows DTR/RTS pin inversion) to + *cyclades_port structure; + *added Alpha support + * + *Revision 2.0 1997/06/30 10:30:00 ivan + *added some new doorbell command constants related to IOCTLW and + *UART error signaling + * + *Revision 1.8 1997/06/03 15:30:00 ivan + *added constant ZFIRM_HLT + *added constant CyPCI_Ze_win ( = 2 * Cy_PCI_Zwin) + * + *Revision 1.7 1997/03/26 10:30:00 daniel + *new entries at the end of cyclades_port struct to reallocate + *variables illegally allocated within card memory. + * + *Revision 1.6 1996/09/09 18:35:30 bentson + *fold in changes for Cyclom-Z -- including structures for + *communicating with board as well modest changes to original + *structures to support new features. + * + *Revision 1.5 1995/11/13 21:13:31 bentson + *changes suggested by Michael Chastain <mec@duracef.shout.net> + *to support use of this file in non-kernel applications + * + * + */ #ifndef _UAPI_LINUX_CYCLADES_H #define _UAPI_LINUX_CYCLADES_H -#warning "Support for features provided by this header has been removed" -#warning "Please consider updating your code" +#include <linux/types.h> struct cyclades_monitor { - unsigned long int_count; - unsigned long char_count; - unsigned long char_max; - unsigned long char_last; -}; - -#define CYGETMON 0x435901 -#define CYGETTHRESH 0x435902 -#define CYSETTHRESH 0x435903 -#define CYGETDEFTHRESH 0x435904 -#define CYSETDEFTHRESH 0x435905 -#define CYGETTIMEOUT 0x435906 -#define CYSETTIMEOUT 0x435907 -#define CYGETDEFTIMEOUT 0x435908 -#define CYSETDEFTIMEOUT 0x435909 + unsigned long int_count; + unsigned long char_count; + unsigned long char_max; + unsigned long char_last; +}; + +/* + * These stats all reflect activity since the device was last initialized. + * (i.e., since the port was opened with no other processes already having it + * open) + */ +struct cyclades_idle_stats { + __kernel_old_time_t in_use; /* Time device has been in use (secs) */ + __kernel_old_time_t recv_idle; /* Time since last char received (secs) */ + __kernel_old_time_t xmit_idle; /* Time since last char transmitted (secs) */ + unsigned long recv_bytes; /* Bytes received */ + unsigned long xmit_bytes; /* Bytes transmitted */ + unsigned long overruns; /* Input overruns */ + unsigned long frame_errs; /* Input framing errors */ + unsigned long parity_errs; /* Input parity errors */ +}; + +#define CYCLADES_MAGIC 0x4359 + +#define CYGETMON 0x435901 +#define CYGETTHRESH 0x435902 +#define CYSETTHRESH 0x435903 +#define CYGETDEFTHRESH 0x435904 +#define CYSETDEFTHRESH 0x435905 +#define CYGETTIMEOUT 0x435906 +#define CYSETTIMEOUT 0x435907 +#define CYGETDEFTIMEOUT 0x435908 +#define CYSETDEFTIMEOUT 0x435909 #define CYSETRFLOW 0x43590a #define CYGETRFLOW 0x43590b #define CYSETRTSDTR_INV 0x43590c @@ -29,7 +111,384 @@ struct cyclades_monitor { #define CYZSETPOLLCYCLE 0x43590e #define CYZGETPOLLCYCLE 0x43590f #define CYGETCD1400VER 0x435910 -#define CYSETWAIT 0x435912 -#define CYGETWAIT 0x435913 +#define CYSETWAIT 0x435912 +#define CYGETWAIT 0x435913 + +/*************** CYCLOM-Z ADDITIONS ***************/ + +#define CZIOC ('M' << 8) +#define CZ_NBOARDS (CZIOC|0xfa) +#define CZ_BOOT_START (CZIOC|0xfb) +#define CZ_BOOT_DATA (CZIOC|0xfc) +#define CZ_BOOT_END (CZIOC|0xfd) +#define CZ_TEST (CZIOC|0xfe) + +#define CZ_DEF_POLL (HZ/25) + +#define MAX_BOARD 4 /* Max number of boards */ +#define MAX_DEV 256 /* Max number of ports total */ +#define CYZ_MAX_SPEED 921600 + +#define CYZ_FIFO_SIZE 16 + +#define CYZ_BOOT_NWORDS 0x100 +struct CYZ_BOOT_CTRL { + unsigned short nboard; + int status[MAX_BOARD]; + int nchannel[MAX_BOARD]; + int fw_rev[MAX_BOARD]; + unsigned long offset; + unsigned long data[CYZ_BOOT_NWORDS]; +}; + + +#ifndef DP_WINDOW_SIZE +/* + * Memory Window Sizes + */ + +#define DP_WINDOW_SIZE (0x00080000) /* window size 512 Kb */ +#define ZE_DP_WINDOW_SIZE (0x00100000) /* window size 1 Mb (Ze and + 8Zo V.2 */ +#define CTRL_WINDOW_SIZE (0x00000080) /* runtime regs 128 bytes */ + +/* + * CUSTOM_REG - Cyclom-Z/PCI Custom Registers Set. The driver + * normally will access only interested on the fpga_id, fpga_version, + * start_cpu and stop_cpu. + */ + +struct CUSTOM_REG { + __u32 fpga_id; /* FPGA Identification Register */ + __u32 fpga_version; /* FPGA Version Number Register */ + __u32 cpu_start; /* CPU start Register (write) */ + __u32 cpu_stop; /* CPU stop Register (write) */ + __u32 misc_reg; /* Miscellaneous Register */ + __u32 idt_mode; /* IDT mode Register */ + __u32 uart_irq_status; /* UART IRQ status Register */ + __u32 clear_timer0_irq; /* Clear timer interrupt Register */ + __u32 clear_timer1_irq; /* Clear timer interrupt Register */ + __u32 clear_timer2_irq; /* Clear timer interrupt Register */ + __u32 test_register; /* Test Register */ + __u32 test_count; /* Test Count Register */ + __u32 timer_select; /* Timer select register */ + __u32 pr_uart_irq_status; /* Prioritized UART IRQ stat Reg */ + __u32 ram_wait_state; /* RAM wait-state Register */ + __u32 uart_wait_state; /* UART wait-state Register */ + __u32 timer_wait_state; /* timer wait-state Register */ + __u32 ack_wait_state; /* ACK wait State Register */ +}; + +/* + * RUNTIME_9060 - PLX PCI9060ES local configuration and shared runtime + * registers. This structure can be used to access the 9060 registers + * (memory mapped). + */ + +struct RUNTIME_9060 { + __u32 loc_addr_range; /* 00h - Local Address Range */ + __u32 loc_addr_base; /* 04h - Local Address Base */ + __u32 loc_arbitr; /* 08h - Local Arbitration */ + __u32 endian_descr; /* 0Ch - Big/Little Endian Descriptor */ + __u32 loc_rom_range; /* 10h - Local ROM Range */ + __u32 loc_rom_base; /* 14h - Local ROM Base */ + __u32 loc_bus_descr; /* 18h - Local Bus descriptor */ + __u32 loc_range_mst; /* 1Ch - Local Range for Master to PCI */ + __u32 loc_base_mst; /* 20h - Local Base for Master PCI */ + __u32 loc_range_io; /* 24h - Local Range for Master IO */ + __u32 pci_base_mst; /* 28h - PCI Base for Master PCI */ + __u32 pci_conf_io; /* 2Ch - PCI configuration for Master IO */ + __u32 filler1; /* 30h */ + __u32 filler2; /* 34h */ + __u32 filler3; /* 38h */ + __u32 filler4; /* 3Ch */ + __u32 mail_box_0; /* 40h - Mail Box 0 */ + __u32 mail_box_1; /* 44h - Mail Box 1 */ + __u32 mail_box_2; /* 48h - Mail Box 2 */ + __u32 mail_box_3; /* 4Ch - Mail Box 3 */ + __u32 filler5; /* 50h */ + __u32 filler6; /* 54h */ + __u32 filler7; /* 58h */ + __u32 filler8; /* 5Ch */ + __u32 pci_doorbell; /* 60h - PCI to Local Doorbell */ + __u32 loc_doorbell; /* 64h - Local to PCI Doorbell */ + __u32 intr_ctrl_stat; /* 68h - Interrupt Control/Status */ + __u32 init_ctrl; /* 6Ch - EEPROM control, Init Control, etc */ +}; + +/* Values for the Local Base Address re-map register */ + +#define WIN_RAM 0x00000001L /* set the sliding window to RAM */ +#define WIN_CREG 0x14000001L /* set the window to custom Registers */ + +/* Values timer select registers */ + +#define TIMER_BY_1M 0x00 /* clock divided by 1M */ +#define TIMER_BY_256K 0x01 /* clock divided by 256k */ +#define TIMER_BY_128K 0x02 /* clock divided by 128k */ +#define TIMER_BY_32K 0x03 /* clock divided by 32k */ + +/****************** ****************** *******************/ +#endif + +#ifndef ZFIRM_ID +/* #include "zfwint.h" */ +/****************** ****************** *******************/ +/* + * This file contains the definitions for interfacing with the + * Cyclom-Z ZFIRM Firmware. + */ + +/* General Constant definitions */ + +#define MAX_CHAN 64 /* max number of channels per board */ + +/* firmware id structure (set after boot) */ + +#define ID_ADDRESS 0x00000180L /* signature/pointer address */ +#define ZFIRM_ID 0x5557465AL /* ZFIRM/U signature */ +#define ZFIRM_HLT 0x59505B5CL /* ZFIRM needs external power supply */ +#define ZFIRM_RST 0x56040674L /* RST signal (due to FW reset) */ + +#define ZF_TINACT_DEF 1000 /* default inactivity timeout + (1000 ms) */ +#define ZF_TINACT ZF_TINACT_DEF + +struct FIRM_ID { + __u32 signature; /* ZFIRM/U signature */ + __u32 zfwctrl_addr; /* pointer to ZFW_CTRL structure */ +}; + +/* Op. System id */ + +#define C_OS_LINUX 0x00000030 /* generic Linux system */ + +/* channel op_mode */ + +#define C_CH_DISABLE 0x00000000 /* channel is disabled */ +#define C_CH_TXENABLE 0x00000001 /* channel Tx enabled */ +#define C_CH_RXENABLE 0x00000002 /* channel Rx enabled */ +#define C_CH_ENABLE 0x00000003 /* channel Tx/Rx enabled */ +#define C_CH_LOOPBACK 0x00000004 /* Loopback mode */ + +/* comm_parity - parity */ + +#define C_PR_NONE 0x00000000 /* None */ +#define C_PR_ODD 0x00000001 /* Odd */ +#define C_PR_EVEN 0x00000002 /* Even */ +#define C_PR_MARK 0x00000004 /* Mark */ +#define C_PR_SPACE 0x00000008 /* Space */ +#define C_PR_PARITY 0x000000ff + +#define C_PR_DISCARD 0x00000100 /* discard char with frame/par error */ +#define C_PR_IGNORE 0x00000200 /* ignore frame/par error */ + +/* comm_data_l - data length and stop bits */ + +#define C_DL_CS5 0x00000001 +#define C_DL_CS6 0x00000002 +#define C_DL_CS7 0x00000004 +#define C_DL_CS8 0x00000008 +#define C_DL_CS 0x0000000f +#define C_DL_1STOP 0x00000010 +#define C_DL_15STOP 0x00000020 +#define C_DL_2STOP 0x00000040 +#define C_DL_STOP 0x000000f0 + +/* interrupt enabling/status */ + +#define C_IN_DISABLE 0x00000000 /* zero, disable interrupts */ +#define C_IN_TXBEMPTY 0x00000001 /* tx buffer empty */ +#define C_IN_TXLOWWM 0x00000002 /* tx buffer below LWM */ +#define C_IN_RXHIWM 0x00000010 /* rx buffer above HWM */ +#define C_IN_RXNNDT 0x00000020 /* rx no new data timeout */ +#define C_IN_MDCD 0x00000100 /* modem DCD change */ +#define C_IN_MDSR 0x00000200 /* modem DSR change */ +#define C_IN_MRI 0x00000400 /* modem RI change */ +#define C_IN_MCTS 0x00000800 /* modem CTS change */ +#define C_IN_RXBRK 0x00001000 /* Break received */ +#define C_IN_PR_ERROR 0x00002000 /* parity error */ +#define C_IN_FR_ERROR 0x00004000 /* frame error */ +#define C_IN_OVR_ERROR 0x00008000 /* overrun error */ +#define C_IN_RXOFL 0x00010000 /* RX buffer overflow */ +#define C_IN_IOCTLW 0x00020000 /* I/O control w/ wait */ +#define C_IN_MRTS 0x00040000 /* modem RTS drop */ +#define C_IN_ICHAR 0x00080000 + +/* flow control */ + +#define C_FL_OXX 0x00000001 /* output Xon/Xoff flow control */ +#define C_FL_IXX 0x00000002 /* output Xon/Xoff flow control */ +#define C_FL_OIXANY 0x00000004 /* output Xon/Xoff (any xon) */ +#define C_FL_SWFLOW 0x0000000f + +/* flow status */ + +#define C_FS_TXIDLE 0x00000000 /* no Tx data in the buffer or UART */ +#define C_FS_SENDING 0x00000001 /* UART is sending data */ +#define C_FS_SWFLOW 0x00000002 /* Tx is stopped by received Xoff */ + +/* rs_control/rs_status RS-232 signals */ + +#define C_RS_PARAM 0x80000000 /* Indicates presence of parameter in + IOCTLM command */ +#define C_RS_RTS 0x00000001 /* RTS */ +#define C_RS_DTR 0x00000004 /* DTR */ +#define C_RS_DCD 0x00000100 /* CD */ +#define C_RS_DSR 0x00000200 /* DSR */ +#define C_RS_RI 0x00000400 /* RI */ +#define C_RS_CTS 0x00000800 /* CTS */ + +/* commands Host <-> Board */ + +#define C_CM_RESET 0x01 /* reset/flush buffers */ +#define C_CM_IOCTL 0x02 /* re-read CH_CTRL */ +#define C_CM_IOCTLW 0x03 /* re-read CH_CTRL, intr when done */ +#define C_CM_IOCTLM 0x04 /* RS-232 outputs change */ +#define C_CM_SENDXOFF 0x10 /* send Xoff */ +#define C_CM_SENDXON 0x11 /* send Xon */ +#define C_CM_CLFLOW 0x12 /* Clear flow control (resume) */ +#define C_CM_SENDBRK 0x41 /* send break */ +#define C_CM_INTBACK 0x42 /* Interrupt back */ +#define C_CM_SET_BREAK 0x43 /* Tx break on */ +#define C_CM_CLR_BREAK 0x44 /* Tx break off */ +#define C_CM_CMD_DONE 0x45 /* Previous command done */ +#define C_CM_INTBACK2 0x46 /* Alternate Interrupt back */ +#define C_CM_TINACT 0x51 /* set inactivity detection */ +#define C_CM_IRQ_ENBL 0x52 /* enable generation of interrupts */ +#define C_CM_IRQ_DSBL 0x53 /* disable generation of interrupts */ +#define C_CM_ACK_ENBL 0x54 /* enable acknowledged interrupt mode */ +#define C_CM_ACK_DSBL 0x55 /* disable acknowledged intr mode */ +#define C_CM_FLUSH_RX 0x56 /* flushes Rx buffer */ +#define C_CM_FLUSH_TX 0x57 /* flushes Tx buffer */ +#define C_CM_Q_ENABLE 0x58 /* enables queue access from the + driver */ +#define C_CM_Q_DISABLE 0x59 /* disables queue access from the + driver */ + +#define C_CM_TXBEMPTY 0x60 /* Tx buffer is empty */ +#define C_CM_TXLOWWM 0x61 /* Tx buffer low water mark */ +#define C_CM_RXHIWM 0x62 /* Rx buffer high water mark */ +#define C_CM_RXNNDT 0x63 /* rx no new data timeout */ +#define C_CM_TXFEMPTY 0x64 +#define C_CM_ICHAR 0x65 +#define C_CM_MDCD 0x70 /* modem DCD change */ +#define C_CM_MDSR 0x71 /* modem DSR change */ +#define C_CM_MRI 0x72 /* modem RI change */ +#define C_CM_MCTS 0x73 /* modem CTS change */ +#define C_CM_MRTS 0x74 /* modem RTS drop */ +#define C_CM_RXBRK 0x84 /* Break received */ +#define C_CM_PR_ERROR 0x85 /* Parity error */ +#define C_CM_FR_ERROR 0x86 /* Frame error */ +#define C_CM_OVR_ERROR 0x87 /* Overrun error */ +#define C_CM_RXOFL 0x88 /* RX buffer overflow */ +#define C_CM_CMDERROR 0x90 /* command error */ +#define C_CM_FATAL 0x91 /* fatal error */ +#define C_CM_HW_RESET 0x92 /* reset board */ + +/* + * CH_CTRL - This per port structure contains all parameters + * that control an specific port. It can be seen as the + * configuration registers of a "super-serial-controller". + */ + +struct CH_CTRL { + __u32 op_mode; /* operation mode */ + __u32 intr_enable; /* interrupt masking */ + __u32 sw_flow; /* SW flow control */ + __u32 flow_status; /* output flow status */ + __u32 comm_baud; /* baud rate - numerically specified */ + __u32 comm_parity; /* parity */ + __u32 comm_data_l; /* data length/stop */ + __u32 comm_flags; /* other flags */ + __u32 hw_flow; /* HW flow control */ + __u32 rs_control; /* RS-232 outputs */ + __u32 rs_status; /* RS-232 inputs */ + __u32 flow_xon; /* xon char */ + __u32 flow_xoff; /* xoff char */ + __u32 hw_overflow; /* hw overflow counter */ + __u32 sw_overflow; /* sw overflow counter */ + __u32 comm_error; /* frame/parity error counter */ + __u32 ichar; + __u32 filler[7]; +}; + + +/* + * BUF_CTRL - This per channel structure contains + * all Tx and Rx buffer control for a given channel. + */ + +struct BUF_CTRL { + __u32 flag_dma; /* buffers are in Host memory */ + __u32 tx_bufaddr; /* address of the tx buffer */ + __u32 tx_bufsize; /* tx buffer size */ + __u32 tx_threshold; /* tx low water mark */ + __u32 tx_get; /* tail index tx buf */ + __u32 tx_put; /* head index tx buf */ + __u32 rx_bufaddr; /* address of the rx buffer */ + __u32 rx_bufsize; /* rx buffer size */ + __u32 rx_threshold; /* rx high water mark */ + __u32 rx_get; /* tail index rx buf */ + __u32 rx_put; /* head index rx buf */ + __u32 filler[5]; /* filler to align structures */ +}; + +/* + * BOARD_CTRL - This per board structure contains all global + * control fields related to the board. + */ + +struct BOARD_CTRL { + + /* static info provided by the on-board CPU */ + __u32 n_channel; /* number of channels */ + __u32 fw_version; /* firmware version */ + + /* static info provided by the driver */ + __u32 op_system; /* op_system id */ + __u32 dr_version; /* driver version */ + + /* board control area */ + __u32 inactivity; /* inactivity control */ + + /* host to FW commands */ + __u32 hcmd_channel; /* channel number */ + __u32 hcmd_param; /* pointer to parameters */ + + /* FW to Host commands */ + __u32 fwcmd_channel; /* channel number */ + __u32 fwcmd_param; /* pointer to parameters */ + __u32 zf_int_queue_addr; /* offset for INT_QUEUE structure */ + + /* filler so the structures are aligned */ + __u32 filler[6]; +}; + +/* Host Interrupt Queue */ + +#define QUEUE_SIZE (10*MAX_CHAN) + +struct INT_QUEUE { + unsigned char intr_code[QUEUE_SIZE]; + unsigned long channel[QUEUE_SIZE]; + unsigned long param[QUEUE_SIZE]; + unsigned long put; + unsigned long get; +}; + +/* + * ZFW_CTRL - This is the data structure that includes all other + * data structures used by the Firmware. + */ + +struct ZFW_CTRL { + struct BOARD_CTRL board_ctrl; + struct CH_CTRL ch_ctrl[MAX_CHAN]; + struct BUF_CTRL buf_ctrl[MAX_CHAN]; +}; + +/****************** ****************** *******************/ +#endif #endif /* _UAPI_LINUX_CYCLADES_H */ diff --git a/original/uapi/linux/devlink.h b/original/uapi/linux/devlink.h index b897b80..f6008b2 100644 --- a/original/uapi/linux/devlink.h +++ b/original/uapi/linux/devlink.h @@ -126,11 +126,6 @@ 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 @@ -211,11 +206,6 @@ 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, @@ -544,15 +534,6 @@ 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 */ - - DEVLINK_ATTR_REGION_MAX_SNAPSHOTS, /* u32 */ - /* add new attributes above here, update the policy in devlink.c */ __DEVLINK_ATTR_MAX, diff --git a/original/uapi/linux/dlm_device.h b/original/uapi/linux/dlm_device.h index e83954c..f880d28 100644 --- a/original/uapi/linux/dlm_device.h +++ b/original/uapi/linux/dlm_device.h @@ -45,13 +45,13 @@ struct dlm_lock_params { void __user *bastaddr; struct dlm_lksb __user *lksb; char lvb[DLM_USER_LVB_LEN]; - char name[]; + char name[0]; }; struct dlm_lspace_params { __u32 flags; __u32 minor; - char name[]; + char name[0]; }; struct dlm_purge_params { diff --git a/original/uapi/linux/dm-ioctl.h b/original/uapi/linux/dm-ioctl.h index c12ce30..fcff666 100644 --- a/original/uapi/linux/dm-ioctl.h +++ b/original/uapi/linux/dm-ioctl.h @@ -193,22 +193,8 @@ struct dm_name_list { __u32 next; /* offset to the next record from the _start_ of this */ char name[0]; - - /* - * The following members can be accessed by taking a pointer that - * points immediately after the terminating zero character in "name" - * and aligning this pointer to next 8-byte boundary. - * Uuid is present if the flag DM_NAME_LIST_FLAG_HAS_UUID is set. - * - * __u32 event_nr; - * __u32 flags; - * char uuid[0]; - */ }; -#define DM_NAME_LIST_FLAG_HAS_UUID 1 -#define DM_NAME_LIST_FLAG_DOESNT_HAVE_UUID 2 - /* * Used to retrieve the target versions */ @@ -286,9 +272,9 @@ enum { #define DM_DEV_SET_GEOMETRY _IOWR(DM_IOCTL, DM_DEV_SET_GEOMETRY_CMD, struct dm_ioctl) #define DM_VERSION_MAJOR 4 -#define DM_VERSION_MINOR 45 +#define DM_VERSION_MINOR 44 #define DM_VERSION_PATCHLEVEL 0 -#define DM_VERSION_EXTRA "-ioctl (2021-03-22)" +#define DM_VERSION_EXTRA "-ioctl (2021-02-01)" /* Status bits */ #define DM_READONLY_FLAG (1 << 0) /* In/Out */ @@ -376,10 +362,4 @@ enum { */ #define DM_INTERNAL_SUSPEND_FLAG (1 << 18) /* Out */ -/* - * If set, returns in the in buffer passed by UM, the raw table information - * that would be measured by IMA subsystem on device state change. - */ -#define DM_IMA_MEASUREMENT_FLAG (1 << 19) /* In */ - #endif /* _LINUX_DM_IOCTL_H */ diff --git a/original/uapi/linux/dma-buf.h b/original/uapi/linux/dma-buf.h index 8e4a2ca..7f30393 100644 --- a/original/uapi/linux/dma-buf.h +++ b/original/uapi/linux/dma-buf.h @@ -22,56 +22,8 @@ #include <linux/types.h> -/** - * struct dma_buf_sync - Synchronize with CPU access. - * - * When a DMA buffer is accessed from the CPU via mmap, it is not always - * possible to guarantee coherency between the CPU-visible map and underlying - * memory. To manage coherency, DMA_BUF_IOCTL_SYNC must be used to bracket - * any CPU access to give the kernel the chance to shuffle memory around if - * needed. - * - * Prior to accessing the map, the client must call DMA_BUF_IOCTL_SYNC - * with DMA_BUF_SYNC_START and the appropriate read/write flags. Once the - * access is complete, the client should call DMA_BUF_IOCTL_SYNC with - * DMA_BUF_SYNC_END and the same read/write flags. - * - * The synchronization provided via DMA_BUF_IOCTL_SYNC only provides cache - * coherency. It does not prevent other processes or devices from - * accessing the memory at the same time. If synchronization with a GPU or - * other device driver is required, it is the client's responsibility to - * wait for buffer to be ready for reading or writing before calling this - * ioctl with DMA_BUF_SYNC_START. Likewise, the client must ensure that - * follow-up work is not submitted to GPU or other device driver until - * after this ioctl has been called with DMA_BUF_SYNC_END? - * - * If the driver or API with which the client is interacting uses implicit - * synchronization, waiting for prior work to complete can be done via - * poll() on the DMA buffer file descriptor. If the driver or API requires - * explicit synchronization, the client may have to wait on a sync_file or - * other synchronization primitive outside the scope of the DMA buffer API. - */ +/* begin/end dma-buf functions used for userspace mmap. */ struct dma_buf_sync { - /** - * @flags: Set of access flags - * - * DMA_BUF_SYNC_START: - * Indicates the start of a map access session. - * - * DMA_BUF_SYNC_END: - * Indicates the end of a map access session. - * - * DMA_BUF_SYNC_READ: - * Indicates that the mapped DMA buffer will be read by the - * client via the CPU map. - * - * DMA_BUF_SYNC_WRITE: - * Indicates that the mapped DMA buffer will be written by the - * client via the CPU map. - * - * DMA_BUF_SYNC_RW: - * An alias for DMA_BUF_SYNC_READ | DMA_BUF_SYNC_WRITE. - */ __u64 flags; }; diff --git a/original/uapi/linux/dqblk_xfs.h b/original/uapi/linux/dqblk_xfs.h index 8cda3e6..c71d909 100644 --- a/original/uapi/linux/dqblk_xfs.h +++ b/original/uapi/linux/dqblk_xfs.h @@ -219,10 +219,7 @@ struct fs_quota_statv { __s32 qs_rtbtimelimit;/* limit for rt blks timer */ __u16 qs_bwarnlimit; /* limit for num warnings */ __u16 qs_iwarnlimit; /* limit for num warnings */ - __u16 qs_rtbwarnlimit;/* limit for rt blks warnings */ - __u16 qs_pad3; - __u32 qs_pad4; - __u64 qs_pad2[7]; /* for future proofing */ + __u64 qs_pad2[8]; /* for future proofing */ }; #endif /* _LINUX_DQBLK_XFS_H */ diff --git a/original/uapi/linux/elf.h b/original/uapi/linux/elf.h index 61bf477..30f68b4 100644 --- a/original/uapi/linux/elf.h +++ b/original/uapi/linux/elf.h @@ -426,7 +426,6 @@ typedef struct elf64_shdr { #define NT_ARM_PACA_KEYS 0x407 /* ARM pointer authentication address keys */ #define NT_ARM_PACG_KEYS 0x408 /* ARM pointer authentication generic key */ #define NT_ARM_TAGGED_ADDR_CTRL 0x409 /* arm64 tagged address control (prctl()) */ -#define NT_ARM_PAC_ENABLED_KEYS 0x40a /* arm64 ptr auth enabled keys (prctl()) */ #define NT_ARC_V2 0x600 /* ARCv2 accumulator/extra registers */ #define NT_VMCOREDD 0x700 /* Vmcore Device Dump Note */ #define NT_MIPS_DSP 0x800 /* MIPS DSP ASE registers */ diff --git a/original/uapi/linux/ethtool.h b/original/uapi/linux/ethtool.h index 7bc4b8d..5afea69 100644 --- a/original/uapi/linux/ethtool.h +++ b/original/uapi/linux/ethtool.h @@ -231,10 +231,9 @@ enum tunable_id { ETHTOOL_RX_COPYBREAK, ETHTOOL_TX_COPYBREAK, ETHTOOL_PFC_PREVENTION_TOUT, /* timeout in msecs */ - ETHTOOL_TX_COPYBREAK_BUF_SIZE, /* * Add your fresh new tunable attribute above and remember to update - * tunable_strings[] in net/ethtool/common.c + * tunable_strings[] in net/core/ethtool.c */ __ETHTOOL_TUNABLE_COUNT, }; @@ -298,7 +297,7 @@ enum phy_tunable_id { ETHTOOL_PHY_EDPD, /* * Add your fresh new phy tunable attribute above and remember to update - * phy_tunable_strings[] in net/ethtool/common.c + * phy_tunable_strings[] in net/core/ethtool.c */ __ETHTOOL_PHY_TUNABLE_COUNT, }; @@ -604,7 +603,6 @@ enum ethtool_link_ext_state { ETHTOOL_LINK_EXT_STATE_CALIBRATION_FAILURE, ETHTOOL_LINK_EXT_STATE_POWER_BUDGET_EXCEEDED, ETHTOOL_LINK_EXT_STATE_OVERHEAT, - ETHTOOL_LINK_EXT_STATE_MODULE, }; /* More information in addition to ETHTOOL_LINK_EXT_STATE_AUTONEG. */ @@ -641,8 +639,6 @@ enum ethtool_link_ext_substate_link_logical_mismatch { enum ethtool_link_ext_substate_bad_signal_integrity { ETHTOOL_LINK_EXT_SUBSTATE_BSI_LARGE_NUMBER_OF_PHYSICAL_ERRORS = 1, ETHTOOL_LINK_EXT_SUBSTATE_BSI_UNSUPPORTED_RATE, - ETHTOOL_LINK_EXT_SUBSTATE_BSI_SERDES_REFERENCE_CLOCK_LOST, - ETHTOOL_LINK_EXT_SUBSTATE_BSI_SERDES_ALOS, }; /* More information in addition to ETHTOOL_LINK_EXT_STATE_CABLE_ISSUE. */ @@ -651,11 +647,6 @@ enum ethtool_link_ext_substate_cable_issue { ETHTOOL_LINK_EXT_SUBSTATE_CI_CABLE_TEST_FAILURE, }; -/* More information in addition to ETHTOOL_LINK_EXT_STATE_MODULE. */ -enum ethtool_link_ext_substate_module { - ETHTOOL_LINK_EXT_SUBSTATE_MODULE_CMIS_NOT_READY = 1, -}; - #define ETH_GSTRING_LEN 32 /** @@ -678,11 +669,6 @@ enum ethtool_link_ext_substate_module { * @ETH_SS_TS_TX_TYPES: timestamping Tx types * @ETH_SS_TS_RX_FILTERS: timestamping Rx filters * @ETH_SS_UDP_TUNNEL_TYPES: UDP tunnel types - * @ETH_SS_STATS_STD: standardized stats - * @ETH_SS_STATS_ETH_PHY: names of IEEE 802.3 PHY statistics - * @ETH_SS_STATS_ETH_MAC: names of IEEE 802.3 MAC statistics - * @ETH_SS_STATS_ETH_CTRL: names of IEEE 802.3 MAC Control statistics - * @ETH_SS_STATS_RMON: names of RMON statistics * * @ETH_SS_COUNT: number of defined string sets */ @@ -703,40 +689,12 @@ enum ethtool_stringset { ETH_SS_TS_TX_TYPES, ETH_SS_TS_RX_FILTERS, ETH_SS_UDP_TUNNEL_TYPES, - ETH_SS_STATS_STD, - ETH_SS_STATS_ETH_PHY, - ETH_SS_STATS_ETH_MAC, - ETH_SS_STATS_ETH_CTRL, - ETH_SS_STATS_RMON, /* add new constants above here */ ETH_SS_COUNT }; /** - * enum ethtool_module_power_mode_policy - plug-in module power mode policy - * @ETHTOOL_MODULE_POWER_MODE_POLICY_HIGH: Module is always in high power mode. - * @ETHTOOL_MODULE_POWER_MODE_POLICY_AUTO: Module is transitioned by the host - * to high power mode when the first port using it is put administratively - * up and to low power mode when the last port using it is put - * administratively down. - */ -enum ethtool_module_power_mode_policy { - ETHTOOL_MODULE_POWER_MODE_POLICY_HIGH = 1, - ETHTOOL_MODULE_POWER_MODE_POLICY_AUTO, -}; - -/** - * enum ethtool_module_power_mode - plug-in module power mode - * @ETHTOOL_MODULE_POWER_MODE_LOW: Module is in low power mode. - * @ETHTOOL_MODULE_POWER_MODE_HIGH: Module is in high power mode. - */ -enum ethtool_module_power_mode { - ETHTOOL_MODULE_POWER_MODE_LOW = 1, - ETHTOOL_MODULE_POWER_MODE_HIGH, -}; - -/** * struct ethtool_gstrings - string set for data tagging * @cmd: Command number = %ETHTOOL_GSTRINGS * @string_set: String set ID; one of &enum ethtool_stringset @@ -1425,33 +1383,15 @@ struct ethtool_per_queue_op { }; /** - * struct ethtool_fecparam - Ethernet Forward Error Correction parameters + * struct ethtool_fecparam - Ethernet forward error correction(fec) parameters * @cmd: Command number = %ETHTOOL_GFECPARAM or %ETHTOOL_SFECPARAM - * @active_fec: FEC mode which is active on the port, single bit set, GET only. - * @fec: Bitmask of configured FEC modes. - * @reserved: Reserved for future extensions, ignore on GET, write 0 for SET. - * - * Note that @reserved was never validated on input and ethtool user space - * left it uninitialized when calling SET. Hence going forward it can only be - * used to return a value to userspace with GET. - * - * FEC modes supported by the device can be read via %ETHTOOL_GLINKSETTINGS. - * FEC settings are configured by link autonegotiation whenever it's enabled. - * With autoneg on %ETHTOOL_GFECPARAM can be used to read the current mode. + * @active_fec: FEC mode which is active on porte + * @fec: Bitmask of supported/configured FEC modes + * @rsvd: Reserved for future extensions. i.e FEC bypass feature. * - * When autoneg is disabled %ETHTOOL_SFECPARAM controls the FEC settings. - * It is recommended that drivers only accept a single bit set in @fec. - * When multiple bits are set in @fec drivers may pick mode in an implementation - * dependent way. Drivers should reject mixing %ETHTOOL_FEC_AUTO_BIT with other - * FEC modes, because it's unclear whether in this case other modes constrain - * AUTO or are independent choices. - * Drivers must reject SET requests if they support none of the requested modes. - * - * If device does not support FEC drivers may use %ETHTOOL_FEC_NONE instead - * of returning %EOPNOTSUPP from %ETHTOOL_GFECPARAM. + * Drivers should reject a non-zero setting of @autoneg when + * autoneogotiation is disabled (or not supported) for the link. * - * See enum ethtool_fec_config_bits for definition of valid bits for both - * @fec and @active_fec. */ struct ethtool_fecparam { __u32 cmd; @@ -1463,16 +1403,11 @@ struct ethtool_fecparam { /** * enum ethtool_fec_config_bits - flags definition of ethtool_fec_configuration - * @ETHTOOL_FEC_NONE_BIT: FEC mode configuration is not supported. Should not - * be used together with other bits. GET only. - * @ETHTOOL_FEC_AUTO_BIT: Select default/best FEC mode automatically, usually - * based link mode and SFP parameters read from module's - * EEPROM. This bit does _not_ mean autonegotiation. - * @ETHTOOL_FEC_OFF_BIT: No FEC Mode - * @ETHTOOL_FEC_RS_BIT: Reed-Solomon FEC Mode - * @ETHTOOL_FEC_BASER_BIT: Base-R/Reed-Solomon FEC Mode - * @ETHTOOL_FEC_LLRS_BIT: Low Latency Reed Solomon FEC Mode (25G/50G Ethernet - * Consortium) + * @ETHTOOL_FEC_NONE: FEC mode configuration is not supported + * @ETHTOOL_FEC_AUTO: Default/Best FEC mode provided by driver + * @ETHTOOL_FEC_OFF: No FEC Mode + * @ETHTOOL_FEC_RS: Reed-Solomon Forward Error Detection mode + * @ETHTOOL_FEC_BASER: Base-R/Reed-Solomon Forward Error Detection mode */ enum ethtool_fec_config_bits { ETHTOOL_FEC_NONE_BIT, diff --git a/original/uapi/linux/ethtool_netlink.h b/original/uapi/linux/ethtool_netlink.h index cca6e47..a286635 100644 --- a/original/uapi/linux/ethtool_netlink.h +++ b/original/uapi/linux/ethtool_netlink.h @@ -42,13 +42,6 @@ enum { ETHTOOL_MSG_CABLE_TEST_ACT, ETHTOOL_MSG_CABLE_TEST_TDR_ACT, ETHTOOL_MSG_TUNNEL_INFO_GET, - ETHTOOL_MSG_FEC_GET, - ETHTOOL_MSG_FEC_SET, - ETHTOOL_MSG_MODULE_EEPROM_GET, - ETHTOOL_MSG_STATS_GET, - ETHTOOL_MSG_PHC_VCLOCKS_GET, - ETHTOOL_MSG_MODULE_GET, - ETHTOOL_MSG_MODULE_SET, /* add new constants above here */ __ETHTOOL_MSG_USER_CNT, @@ -87,13 +80,6 @@ enum { ETHTOOL_MSG_CABLE_TEST_NTF, ETHTOOL_MSG_CABLE_TEST_TDR_NTF, ETHTOOL_MSG_TUNNEL_INFO_GET_REPLY, - ETHTOOL_MSG_FEC_GET_REPLY, - ETHTOOL_MSG_FEC_NTF, - ETHTOOL_MSG_MODULE_EEPROM_GET_REPLY, - ETHTOOL_MSG_STATS_GET_REPLY, - ETHTOOL_MSG_PHC_VCLOCKS_GET_REPLY, - ETHTOOL_MSG_MODULE_GET_REPLY, - ETHTOOL_MSG_MODULE_NTF, /* add new constants above here */ __ETHTOOL_MSG_KERNEL_CNT, @@ -329,7 +315,6 @@ enum { ETHTOOL_A_RINGS_RX_MINI, /* u32 */ ETHTOOL_A_RINGS_RX_JUMBO, /* u32 */ ETHTOOL_A_RINGS_TX, /* u32 */ - ETHTOOL_A_RINGS_RX_BUF_LEN, /* u32 */ /* add new constants above here */ __ETHTOOL_A_RINGS_CNT, @@ -382,8 +367,6 @@ enum { ETHTOOL_A_COALESCE_TX_USECS_HIGH, /* u32 */ ETHTOOL_A_COALESCE_TX_MAX_FRAMES_HIGH, /* u32 */ ETHTOOL_A_COALESCE_RATE_SAMPLE_INTERVAL, /* u32 */ - ETHTOOL_A_COALESCE_USE_CQE_MODE_TX, /* u8 */ - ETHTOOL_A_COALESCE_USE_CQE_MODE_RX, /* u8 */ /* add new constants above here */ __ETHTOOL_A_COALESCE_CNT, @@ -412,9 +395,7 @@ enum { ETHTOOL_A_PAUSE_STAT_TX_FRAMES, ETHTOOL_A_PAUSE_STAT_RX_FRAMES, - /* add new constants above here - * adjust ETHTOOL_PAUSE_STAT_CNT if adding non-stats! - */ + /* add new constants above here */ __ETHTOOL_A_PAUSE_STAT_CNT, ETHTOOL_A_PAUSE_STAT_MAX = (__ETHTOOL_A_PAUSE_STAT_CNT - 1) }; @@ -451,19 +432,6 @@ 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 { @@ -661,198 +629,6 @@ enum { ETHTOOL_A_TUNNEL_INFO_MAX = (__ETHTOOL_A_TUNNEL_INFO_CNT - 1) }; -/* FEC */ - -enum { - ETHTOOL_A_FEC_UNSPEC, - ETHTOOL_A_FEC_HEADER, /* nest - _A_HEADER_* */ - ETHTOOL_A_FEC_MODES, /* bitset */ - ETHTOOL_A_FEC_AUTO, /* u8 */ - ETHTOOL_A_FEC_ACTIVE, /* u32 */ - ETHTOOL_A_FEC_STATS, /* nest - _A_FEC_STAT */ - - __ETHTOOL_A_FEC_CNT, - ETHTOOL_A_FEC_MAX = (__ETHTOOL_A_FEC_CNT - 1) -}; - -enum { - ETHTOOL_A_FEC_STAT_UNSPEC, - ETHTOOL_A_FEC_STAT_PAD, - - ETHTOOL_A_FEC_STAT_CORRECTED, /* array, u64 */ - ETHTOOL_A_FEC_STAT_UNCORR, /* array, u64 */ - ETHTOOL_A_FEC_STAT_CORR_BITS, /* array, u64 */ - - /* add new constants above here */ - __ETHTOOL_A_FEC_STAT_CNT, - ETHTOOL_A_FEC_STAT_MAX = (__ETHTOOL_A_FEC_STAT_CNT - 1) -}; - -/* MODULE EEPROM */ - -enum { - ETHTOOL_A_MODULE_EEPROM_UNSPEC, - ETHTOOL_A_MODULE_EEPROM_HEADER, /* nest - _A_HEADER_* */ - - ETHTOOL_A_MODULE_EEPROM_OFFSET, /* u32 */ - ETHTOOL_A_MODULE_EEPROM_LENGTH, /* u32 */ - ETHTOOL_A_MODULE_EEPROM_PAGE, /* u8 */ - ETHTOOL_A_MODULE_EEPROM_BANK, /* u8 */ - ETHTOOL_A_MODULE_EEPROM_I2C_ADDRESS, /* u8 */ - ETHTOOL_A_MODULE_EEPROM_DATA, /* binary */ - - __ETHTOOL_A_MODULE_EEPROM_CNT, - ETHTOOL_A_MODULE_EEPROM_MAX = (__ETHTOOL_A_MODULE_EEPROM_CNT - 1) -}; - -/* STATS */ - -enum { - ETHTOOL_A_STATS_UNSPEC, - ETHTOOL_A_STATS_PAD, - ETHTOOL_A_STATS_HEADER, /* nest - _A_HEADER_* */ - ETHTOOL_A_STATS_GROUPS, /* bitset */ - - ETHTOOL_A_STATS_GRP, /* nest - _A_STATS_GRP_* */ - - /* add new constants above here */ - __ETHTOOL_A_STATS_CNT, - ETHTOOL_A_STATS_MAX = (__ETHTOOL_A_STATS_CNT - 1) -}; - -enum { - ETHTOOL_STATS_ETH_PHY, - ETHTOOL_STATS_ETH_MAC, - ETHTOOL_STATS_ETH_CTRL, - ETHTOOL_STATS_RMON, - - /* add new constants above here */ - __ETHTOOL_STATS_CNT -}; - -enum { - ETHTOOL_A_STATS_GRP_UNSPEC, - ETHTOOL_A_STATS_GRP_PAD, - - ETHTOOL_A_STATS_GRP_ID, /* u32 */ - ETHTOOL_A_STATS_GRP_SS_ID, /* u32 */ - - ETHTOOL_A_STATS_GRP_STAT, /* nest */ - - ETHTOOL_A_STATS_GRP_HIST_RX, /* nest */ - ETHTOOL_A_STATS_GRP_HIST_TX, /* nest */ - - ETHTOOL_A_STATS_GRP_HIST_BKT_LOW, /* u32 */ - ETHTOOL_A_STATS_GRP_HIST_BKT_HI, /* u32 */ - ETHTOOL_A_STATS_GRP_HIST_VAL, /* u64 */ - - /* add new constants above here */ - __ETHTOOL_A_STATS_GRP_CNT, - ETHTOOL_A_STATS_GRP_MAX = (__ETHTOOL_A_STATS_CNT - 1) -}; - -enum { - /* 30.3.2.1.5 aSymbolErrorDuringCarrier */ - ETHTOOL_A_STATS_ETH_PHY_5_SYM_ERR, - - /* add new constants above here */ - __ETHTOOL_A_STATS_ETH_PHY_CNT, - ETHTOOL_A_STATS_ETH_PHY_MAX = (__ETHTOOL_A_STATS_ETH_PHY_CNT - 1) -}; - -enum { - /* 30.3.1.1.2 aFramesTransmittedOK */ - ETHTOOL_A_STATS_ETH_MAC_2_TX_PKT, - /* 30.3.1.1.3 aSingleCollisionFrames */ - ETHTOOL_A_STATS_ETH_MAC_3_SINGLE_COL, - /* 30.3.1.1.4 aMultipleCollisionFrames */ - ETHTOOL_A_STATS_ETH_MAC_4_MULTI_COL, - /* 30.3.1.1.5 aFramesReceivedOK */ - ETHTOOL_A_STATS_ETH_MAC_5_RX_PKT, - /* 30.3.1.1.6 aFrameCheckSequenceErrors */ - ETHTOOL_A_STATS_ETH_MAC_6_FCS_ERR, - /* 30.3.1.1.7 aAlignmentErrors */ - ETHTOOL_A_STATS_ETH_MAC_7_ALIGN_ERR, - /* 30.3.1.1.8 aOctetsTransmittedOK */ - ETHTOOL_A_STATS_ETH_MAC_8_TX_BYTES, - /* 30.3.1.1.9 aFramesWithDeferredXmissions */ - ETHTOOL_A_STATS_ETH_MAC_9_TX_DEFER, - /* 30.3.1.1.10 aLateCollisions */ - ETHTOOL_A_STATS_ETH_MAC_10_LATE_COL, - /* 30.3.1.1.11 aFramesAbortedDueToXSColls */ - ETHTOOL_A_STATS_ETH_MAC_11_XS_COL, - /* 30.3.1.1.12 aFramesLostDueToIntMACXmitError */ - ETHTOOL_A_STATS_ETH_MAC_12_TX_INT_ERR, - /* 30.3.1.1.13 aCarrierSenseErrors */ - ETHTOOL_A_STATS_ETH_MAC_13_CS_ERR, - /* 30.3.1.1.14 aOctetsReceivedOK */ - ETHTOOL_A_STATS_ETH_MAC_14_RX_BYTES, - /* 30.3.1.1.15 aFramesLostDueToIntMACRcvError */ - ETHTOOL_A_STATS_ETH_MAC_15_RX_INT_ERR, - - /* 30.3.1.1.18 aMulticastFramesXmittedOK */ - ETHTOOL_A_STATS_ETH_MAC_18_TX_MCAST, - /* 30.3.1.1.19 aBroadcastFramesXmittedOK */ - ETHTOOL_A_STATS_ETH_MAC_19_TX_BCAST, - /* 30.3.1.1.20 aFramesWithExcessiveDeferral */ - ETHTOOL_A_STATS_ETH_MAC_20_XS_DEFER, - /* 30.3.1.1.21 aMulticastFramesReceivedOK */ - ETHTOOL_A_STATS_ETH_MAC_21_RX_MCAST, - /* 30.3.1.1.22 aBroadcastFramesReceivedOK */ - ETHTOOL_A_STATS_ETH_MAC_22_RX_BCAST, - /* 30.3.1.1.23 aInRangeLengthErrors */ - ETHTOOL_A_STATS_ETH_MAC_23_IR_LEN_ERR, - /* 30.3.1.1.24 aOutOfRangeLengthField */ - ETHTOOL_A_STATS_ETH_MAC_24_OOR_LEN, - /* 30.3.1.1.25 aFrameTooLongErrors */ - ETHTOOL_A_STATS_ETH_MAC_25_TOO_LONG_ERR, - - /* add new constants above here */ - __ETHTOOL_A_STATS_ETH_MAC_CNT, - ETHTOOL_A_STATS_ETH_MAC_MAX = (__ETHTOOL_A_STATS_ETH_MAC_CNT - 1) -}; - -enum { - /* 30.3.3.3 aMACControlFramesTransmitted */ - ETHTOOL_A_STATS_ETH_CTRL_3_TX, - /* 30.3.3.4 aMACControlFramesReceived */ - ETHTOOL_A_STATS_ETH_CTRL_4_RX, - /* 30.3.3.5 aUnsupportedOpcodesReceived */ - ETHTOOL_A_STATS_ETH_CTRL_5_RX_UNSUP, - - /* add new constants above here */ - __ETHTOOL_A_STATS_ETH_CTRL_CNT, - ETHTOOL_A_STATS_ETH_CTRL_MAX = (__ETHTOOL_A_STATS_ETH_CTRL_CNT - 1) -}; - -enum { - /* etherStatsUndersizePkts */ - ETHTOOL_A_STATS_RMON_UNDERSIZE, - /* etherStatsOversizePkts */ - ETHTOOL_A_STATS_RMON_OVERSIZE, - /* etherStatsFragments */ - ETHTOOL_A_STATS_RMON_FRAG, - /* etherStatsJabbers */ - ETHTOOL_A_STATS_RMON_JABBER, - - /* add new constants above here */ - __ETHTOOL_A_STATS_RMON_CNT, - ETHTOOL_A_STATS_RMON_MAX = (__ETHTOOL_A_STATS_RMON_CNT - 1) -}; - -/* MODULE */ - -enum { - ETHTOOL_A_MODULE_UNSPEC, - ETHTOOL_A_MODULE_HEADER, /* nest - _A_HEADER_* */ - ETHTOOL_A_MODULE_POWER_MODE_POLICY, /* u8 */ - ETHTOOL_A_MODULE_POWER_MODE, /* u8 */ - - /* add new constants above here */ - __ETHTOOL_A_MODULE_CNT, - ETHTOOL_A_MODULE_MAX = (__ETHTOOL_A_MODULE_CNT - 1) -}; - /* generic netlink info */ #define ETHTOOL_GENL_NAME "ethtool" #define ETHTOOL_GENL_VERSION 1 diff --git a/original/uapi/linux/fanotify.h b/original/uapi/linux/fanotify.h index e8ac38c..fbf9c5c 100644 --- a/original/uapi/linux/fanotify.h +++ b/original/uapi/linux/fanotify.h @@ -20,7 +20,6 @@ #define FAN_OPEN_EXEC 0x00001000 /* File was opened for exec */ #define FAN_Q_OVERFLOW 0x00004000 /* Event queued overflowed */ -#define FAN_FS_ERROR 0x00008000 /* Filesystem error */ #define FAN_OPEN_PERM 0x00010000 /* File open in perm check */ #define FAN_ACCESS_PERM 0x00020000 /* File accessed in perm check */ @@ -28,8 +27,6 @@ #define FAN_EVENT_ON_CHILD 0x08000000 /* Interested in child events */ -#define FAN_RENAME 0x10000000 /* File was renamed */ - #define FAN_ONDIR 0x40000000 /* Event occurred against dir */ /* helper events */ @@ -54,18 +51,13 @@ #define FAN_ENABLE_AUDIT 0x00000040 /* Flags to determine fanotify event format */ -#define FAN_REPORT_PIDFD 0x00000080 /* Report pidfd for event->pid */ #define FAN_REPORT_TID 0x00000100 /* event->pid is thread id */ #define FAN_REPORT_FID 0x00000200 /* Report unique file id */ #define FAN_REPORT_DIR_FID 0x00000400 /* Report unique directory id */ #define FAN_REPORT_NAME 0x00000800 /* Report events with name */ -#define FAN_REPORT_TARGET_FID 0x00001000 /* Report dirent target id */ /* Convenience macro - FAN_REPORT_NAME requires FAN_REPORT_DIR_FID */ #define FAN_REPORT_DFID_NAME (FAN_REPORT_DIR_FID | FAN_REPORT_NAME) -/* Convenience macro - FAN_REPORT_TARGET_FID requires all other FID flags */ -#define FAN_REPORT_DFID_NAME_TARGET (FAN_REPORT_DFID_NAME | \ - FAN_REPORT_FID | FAN_REPORT_TARGET_FID) /* Deprecated - do not use this in programs and do not add new flags here! */ #define FAN_ALL_INIT_FLAGS (FAN_CLOEXEC | FAN_NONBLOCK | \ @@ -131,14 +123,6 @@ struct fanotify_event_metadata { #define FAN_EVENT_INFO_TYPE_FID 1 #define FAN_EVENT_INFO_TYPE_DFID_NAME 2 #define FAN_EVENT_INFO_TYPE_DFID 3 -#define FAN_EVENT_INFO_TYPE_PIDFD 4 -#define FAN_EVENT_INFO_TYPE_ERROR 5 - -/* Special info types for FAN_RENAME */ -#define FAN_EVENT_INFO_TYPE_OLD_DFID_NAME 10 -/* Reserved for FAN_EVENT_INFO_TYPE_OLD_DFID 11 */ -#define FAN_EVENT_INFO_TYPE_NEW_DFID_NAME 12 -/* Reserved for FAN_EVENT_INFO_TYPE_NEW_DFID 13 */ /* Variable length info record following event metadata */ struct fanotify_event_info_header { @@ -164,21 +148,6 @@ struct fanotify_event_info_fid { unsigned char handle[0]; }; -/* - * This structure is used for info records of type FAN_EVENT_INFO_TYPE_PIDFD. - * It holds a pidfd for the pid that was responsible for generating an event. - */ -struct fanotify_event_info_pidfd { - struct fanotify_event_info_header hdr; - __s32 pidfd; -}; - -struct fanotify_event_info_error { - struct fanotify_event_info_header hdr; - __s32 error; - __u32 error_count; -}; - struct fanotify_response { __s32 fd; __u32 response; @@ -191,8 +160,6 @@ struct fanotify_response { /* No fd set in event */ #define FAN_NOFD -1 -#define FAN_NOPIDFD FAN_NOFD -#define FAN_EPIDFD -2 /* Helper functions to deal with fanotify_event_metadata buffers */ #define FAN_EVENT_METADATA_LEN (sizeof(struct fanotify_event_metadata)) diff --git a/original/uapi/linux/fd.h b/original/uapi/linux/fd.h index 7022e34..8b80c63 100644 --- a/original/uapi/linux/fd.h +++ b/original/uapi/linux/fd.h @@ -49,11 +49,11 @@ struct floppy_struct { #define FDCLRPRM _IO(2, 0x41) /* clear user-defined parameters */ -#define FDSETPRM _IOW(2, 0x42, struct floppy_struct) +#define FDSETPRM _IOW(2, 0x42, struct floppy_struct) #define FDSETMEDIAPRM FDSETPRM /* set user-defined parameters for current media */ -#define FDDEFPRM _IOW(2, 0x43, struct floppy_struct) +#define FDDEFPRM _IOW(2, 0x43, struct floppy_struct) #define FDGETPRM _IOR(2, 0x04, struct floppy_struct) #define FDDEFMEDIAPRM FDDEFPRM #define FDGETMEDIAPRM FDGETPRM @@ -65,7 +65,7 @@ struct floppy_struct { /* issue/don't issue kernel messages on media type change */ -/* +/* * Formatting (obsolete) */ #define FD_FILL_BYTE 0xF6 /* format fill byte. */ @@ -126,13 +126,13 @@ typedef char floppy_drive_name[16]; */ struct floppy_drive_params { signed char cmos; /* CMOS type */ - - /* Spec2 is (HLD<<1 | ND), where HLD is head load time (1=2ms, 2=4 ms + + /* Spec2 is (HLD<<1 | ND), where HLD is head load time (1=2ms, 2=4 ms * etc) and ND is set means no DMA. Hardcoded to 6 (HLD=6ms, use DMA). */ unsigned long max_dtr; /* Step rate, usec */ unsigned long hlt; /* Head load/settle time, msec */ - unsigned long hut; /* Head unload time (remnant of + unsigned long hut; /* Head unload time (remnant of * 8" drives) */ unsigned long srt; /* Step rate, usec */ @@ -145,12 +145,12 @@ struct floppy_drive_params { unsigned char rps; /* rotations per second */ unsigned char tracks; /* maximum number of tracks */ unsigned long timeout; /* timeout for interrupt requests */ - - unsigned char interleave_sect; /* if there are more sectors, use + + unsigned char interleave_sect; /* if there are more sectors, use * interleave */ - + struct floppy_max_errors max_errors; - + char flags; /* various flags, including ftd_msg */ /* * Announce successful media type detection and media information loss after @@ -162,7 +162,7 @@ struct floppy_drive_params { #define FD_BROKEN_DCL 0x20 #define FD_DEBUG 0x02 #define FD_SILENT_DCL_CLEAR 0x4 -#define FD_INVERTED_DCL 0x80 /* must be 0x80, because of hardware +#define FD_INVERTED_DCL 0x80 /* must be 0x80, because of hardware considerations */ char read_track; /* use readtrack during probing? */ @@ -176,8 +176,8 @@ struct floppy_drive_params { #define FD_AUTODETECT_SIZE 8 short autodetect[FD_AUTODETECT_SIZE]; /* autodetected formats */ - - int checkfreq; /* how often should the drive be checked for disk + + int checkfreq; /* how often should the drive be checked for disk * changes */ int native_format; /* native format of this drive */ }; @@ -225,13 +225,13 @@ struct floppy_drive_struct { * decremented after each probe. */ int keep_data; - + /* Prevent "aliased" accesses. */ int fd_ref; int fd_device; - unsigned long last_checked; /* when was the drive last checked for a disk + unsigned long last_checked; /* when was the drive last checked for a disk * change? */ - + char *dmabuf; int bufblocks; }; @@ -255,7 +255,7 @@ enum reset_mode { /* * FDC state */ -struct floppy_fdc_state { +struct floppy_fdc_state { int spec1; /* spec1 value last used */ int spec2; /* spec2 value last used */ int dtr; @@ -302,16 +302,16 @@ struct floppy_write_errors { * to the user process are not counted. */ - unsigned int write_errors; /* number of physical write errors + unsigned int write_errors; /* number of physical write errors * encountered */ - + /* position of first and last write errors */ unsigned long first_error_sector; int first_error_generation; unsigned long last_error_sector; int last_error_generation; - - unsigned int badness; /* highest retry count for a read or write + + unsigned int badness; /* highest retry count for a read or write * operation */ }; @@ -335,7 +335,7 @@ struct floppy_raw_cmd { #define FD_RAW_DISK_CHANGE 4 /* out: disk change flag was set */ #define FD_RAW_INTR 8 /* wait for an interrupt */ #define FD_RAW_SPIN 0x10 /* spin up the disk for this command */ -#define FD_RAW_NO_MOTOR_AFTER 0x20 /* switch the motor off after command +#define FD_RAW_NO_MOTOR_AFTER 0x20 /* switch the motor off after command * completion */ #define FD_RAW_NEED_DISK 0x40 /* this command needs a disk to be present */ #define FD_RAW_NEED_SEEK 0x80 /* this command uses an implied seek (soft) */ @@ -353,7 +353,7 @@ struct floppy_raw_cmd { void __user *data; char *kernel_data; /* location of data buffer in the kernel */ - struct floppy_raw_cmd *next; /* used for chaining of raw cmd's + struct floppy_raw_cmd *next; /* used for chaining of raw cmd's * within the kernel */ long length; /* in: length of dma transfer. out: remaining bytes */ long phys_length; /* physical length, if different from dma length */ diff --git a/original/uapi/linux/fs.h b/original/uapi/linux/fs.h index bdf7b40..f44eb0a 100644 --- a/original/uapi/linux/fs.h +++ b/original/uapi/linux/fs.h @@ -184,9 +184,8 @@ struct fsxattr { #define BLKSECDISCARD _IO(0x12,125) #define BLKROTATIONAL _IO(0x12,126) #define BLKZEROOUT _IO(0x12,127) -#define BLKGETDISKSEQ _IOR(0x12,128,__u64) /* - * A jump here: 130-136 are reserved for zoned block devices + * A jump here: 130-131 are reserved for zoned block devices * (see uapi/linux/blkzoned.h) */ diff --git a/original/uapi/linux/fuse.h b/original/uapi/linux/fuse.h index 69a9d97..8fa26a2 100644 --- a/original/uapi/linux/fuse.h +++ b/original/uapi/linux/fuse.h @@ -179,21 +179,6 @@ * 7.33 * - add FUSE_HANDLE_KILLPRIV_V2, FUSE_WRITE_KILL_SUIDGID, FATTR_KILL_SUIDGID * - add FUSE_OPEN_KILL_SUIDGID - * - extend fuse_setxattr_in, add FUSE_SETXATTR_EXT - * - add FUSE_SETXATTR_ACL_KILL_SGID - * - * 7.34 - * - add FUSE_SYNCFS - * - * 7.35 - * - add FOPEN_NOFLUSH - * - * 7.36 - * - extend fuse_init_in with reserved fields, add FUSE_INIT_EXT init flag - * - add flags2 to fuse_init_in and fuse_init_out - * - add FUSE_SECURITY_CTX init flag - * - add security context to create, mkdir, symlink, and mknod requests - * - add FUSE_HAS_INODE_DAX, FUSE_ATTR_DAX */ #ifndef _LINUX_FUSE_H @@ -229,7 +214,7 @@ #define FUSE_KERNEL_VERSION 7 /** Minor version number of this interface */ -#define FUSE_KERNEL_MINOR_VERSION 36 +#define FUSE_KERNEL_MINOR_VERSION 33 /** The node ID of the root inode */ #define FUSE_ROOT_ID 1 @@ -300,14 +285,12 @@ struct fuse_file_lock { * FOPEN_NONSEEKABLE: the file is not seekable * FOPEN_CACHE_DIR: allow caching this directory * FOPEN_STREAM: the file is stream-like (no file position at all) - * FOPEN_NOFLUSH: don't flush data cache on close (unless FUSE_WRITEBACK_CACHE) */ #define FOPEN_DIRECT_IO (1 << 0) #define FOPEN_KEEP_CACHE (1 << 1) #define FOPEN_NONSEEKABLE (1 << 2) #define FOPEN_CACHE_DIR (1 << 3) #define FOPEN_STREAM (1 << 4) -#define FOPEN_NOFLUSH (1 << 5) /** * INIT request/reply flags @@ -347,12 +330,6 @@ struct fuse_file_lock { * does not have CAP_FSETID. Additionally upon * write/truncate sgid is killed only if file has group * execute permission. (Same as Linux VFS behavior). - * FUSE_SETXATTR_EXT: Server supports extended struct fuse_setxattr_in - * FUSE_INIT_EXT: extended fuse_init_in request - * FUSE_INIT_RESERVED: reserved, do not use - * FUSE_SECURITY_CTX: add security context to create, mkdir, symlink, and - * mknod - * FUSE_HAS_INODE_DAX: use per inode DAX */ #define FUSE_ASYNC_READ (1 << 0) #define FUSE_POSIX_LOCKS (1 << 1) @@ -383,24 +360,7 @@ struct fuse_file_lock { #define FUSE_MAP_ALIGNMENT (1 << 26) #define FUSE_SUBMOUNTS (1 << 27) #define FUSE_HANDLE_KILLPRIV_V2 (1 << 28) -#define FUSE_SETXATTR_EXT (1 << 29) -#define FUSE_INIT_EXT (1 << 30) -#define FUSE_INIT_RESERVED (1 << 31) -/* bits 32..63 get shifted down 32 bits into the flags2 field */ -#define FUSE_SECURITY_CTX (1ULL << 32) -#define FUSE_HAS_INODE_DAX (1ULL << 33) - -/* - * For FUSE < 7.36 FUSE_PASSTHROUGH has value (1 << 31). - * This condition check is not really required, but would prevent having a - * broken commit in the tree. - */ -#if FUSE_KERNEL_VERSION > 7 || \ - (FUSE_KERNEL_VERSION == 7 && FUSE_KERNEL_MINOR_VERSION >= 36) -#define FUSE_PASSTHROUGH (1ULL << 63) -#else -#define FUSE_PASSTHROUGH (1 << 31) -#endif +#define FUSE_PASSTHROUGH (1 << 31) /** * CUSE INIT request/reply flags @@ -483,10 +443,8 @@ struct fuse_file_lock { * fuse_attr flags * * FUSE_ATTR_SUBMOUNT: Object is a submount root - * FUSE_ATTR_DAX: Enable DAX for this file in per inode DAX mode */ #define FUSE_ATTR_SUBMOUNT (1 << 0) -#define FUSE_ATTR_DAX (1 << 1) /** * Open flags @@ -494,12 +452,6 @@ struct fuse_file_lock { */ #define FUSE_OPEN_KILL_SUIDGID (1 << 0) -/** - * setxattr flags - * FUSE_SETXATTR_ACL_KILL_SGID: Clear SGID when system.posix_acl_access is set - */ -#define FUSE_SETXATTR_ACL_KILL_SGID (1 << 0) - enum fuse_opcode { FUSE_LOOKUP = 1, FUSE_FORGET = 2, /* no reply */ @@ -548,7 +500,6 @@ enum fuse_opcode { FUSE_COPY_FILE_RANGE = 47, FUSE_SETUPMAPPING = 48, FUSE_REMOVEMAPPING = 49, - FUSE_SYNCFS = 50, FUSE_CANONICAL_PATH = 2016, /* CUSE specific operations */ @@ -732,13 +683,9 @@ struct fuse_fsync_in { uint32_t padding; }; -#define FUSE_COMPAT_SETXATTR_IN_SIZE 8 - struct fuse_setxattr_in { uint32_t size; uint32_t flags; - uint32_t setxattr_flags; - uint32_t padding; }; struct fuse_getxattr_in { @@ -773,8 +720,6 @@ struct fuse_init_in { uint32_t minor; uint32_t max_readahead; uint32_t flags; - uint32_t flags2; - uint32_t unused[11]; }; #define FUSE_COMPAT_INIT_OUT_SIZE 8 @@ -791,8 +736,7 @@ struct fuse_init_out { uint32_t time_gran; uint16_t max_pages; uint16_t map_alignment; - uint32_t flags2; - uint32_t unused[7]; + uint32_t unused[8]; }; #define CUSE_INIT_INFO_MAX 4096 @@ -886,6 +830,14 @@ struct fuse_in_header { uint32_t padding; }; +/* fuse_passthrough_out for passthrough V1 */ +struct fuse_passthrough_out { + uint32_t fd; + /* For future implementation */ + uint32_t len; + void *vec; +}; + struct fuse_out_header { uint32_t len; int32_t error; @@ -900,12 +852,9 @@ struct fuse_dirent { char name[]; }; -/* Align variable length records to 64bit boundary */ -#define FUSE_REC_ALIGN(x) \ - (((x) + sizeof(uint64_t) - 1) & ~(sizeof(uint64_t) - 1)) - #define FUSE_NAME_OFFSET offsetof(struct fuse_dirent, name) -#define FUSE_DIRENT_ALIGN(x) FUSE_REC_ALIGN(x) +#define FUSE_DIRENT_ALIGN(x) \ + (((x) + sizeof(uint64_t) - 1) & ~(sizeof(uint64_t) - 1)) #define FUSE_DIRENT_SIZE(d) \ FUSE_DIRENT_ALIGN(FUSE_NAME_OFFSET + (d)->namelen) @@ -966,9 +915,8 @@ struct fuse_notify_retrieve_in { /* Device ioctls: */ #define FUSE_DEV_IOC_MAGIC 229 #define FUSE_DEV_IOC_CLONE _IOR(FUSE_DEV_IOC_MAGIC, 0, uint32_t) -/* 127 is reserved for the V1 interface implementation in Android (deprecated) */ -/* 126 is reserved for the V2 interface implementation in Android */ -#define FUSE_DEV_IOC_PASSTHROUGH_OPEN _IOW(FUSE_DEV_IOC_MAGIC, 126, uint32_t) +/* 127 is reserved for the V1 interface implementation in Android */ +#define FUSE_DEV_IOC_PASSTHROUGH_OPEN _IOW(FUSE_DEV_IOC_MAGIC, 127, struct fuse_passthrough_out) struct fuse_lseek_in { uint64_t fh; @@ -1021,30 +969,4 @@ struct fuse_removemapping_one { #define FUSE_REMOVEMAPPING_MAX_ENTRY \ (PAGE_SIZE / sizeof(struct fuse_removemapping_one)) -struct fuse_syncfs_in { - uint64_t padding; -}; - -/* - * For each security context, send fuse_secctx with size of security context - * fuse_secctx will be followed by security context name and this in turn - * will be followed by actual context label. - * fuse_secctx, name, context - */ -struct fuse_secctx { - uint32_t size; - uint32_t padding; -}; - -/* - * Contains the information about how many fuse_secctx structures are being - * sent and what's the total size of all security contexts (including - * size of fuse_secctx_header). - * - */ -struct fuse_secctx_header { - uint32_t size; - uint32_t nr_secctx; -}; - #endif /* _LINUX_FUSE_H */ diff --git a/original/uapi/linux/futex.h b/original/uapi/linux/futex.h index 71a5df8..a89eb0a 100644 --- a/original/uapi/linux/futex.h +++ b/original/uapi/linux/futex.h @@ -21,7 +21,6 @@ #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 @@ -33,7 +32,6 @@ #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) @@ -44,31 +42,6 @@ FUTEX_PRIVATE_FLAG) /* - * Flags to specify the bit length of the futex word for futex2 syscalls. - * Currently, only 32 is supported. - */ -#define FUTEX_32 2 - -/* - * Max numbers of elements in a futex_waitv array - */ -#define FUTEX_WAITV_MAX 128 - -/** - * struct futex_waitv - A waiter for vectorized wait - * @val: Expected value at uaddr - * @uaddr: User address to wait on - * @flags: Flags for this waiter - * @__reserved: Reserved member to preserve data alignment. Should be 0. - */ -struct futex_waitv { - __u64 val; - __u64 uaddr; - __u32 flags; - __u32 __reserved; -}; - -/* * Support for robust futexes: the kernel cleans up held futexes at * thread exit time. */ diff --git a/original/uapi/linux/hyperv.h b/original/uapi/linux/hyperv.h index daf82a2..6135d92 100644 --- a/original/uapi/linux/hyperv.h +++ b/original/uapi/linux/hyperv.h @@ -26,7 +26,7 @@ #ifndef _UAPI_HYPERV_H #define _UAPI_HYPERV_H -#include <linux/types.h> +#include <linux/uuid.h> /* * Framework version for util services. diff --git a/original/uapi/linux/icmp.h b/original/uapi/linux/icmp.h index 163c099..fb169a5 100644 --- a/original/uapi/linux/icmp.h +++ b/original/uapi/linux/icmp.h @@ -20,8 +20,6 @@ #include <linux/types.h> #include <asm/byteorder.h> -#include <linux/if.h> -#include <linux/in6.h> #define ICMP_ECHOREPLY 0 /* Echo Reply */ #define ICMP_DEST_UNREACH 3 /* Destination Unreachable */ @@ -68,23 +66,6 @@ #define ICMP_EXC_TTL 0 /* TTL count exceeded */ #define ICMP_EXC_FRAGTIME 1 /* Fragment Reass time exceeded */ -/* Codes for EXT_ECHO (PROBE) */ -#define ICMP_EXT_ECHO 42 -#define ICMP_EXT_ECHOREPLY 43 -#define ICMP_EXT_CODE_MAL_QUERY 1 /* Malformed Query */ -#define ICMP_EXT_CODE_NO_IF 2 /* No such Interface */ -#define ICMP_EXT_CODE_NO_TABLE_ENT 3 /* No such Table Entry */ -#define ICMP_EXT_CODE_MULT_IFS 4 /* Multiple Interfaces Satisfy Query */ - -/* Constants for EXT_ECHO (PROBE) */ -#define ICMP_EXT_ECHOREPLY_ACTIVE (1 << 2)/* active bit in reply message */ -#define ICMP_EXT_ECHOREPLY_IPV4 (1 << 1)/* ipv4 bit in reply message */ -#define ICMP_EXT_ECHOREPLY_IPV6 1 /* ipv6 bit in reply message */ -#define ICMP_EXT_ECHO_CTYPE_NAME 1 -#define ICMP_EXT_ECHO_CTYPE_INDEX 2 -#define ICMP_EXT_ECHO_CTYPE_ADDR 3 -#define ICMP_AFI_IP 1 /* Address Family Identifier for ipv4 */ -#define ICMP_AFI_IP6 2 /* Address Family Identifier for ipv6 */ struct icmphdr { __u8 type; @@ -137,26 +118,4 @@ struct icmp_extobj_hdr { __u8 class_type; }; -/* RFC 8335: 2.1 Header for c-type 3 payload */ -struct icmp_ext_echo_ctype3_hdr { - __be16 afi; - __u8 addrlen; - __u8 reserved; -}; - -/* RFC 8335: 2.1 Interface Identification Object */ -struct icmp_ext_echo_iio { - struct icmp_extobj_hdr extobj_hdr; - union { - char name[IFNAMSIZ]; - __be32 ifindex; - struct { - struct icmp_ext_echo_ctype3_hdr ctype3_hdr; - union { - __be32 ipv4_addr; - struct in6_addr ipv6_addr; - } ip_addr; - } addr; - } ident; -}; #endif /* _UAPI_LINUX_ICMP_H */ diff --git a/original/uapi/linux/icmpv6.h b/original/uapi/linux/icmpv6.h index ecaece3..0564fd7 100644 --- a/original/uapi/linux/icmpv6.h +++ b/original/uapi/linux/icmpv6.h @@ -140,9 +140,6 @@ struct icmp6hdr { #define ICMPV6_UNK_OPTION 2 #define ICMPV6_HDR_INCOMP 3 -/* Codes for EXT_ECHO (PROBE) */ -#define ICMPV6_EXT_ECHO_REQUEST 160 -#define ICMPV6_EXT_ECHO_REPLY 161 /* * constants for (set|get)sockopt */ diff --git a/original/uapi/linux/idxd.h b/original/uapi/linux/idxd.h index a8f0ff7..e33997b 100644 --- a/original/uapi/linux/idxd.h +++ b/original/uapi/linux/idxd.h @@ -1,4 +1,4 @@ -/* SPDX-License-Identifier: LGPL-2.1 WITH Linux-syscall-note */ +/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ /* Copyright(c) 2019 Intel Corporation. All rights rsvd. */ #ifndef _USR_IDXD_H_ #define _USR_IDXD_H_ @@ -9,31 +9,6 @@ #include <stdint.h> #endif -/* Driver command error status */ -enum idxd_scmd_stat { - IDXD_SCMD_DEV_ENABLED = 0x80000010, - IDXD_SCMD_DEV_NOT_ENABLED = 0x80000020, - IDXD_SCMD_WQ_ENABLED = 0x80000021, - IDXD_SCMD_DEV_DMA_ERR = 0x80020000, - IDXD_SCMD_WQ_NO_GRP = 0x80030000, - IDXD_SCMD_WQ_NO_NAME = 0x80040000, - IDXD_SCMD_WQ_NO_SVM = 0x80050000, - IDXD_SCMD_WQ_NO_THRESH = 0x80060000, - IDXD_SCMD_WQ_PORTAL_ERR = 0x80070000, - IDXD_SCMD_WQ_RES_ALLOC_ERR = 0x80080000, - IDXD_SCMD_PERCPU_ERR = 0x80090000, - IDXD_SCMD_DMA_CHAN_ERR = 0x800a0000, - IDXD_SCMD_CDEV_ERR = 0x800b0000, - IDXD_SCMD_WQ_NO_SWQ_SUPPORT = 0x800c0000, - IDXD_SCMD_WQ_NONE_CONFIGURED = 0x800d0000, - IDXD_SCMD_WQ_NO_SIZE = 0x800e0000, - IDXD_SCMD_WQ_NO_PRIV = 0x800f0000, - IDXD_SCMD_WQ_IRQ_ERR = 0x80100000, -}; - -#define IDXD_SCMD_SOFTERR_MASK 0x80000000 -#define IDXD_SCMD_SOFTERR_SHIFT 16 - /* Descriptor flags */ #define IDXD_OP_FLAG_FENCE 0x0001 #define IDXD_OP_FLAG_BOF 0x0002 diff --git a/original/uapi/linux/if_arp.h b/original/uapi/linux/if_arp.h index 4783af9..c3cc5a9 100644 --- a/original/uapi/linux/if_arp.h +++ b/original/uapi/linux/if_arp.h @@ -54,7 +54,6 @@ #define ARPHRD_X25 271 /* CCITT X.25 */ #define ARPHRD_HWX25 272 /* Boards with X.25 in firmware */ #define ARPHRD_CAN 280 /* Controller Area Network */ -#define ARPHRD_MCTP 290 #define ARPHRD_PPP 512 #define ARPHRD_CISCO 513 /* Cisco HDLC */ #define ARPHRD_HDLC ARPHRD_CISCO diff --git a/original/uapi/linux/if_bonding.h b/original/uapi/linux/if_bonding.h index d174914..e8eb4ad 100644 --- a/original/uapi/linux/if_bonding.h +++ b/original/uapi/linux/if_bonding.h @@ -153,3 +153,14 @@ enum { #define BOND_3AD_STAT_MAX (__BOND_3AD_STAT_MAX - 1) #endif /* _LINUX_IF_BONDING_H */ + +/* + * Local variables: + * version-control: t + * kept-new-versions: 5 + * c-indent-level: 8 + * c-basic-offset: 8 + * tab-width: 8 + * End: + */ + diff --git a/original/uapi/linux/if_bridge.h b/original/uapi/linux/if_bridge.h index 2711c35..13d59c5 100644 --- a/original/uapi/linux/if_bridge.h +++ b/original/uapi/linux/if_bridge.h @@ -479,22 +479,16 @@ enum { /* flags used in BRIDGE_VLANDB_DUMP_FLAGS attribute to affect dumps */ #define BRIDGE_VLANDB_DUMPF_STATS (1 << 0) /* Include stats in the dump */ -#define BRIDGE_VLANDB_DUMPF_GLOBAL (1 << 1) /* Dump global vlan options only */ /* Bridge vlan RTM attributes * [BRIDGE_VLANDB_ENTRY] = { * [BRIDGE_VLANDB_ENTRY_INFO] * ... * } - * [BRIDGE_VLANDB_GLOBAL_OPTIONS] = { - * [BRIDGE_VLANDB_GOPTS_ID] - * ... - * } */ enum { BRIDGE_VLANDB_UNSPEC, BRIDGE_VLANDB_ENTRY, - BRIDGE_VLANDB_GLOBAL_OPTIONS, __BRIDGE_VLANDB_MAX, }; #define BRIDGE_VLANDB_MAX (__BRIDGE_VLANDB_MAX - 1) @@ -506,7 +500,6 @@ enum { BRIDGE_VLANDB_ENTRY_STATE, BRIDGE_VLANDB_ENTRY_TUNNEL_INFO, BRIDGE_VLANDB_ENTRY_STATS, - BRIDGE_VLANDB_ENTRY_MCAST_ROUTER, __BRIDGE_VLANDB_ENTRY_MAX, }; #define BRIDGE_VLANDB_ENTRY_MAX (__BRIDGE_VLANDB_ENTRY_MAX - 1) @@ -545,29 +538,6 @@ enum { }; #define BRIDGE_VLANDB_STATS_MAX (__BRIDGE_VLANDB_STATS_MAX - 1) -enum { - BRIDGE_VLANDB_GOPTS_UNSPEC, - BRIDGE_VLANDB_GOPTS_ID, - BRIDGE_VLANDB_GOPTS_RANGE, - BRIDGE_VLANDB_GOPTS_MCAST_SNOOPING, - BRIDGE_VLANDB_GOPTS_MCAST_IGMP_VERSION, - BRIDGE_VLANDB_GOPTS_MCAST_MLD_VERSION, - BRIDGE_VLANDB_GOPTS_MCAST_LAST_MEMBER_CNT, - BRIDGE_VLANDB_GOPTS_MCAST_STARTUP_QUERY_CNT, - BRIDGE_VLANDB_GOPTS_MCAST_LAST_MEMBER_INTVL, - BRIDGE_VLANDB_GOPTS_PAD, - BRIDGE_VLANDB_GOPTS_MCAST_MEMBERSHIP_INTVL, - BRIDGE_VLANDB_GOPTS_MCAST_QUERIER_INTVL, - BRIDGE_VLANDB_GOPTS_MCAST_QUERY_INTVL, - BRIDGE_VLANDB_GOPTS_MCAST_QUERY_RESPONSE_INTVL, - BRIDGE_VLANDB_GOPTS_MCAST_STARTUP_QUERY_INTVL, - BRIDGE_VLANDB_GOPTS_MCAST_QUERIER, - BRIDGE_VLANDB_GOPTS_MCAST_ROUTER_PORTS, - BRIDGE_VLANDB_GOPTS_MCAST_QUERIER_STATE, - __BRIDGE_VLANDB_GOPTS_MAX -}; -#define BRIDGE_VLANDB_GOPTS_MAX (__BRIDGE_VLANDB_GOPTS_MAX - 1) - /* Bridge multicast database attributes * [MDBA_MDB] = { * [MDBA_MDB_ENTRY] = { @@ -657,9 +627,6 @@ 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_VID, __MDBA_ROUTER_PATTR_MAX }; #define MDBA_ROUTER_PATTR_MAX (__MDBA_ROUTER_PATTR_MAX - 1) @@ -751,14 +718,12 @@ 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 * * IMPORTANT: if adding a new option do not forget to handle * it in br_boolopt_toggle/get and bridge sysfs */ enum br_boolopt_id { BR_BOOLOPT_NO_LL_LEARN, - BR_BOOLOPT_MCAST_VLAN_SNOOPING, BR_BOOLOPT_MAX }; @@ -771,17 +736,4 @@ struct br_boolopt_multi { __u32 optval; __u32 optmask; }; - -enum { - BRIDGE_QUERIER_UNSPEC, - BRIDGE_QUERIER_IP_ADDRESS, - BRIDGE_QUERIER_IP_PORT, - BRIDGE_QUERIER_IP_OTHER_TIMER, - BRIDGE_QUERIER_PAD, - BRIDGE_QUERIER_IPV6_ADDRESS, - BRIDGE_QUERIER_IPV6_PORT, - BRIDGE_QUERIER_IPV6_OTHER_TIMER, - __BRIDGE_QUERIER_MAX -}; -#define BRIDGE_QUERIER_MAX (__BRIDGE_QUERIER_MAX - 1) #endif /* _UAPI_LINUX_IF_BRIDGE_H */ diff --git a/original/uapi/linux/if_ether.h b/original/uapi/linux/if_ether.h index c0c2f3e..a0b6379 100644 --- a/original/uapi/linux/if_ether.h +++ b/original/uapi/linux/if_ether.h @@ -86,7 +86,6 @@ * over Ethernet */ #define ETH_P_PAE 0x888E /* Port Access Entity (IEEE 802.1X) */ -#define ETH_P_REALTEK 0x8899 /* Multiple proprietary protocols */ #define ETH_P_AOE 0x88A2 /* ATA over Ethernet */ #define ETH_P_8021AD 0x88A8 /* 802.1ad Service VLAN */ #define ETH_P_802_EX1 0x88B5 /* 802.1 Local Experimental 1. */ @@ -117,7 +116,7 @@ #define ETH_P_IFE 0xED3E /* ForCES inter-FE LFB type */ #define ETH_P_AF_IUCV 0xFBFB /* IBM af_iucv [ NOT AN OFFICIALLY REGISTERED ID ] */ -#define ETH_P_802_3_MIN 0x0600 /* If the value in the ethernet type is more than this value +#define ETH_P_802_3_MIN 0x0600 /* If the value in the ethernet type is less than this value * then the frame is Ethernet II. Else it is 802.3 */ /* @@ -152,9 +151,6 @@ #define ETH_P_MAP 0x00F9 /* Qualcomm multiplexing and * aggregation protocol */ -#define ETH_P_MCTP 0x00FA /* Management component transport - * protocol packets - */ /* * This is an Ethernet frame header. diff --git a/original/uapi/linux/if_fddi.h b/original/uapi/linux/if_fddi.h index 8df2d99..7239aa9 100644 --- a/original/uapi/linux/if_fddi.h +++ b/original/uapi/linux/if_fddi.h @@ -9,7 +9,7 @@ * Version: @(#)if_fddi.h 1.0.3 Oct 6 2018 * * Author: Lawrence V. Stefani, <stefani@yahoo.com> - * Maintainer: Maciej W. Rozycki, <macro@orcam.me.uk> + * Maintainer: Maciej W. Rozycki, <macro@linux-mips.org> * * if_fddi.h is based on previous if_ether.h and if_tr.h work by * Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG> diff --git a/original/uapi/linux/if_link.h b/original/uapi/linux/if_link.h index 6218f93..91c8dda 100644 --- a/original/uapi/linux/if_link.h +++ b/original/uapi/linux/if_link.h @@ -341,14 +341,6 @@ 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_GRO_MAX_SIZE, - __IFLA_MAX }; @@ -418,7 +410,6 @@ enum { IFLA_INET6_ICMP6STATS, /* statistics (icmpv6) */ IFLA_INET6_TOKEN, /* device token */ IFLA_INET6_ADDR_GEN_MODE, /* implicit address generator mode */ - IFLA_INET6_RA_MTU, /* mtu carried in the RA message */ __IFLA_INET6_MAX }; @@ -481,7 +472,6 @@ enum { IFLA_BR_MCAST_MLD_VERSION, IFLA_BR_VLAN_STATS_PER_PORT, IFLA_BR_MULTI_BOOLOPT, - IFLA_BR_MCAST_QUERIER_STATE, __IFLA_BR_MAX, }; @@ -624,7 +614,6 @@ enum macvlan_macaddr_mode { }; #define MACVLAN_FLAG_NOPROMISC 1 -#define MACVLAN_FLAG_NODST 2 /* skip dst macvlan if matching src macvlan */ /* VRF section */ enum { @@ -858,8 +847,6 @@ enum { IFLA_BOND_AD_ACTOR_SYSTEM, IFLA_BOND_TLB_DYNAMIC_LB, IFLA_BOND_PEER_NOTIF_DELAY, - IFLA_BOND_AD_LACP_ACTIVE, - IFLA_BOND_MISSED_MAX, __IFLA_BOND_MAX, }; @@ -1248,8 +1235,6 @@ 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, @@ -1265,14 +1250,4 @@ struct ifla_rmnet_flags { __u32 mask; }; -/* MCTP section */ - -enum { - IFLA_MCTP_UNSPEC, - IFLA_MCTP_NET, - __IFLA_MCTP_MAX, -}; - -#define IFLA_MCTP_MAX (__IFLA_MCTP_MAX - 1) - #endif /* _UAPI_LINUX_IF_LINK_H */ diff --git a/original/uapi/linux/iio/buffer.h b/original/uapi/linux/iio/buffer.h deleted file mode 100644 index 1393903..0000000 --- a/original/uapi/linux/iio/buffer.h +++ /dev/null @@ -1,10 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ -/* industrial I/O buffer definitions needed both in and out of kernel - */ - -#ifndef _UAPI_IIO_BUFFER_H_ -#define _UAPI_IIO_BUFFER_H_ - -#define IIO_BUFFER_GET_FD_IOCTL _IOWR('i', 0x91, int) - -#endif /* _UAPI_IIO_BUFFER_H_ */ diff --git a/original/uapi/linux/in.h b/original/uapi/linux/in.h index 1416822..7d66876 100644 --- a/original/uapi/linux/in.h +++ b/original/uapi/linux/in.h @@ -188,22 +188,11 @@ struct ip_mreq_source { }; struct ip_msfilter { - union { - struct { - __be32 imsf_multiaddr_aux; - __be32 imsf_interface_aux; - __u32 imsf_fmode_aux; - __u32 imsf_numsrc_aux; - __be32 imsf_slist[1]; - }; - struct { - __be32 imsf_multiaddr; - __be32 imsf_interface; - __u32 imsf_fmode; - __u32 imsf_numsrc; - __be32 imsf_slist_flex[]; - }; - }; + __be32 imsf_multiaddr; + __be32 imsf_interface; + __u32 imsf_fmode; + __u32 imsf_numsrc; + __be32 imsf_slist[1]; }; #define IP_MSFILTER_SIZE(numsrc) \ @@ -222,22 +211,11 @@ struct group_source_req { }; struct group_filter { - union { - struct { - __u32 gf_interface_aux; /* interface index */ - struct __kernel_sockaddr_storage gf_group_aux; /* multicast address */ - __u32 gf_fmode_aux; /* filter mode */ - __u32 gf_numsrc_aux; /* number of sources */ - struct __kernel_sockaddr_storage gf_slist[1]; /* interface index */ - }; - struct { - __u32 gf_interface; /* interface index */ - struct __kernel_sockaddr_storage gf_group; /* multicast address */ - __u32 gf_fmode; /* filter mode */ - __u32 gf_numsrc; /* number of sources */ - struct __kernel_sockaddr_storage gf_slist_flex[]; /* interface index */ - }; - }; + __u32 gf_interface; /* interface index */ + struct __kernel_sockaddr_storage gf_group; /* multicast address */ + __u32 gf_fmode; /* filter mode */ + __u32 gf_numsrc; /* number of sources */ + struct __kernel_sockaddr_storage gf_slist[1]; /* interface index */ }; #define GROUP_FILTER_SIZE(numsrc) \ @@ -311,9 +289,6 @@ struct sockaddr_in { /* Address indicating an error return. */ #define INADDR_NONE ((unsigned long int) 0xffffffff) -/* Dummy address for src of ICMP replies if no real address is set (RFC7600). */ -#define INADDR_DUMMY ((unsigned long int) 0xc0000008) - /* Network number for local host loopback. */ #define IN_LOOPBACKNET 127 diff --git a/original/uapi/linux/in6.h b/original/uapi/linux/in6.h index c4c53a9..5ad396a 100644 --- a/original/uapi/linux/in6.h +++ b/original/uapi/linux/in6.h @@ -145,7 +145,6 @@ struct in6_flowlabel_req { #define IPV6_TLV_PADN 1 #define IPV6_TLV_ROUTERALERT 5 #define IPV6_TLV_CALIPSO 7 /* RFC 5570 */ -#define IPV6_TLV_IOAM 49 /* TEMPORARY IANA allocation for IOAM */ #define IPV6_TLV_JUMBO 194 #define IPV6_TLV_HAO 201 /* home address option */ diff --git a/original/uapi/linux/incrementalfs.h b/original/uapi/linux/incrementalfs.h index f8338af..f1a6199 100644 --- a/original/uapi/linux/incrementalfs.h +++ b/original/uapi/linux/incrementalfs.h @@ -580,11 +580,7 @@ struct incfs_get_last_read_error_args { /* errno of last read error */ __u32 errno_out; - /* uid of last read error */ - __u32 uid_out; - - __u32 reserved1; - __u64 reserved2; + __u64 reserved; }; #endif /* _UAPI_LINUX_INCREMENTALFS_H */ diff --git a/original/uapi/linux/input-event-codes.h b/original/uapi/linux/input-event-codes.h index 7989d94..ee93428 100644 --- a/original/uapi/linux/input-event-codes.h +++ b/original/uapi/linux/input-event-codes.h @@ -278,8 +278,7 @@ #define KEY_PAUSECD 201 #define KEY_PROG3 202 #define KEY_PROG4 203 -#define KEY_ALL_APPLICATIONS 204 /* AC Desktop Show All Applications */ -#define KEY_DASHBOARD KEY_ALL_APPLICATIONS +#define KEY_DASHBOARD 204 /* AL Dashboard */ #define KEY_SUSPEND 205 #define KEY_CLOSE 206 /* AC Close */ #define KEY_PLAY 207 @@ -612,8 +611,6 @@ #define KEY_VOICECOMMAND 0x246 /* Listening Voice Command */ #define KEY_ASSISTANT 0x247 /* AL Context-aware desktop assistant */ #define KEY_KBD_LAYOUT_NEXT 0x248 /* AC Next Keyboard Layout Select */ -#define KEY_EMOJI_PICKER 0x249 /* Show/hide emoji picker (HUTRR101) */ -#define KEY_DICTATE 0x24a /* Start or Stop Voice Dictation Session (HUTRR99) */ #define KEY_BRIGHTNESS_MIN 0x250 /* Set Brightness to Minimum */ #define KEY_BRIGHTNESS_MAX 0x251 /* Set Brightness to Maximum */ diff --git a/original/uapi/linux/io_uring.h b/original/uapi/linux/io_uring.h index 787f491..2514eb6 100644 --- a/original/uapi/linux/io_uring.h +++ b/original/uapi/linux/io_uring.h @@ -44,23 +44,23 @@ struct io_uring_sqe { __u32 splice_flags; __u32 rename_flags; __u32 unlink_flags; - __u32 hardlink_flags; }; __u64 user_data; /* data to be passed back at completion time */ - /* 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; - union { - __s32 splice_fd_in; - __u32 file_index; + 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]; }; - __u64 __pad2[2]; }; enum { @@ -70,7 +70,6 @@ enum { IOSQE_IO_HARDLINK_BIT, IOSQE_ASYNC_BIT, IOSQE_BUFFER_SELECT_BIT, - IOSQE_CQE_SKIP_SUCCESS_BIT, }; /* @@ -88,8 +87,6 @@ enum { #define IOSQE_ASYNC (1U << IOSQE_ASYNC_BIT) /* select buffer from sqe->buf_group */ #define IOSQE_BUFFER_SELECT (1U << IOSQE_BUFFER_SELECT_BIT) -/* don't post CQE if request succeeded */ -#define IOSQE_CQE_SKIP_SUCCESS (1U << IOSQE_CQE_SKIP_SUCCESS_BIT) /* * io_uring_setup() flags @@ -140,9 +137,6 @@ enum { IORING_OP_SHUTDOWN, IORING_OP_RENAMEAT, IORING_OP_UNLINKAT, - IORING_OP_MKDIRAT, - IORING_OP_SYMLINKAT, - IORING_OP_LINKAT, /* this goes last, obviously */ IORING_OP_LAST, @@ -156,14 +150,9 @@ enum { /* * sqe->timeout_flags */ -#define IORING_TIMEOUT_ABS (1U << 0) -#define IORING_TIMEOUT_UPDATE (1U << 1) -#define IORING_TIMEOUT_BOOTTIME (1U << 2) -#define IORING_TIMEOUT_REALTIME (1U << 3) -#define IORING_LINK_TIMEOUT_UPDATE (1U << 4) -#define IORING_TIMEOUT_ETIME_SUCCESS (1U << 5) -#define IORING_TIMEOUT_CLOCK_MASK (IORING_TIMEOUT_BOOTTIME | IORING_TIMEOUT_REALTIME) -#define IORING_TIMEOUT_UPDATE_MASK (IORING_TIMEOUT_UPDATE | IORING_LINK_TIMEOUT_UPDATE) +#define IORING_TIMEOUT_ABS (1U << 0) +#define IORING_TIMEOUT_UPDATE (1U << 1) + /* * sqe->splice_flags * extends splice(2) flags @@ -171,21 +160,6 @@ enum { #define SPLICE_F_FD_IN_FIXED (1U << 31) /* the last bit of __u32 */ /* - * POLL_ADD flags. Note that since sqe->poll_events is the flag space, the - * command flags for POLL_ADD are stored in sqe->len. - * - * IORING_POLL_ADD_MULTI Multishot poll. Sets IORING_CQE_F_MORE if - * the poll handler will continue to report - * CQEs on behalf of the same SQE. - * - * IORING_POLL_UPDATE Update existing poll request, matching - * sqe->addr as the old user_data field. - */ -#define IORING_POLL_ADD_MULTI (1U << 0) -#define IORING_POLL_UPDATE_EVENTS (1U << 1) -#define IORING_POLL_UPDATE_USER_DATA (1U << 2) - -/* * IO completion data structure (Completion Queue Entry) */ struct io_uring_cqe { @@ -198,10 +172,8 @@ struct io_uring_cqe { * cqe->flags * * IORING_CQE_F_BUFFER If set, the upper 16 bits are the buffer ID - * IORING_CQE_F_MORE If set, parent SQE will generate more CQE entries */ #define IORING_CQE_F_BUFFER (1U << 0) -#define IORING_CQE_F_MORE (1U << 1) enum { IORING_CQE_BUFFER_SHIFT = 16, @@ -291,8 +263,6 @@ struct io_uring_params { #define IORING_FEAT_SQPOLL_NONFIXED (1U << 7) #define IORING_FEAT_EXT_ARG (1U << 8) #define IORING_FEAT_NATIVE_WORKERS (1U << 9) -#define IORING_FEAT_RSRC_TAGS (1U << 10) -#define IORING_FEAT_CQE_SKIP (1U << 11) /* * io_uring_register(2) opcodes and arguments @@ -312,29 +282,10 @@ enum { IORING_REGISTER_RESTRICTIONS = 11, IORING_REGISTER_ENABLE_RINGS = 12, - /* extended with tagging */ - IORING_REGISTER_FILES2 = 13, - IORING_REGISTER_FILES_UPDATE2 = 14, - 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, - - /* set/get max number of io-wq workers */ - IORING_REGISTER_IOWQ_MAX_WORKERS = 19, - /* this goes last */ IORING_REGISTER_LAST }; -/* io-wq worker categories */ -enum { - IO_WQ_BOUND, - IO_WQ_UNBOUND, -}; - /* deprecated, see struct io_uring_rsrc_update */ struct io_uring_files_update { __u32 offset; @@ -342,29 +293,12 @@ struct io_uring_files_update { __aligned_u64 /* __s32 * */ fds; }; -struct io_uring_rsrc_register { - __u32 nr; - __u32 resv; - __u64 resv2; - __aligned_u64 data; - __aligned_u64 tags; -}; - struct io_uring_rsrc_update { __u32 offset; __u32 resv; __aligned_u64 data; }; -struct io_uring_rsrc_update2 { - __u32 offset; - __u32 resv; - __aligned_u64 data; - __aligned_u64 tags; - __u32 nr; - __u32 resv2; -}; - /* Skip updating fd indexes set to this value in the fd table */ #define IORING_REGISTER_FILES_SKIP (-2) diff --git a/original/uapi/linux/ioam6.h b/original/uapi/linux/ioam6.h deleted file mode 100644 index ac4de37..0000000 --- a/original/uapi/linux/ioam6.h +++ /dev/null @@ -1,133 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */ -/* - * IPv6 IOAM implementation - * - * Author: - * Justin Iurman <justin.iurman@uliege.be> - */ - -#ifndef _UAPI_LINUX_IOAM6_H -#define _UAPI_LINUX_IOAM6_H - -#include <asm/byteorder.h> -#include <linux/types.h> - -#define IOAM6_U16_UNAVAILABLE U16_MAX -#define IOAM6_U32_UNAVAILABLE U32_MAX -#define IOAM6_U64_UNAVAILABLE U64_MAX - -#define IOAM6_DEFAULT_ID (IOAM6_U32_UNAVAILABLE >> 8) -#define IOAM6_DEFAULT_ID_WIDE (IOAM6_U64_UNAVAILABLE >> 8) -#define IOAM6_DEFAULT_IF_ID IOAM6_U16_UNAVAILABLE -#define IOAM6_DEFAULT_IF_ID_WIDE IOAM6_U32_UNAVAILABLE - -/* - * IPv6 IOAM Option Header - */ -struct ioam6_hdr { - __u8 opt_type; - __u8 opt_len; - __u8 :8; /* reserved */ -#define IOAM6_TYPE_PREALLOC 0 - __u8 type; -} __attribute__((packed)); - -/* - * IOAM Trace Header - */ -struct ioam6_trace_hdr { - __be16 namespace_id; - -#if defined(__LITTLE_ENDIAN_BITFIELD) - - __u8 :1, /* unused */ - :1, /* unused */ - overflow:1, - nodelen:5; - - __u8 remlen:7, - :1; /* unused */ - - union { - __be32 type_be32; - - struct { - __u32 bit7:1, - bit6:1, - bit5:1, - bit4:1, - bit3:1, - bit2:1, - bit1:1, - bit0:1, - bit15:1, /* unused */ - bit14:1, /* unused */ - bit13:1, /* unused */ - bit12:1, /* unused */ - bit11:1, - bit10:1, - bit9:1, - bit8:1, - bit23:1, /* reserved */ - bit22:1, - bit21:1, /* unused */ - bit20:1, /* unused */ - bit19:1, /* unused */ - bit18:1, /* unused */ - bit17:1, /* unused */ - bit16:1, /* unused */ - :8; /* reserved */ - } type; - }; - -#elif defined(__BIG_ENDIAN_BITFIELD) - - __u8 nodelen:5, - overflow:1, - :1, /* unused */ - :1; /* unused */ - - __u8 :1, /* unused */ - remlen:7; - - union { - __be32 type_be32; - - struct { - __u32 bit0:1, - bit1:1, - bit2:1, - bit3:1, - bit4:1, - bit5:1, - bit6:1, - bit7:1, - bit8:1, - bit9:1, - bit10:1, - bit11:1, - bit12:1, /* unused */ - bit13:1, /* unused */ - bit14:1, /* unused */ - bit15:1, /* unused */ - bit16:1, /* unused */ - bit17:1, /* unused */ - bit18:1, /* unused */ - bit19:1, /* unused */ - bit20:1, /* unused */ - bit21:1, /* unused */ - bit22:1, - bit23:1, /* reserved */ - :8; /* reserved */ - } type; - }; - -#else -#error "Please fix <asm/byteorder.h>" -#endif - -#define IOAM6_TRACE_DATA_SIZE_MAX 244 - __u8 data[0]; -} __attribute__((packed)); - -#endif /* _UAPI_LINUX_IOAM6_H */ diff --git a/original/uapi/linux/ioam6_genl.h b/original/uapi/linux/ioam6_genl.h deleted file mode 100644 index ca4b228..0000000 --- a/original/uapi/linux/ioam6_genl.h +++ /dev/null @@ -1,52 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */ -/* - * IPv6 IOAM Generic Netlink API - * - * Author: - * Justin Iurman <justin.iurman@uliege.be> - */ - -#ifndef _UAPI_LINUX_IOAM6_GENL_H -#define _UAPI_LINUX_IOAM6_GENL_H - -#define IOAM6_GENL_NAME "IOAM6" -#define IOAM6_GENL_VERSION 0x1 - -enum { - IOAM6_ATTR_UNSPEC, - - IOAM6_ATTR_NS_ID, /* u16 */ - IOAM6_ATTR_NS_DATA, /* u32 */ - IOAM6_ATTR_NS_DATA_WIDE,/* u64 */ - -#define IOAM6_MAX_SCHEMA_DATA_LEN (255 * 4) - IOAM6_ATTR_SC_ID, /* u32 */ - IOAM6_ATTR_SC_DATA, /* Binary */ - IOAM6_ATTR_SC_NONE, /* Flag */ - - IOAM6_ATTR_PAD, - - __IOAM6_ATTR_MAX, -}; - -#define IOAM6_ATTR_MAX (__IOAM6_ATTR_MAX - 1) - -enum { - IOAM6_CMD_UNSPEC, - - IOAM6_CMD_ADD_NAMESPACE, - IOAM6_CMD_DEL_NAMESPACE, - IOAM6_CMD_DUMP_NAMESPACES, - - IOAM6_CMD_ADD_SCHEMA, - IOAM6_CMD_DEL_SCHEMA, - IOAM6_CMD_DUMP_SCHEMAS, - - IOAM6_CMD_NS_SET_SCHEMA, - - __IOAM6_CMD_MAX, -}; - -#define IOAM6_CMD_MAX (__IOAM6_CMD_MAX - 1) - -#endif /* _UAPI_LINUX_IOAM6_GENL_H */ diff --git a/original/uapi/linux/ioam6_iptunnel.h b/original/uapi/linux/ioam6_iptunnel.h deleted file mode 100644 index 829ffdf..0000000 --- a/original/uapi/linux/ioam6_iptunnel.h +++ /dev/null @@ -1,49 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */ -/* - * IPv6 IOAM Lightweight Tunnel API - * - * Author: - * Justin Iurman <justin.iurman@uliege.be> - */ - -#ifndef _UAPI_LINUX_IOAM6_IPTUNNEL_H -#define _UAPI_LINUX_IOAM6_IPTUNNEL_H - -/* Encap modes: - * - inline: direct insertion - * - encap: ip6ip6 encapsulation - * - auto: inline for local packets, encap for in-transit packets - */ -enum { - __IOAM6_IPTUNNEL_MODE_MIN, - - IOAM6_IPTUNNEL_MODE_INLINE, - IOAM6_IPTUNNEL_MODE_ENCAP, - IOAM6_IPTUNNEL_MODE_AUTO, - - __IOAM6_IPTUNNEL_MODE_MAX, -}; - -#define IOAM6_IPTUNNEL_MODE_MIN (__IOAM6_IPTUNNEL_MODE_MIN + 1) -#define IOAM6_IPTUNNEL_MODE_MAX (__IOAM6_IPTUNNEL_MODE_MAX - 1) - -enum { - IOAM6_IPTUNNEL_UNSPEC, - - /* Encap mode */ - IOAM6_IPTUNNEL_MODE, /* u8 */ - - /* Tunnel dst address. - * For encap,auto modes. - */ - IOAM6_IPTUNNEL_DST, /* struct in6_addr */ - - /* IOAM Trace Header */ - IOAM6_IPTUNNEL_TRACE, /* struct ioam6_trace_hdr */ - - __IOAM6_IPTUNNEL_MAX, -}; - -#define IOAM6_IPTUNNEL_MAX (__IOAM6_IPTUNNEL_MAX - 1) - -#endif /* _UAPI_LINUX_IOAM6_IPTUNNEL_H */ diff --git a/original/uapi/linux/iommu.h b/original/uapi/linux/iommu.h index 59178fc..e1d9e75 100644 --- a/original/uapi/linux/iommu.h +++ b/original/uapi/linux/iommu.h @@ -288,8 +288,7 @@ struct iommu_gpasid_bind_data_vtd { #define IOMMU_SVA_VTD_GPASID_PWT (1 << 3) /* page-level write through */ #define IOMMU_SVA_VTD_GPASID_EMTE (1 << 4) /* extended mem type enable */ #define IOMMU_SVA_VTD_GPASID_CD (1 << 5) /* PASID-level cache disable */ -#define IOMMU_SVA_VTD_GPASID_WPE (1 << 6) /* Write protect enable */ -#define IOMMU_SVA_VTD_GPASID_LAST (1 << 7) +#define IOMMU_SVA_VTD_GPASID_LAST (1 << 6) __u64 flags; __u32 pat; __u32 emt; diff --git a/original/uapi/linux/ioprio.h b/original/uapi/linux/ioprio.h deleted file mode 100644 index f70f259..0000000 --- a/original/uapi/linux/ioprio.h +++ /dev/null @@ -1,52 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ -#ifndef _UAPI_LINUX_IOPRIO_H -#define _UAPI_LINUX_IOPRIO_H - -/* - * Gives us 8 prio classes with 13-bits of data for each class - */ -#define IOPRIO_CLASS_SHIFT 13 -#define IOPRIO_CLASS_MASK 0x07 -#define IOPRIO_PRIO_MASK ((1UL << IOPRIO_CLASS_SHIFT) - 1) - -#define IOPRIO_PRIO_CLASS(ioprio) \ - (((ioprio) >> IOPRIO_CLASS_SHIFT) & IOPRIO_CLASS_MASK) -#define IOPRIO_PRIO_DATA(ioprio) ((ioprio) & IOPRIO_PRIO_MASK) -#define IOPRIO_PRIO_VALUE(class, data) \ - ((((class) & IOPRIO_CLASS_MASK) << IOPRIO_CLASS_SHIFT) | \ - ((data) & IOPRIO_PRIO_MASK)) - -/* - * These are the io priority groups as implemented by the BFQ and mq-deadline - * schedulers. RT is the realtime class, it always gets premium service. For - * ATA disks supporting NCQ IO priority, RT class IOs will be processed using - * high priority NCQ commands. BE is the best-effort scheduling class, the - * default for any process. IDLE is the idle scheduling class, it is only - * served when no one else is using the disk. - */ -enum { - IOPRIO_CLASS_NONE, - IOPRIO_CLASS_RT, - IOPRIO_CLASS_BE, - IOPRIO_CLASS_IDLE, -}; - -/* - * The RT and BE priority classes both support up to 8 priority levels. - */ -#define IOPRIO_NR_LEVELS 8 -#define IOPRIO_BE_NR IOPRIO_NR_LEVELS - -enum { - IOPRIO_WHO_PROCESS = 1, - IOPRIO_WHO_PGRP, - IOPRIO_WHO_USER, -}; - -/* - * Fallback BE priority level. - */ -#define IOPRIO_NORM 4 -#define IOPRIO_BE_NORM IOPRIO_NORM - -#endif /* _UAPI_LINUX_IOPRIO_H */ diff --git a/original/uapi/linux/ip.h b/original/uapi/linux/ip.h index e00bbb9..e42d13b 100644 --- a/original/uapi/linux/ip.h +++ b/original/uapi/linux/ip.h @@ -169,7 +169,6 @@ enum IPV4_DEVCONF_DROP_UNICAST_IN_L2_MULTICAST, IPV4_DEVCONF_DROP_GRATUITOUS_ARP, IPV4_DEVCONF_BC_FORWARDING, - IPV4_DEVCONF_ARP_EVICT_NOCARRIER, __IPV4_DEVCONF_MAX }; diff --git a/original/uapi/linux/ipmi.h b/original/uapi/linux/ipmi.h index 966c307..32d1483 100644 --- a/original/uapi/linux/ipmi.h +++ b/original/uapi/linux/ipmi.h @@ -81,20 +81,6 @@ struct ipmi_ipmb_addr { }; /* - * Used for messages received directly from an IPMB that have not gone - * through a MC. This is for systems that sit right on an IPMB so - * they can receive commands and respond to them. - */ -#define IPMI_IPMB_DIRECT_ADDR_TYPE 0x81 -struct ipmi_ipmb_direct_addr { - int addr_type; - short channel; - unsigned char slave_addr; - unsigned char rs_lun; - unsigned char rq_lun; -}; - -/* * A LAN Address. This is an address to/from a LAN interface bridged * by the BMC, not an address actually out on the LAN. * @@ -172,7 +158,7 @@ struct kernel_ipmi_msg { * is used for the receive in-kernel interface and in the receive * IOCTL. * - * The "IPMI_RESPONSE_RESPONSE_TYPE" is a little strange sounding, but + * The "IPMI_RESPONSE_RESPNOSE_TYPE" is a little strange sounding, but * it allows you to get the message results when you send a response * message. */ diff --git a/original/uapi/linux/ipv6.h b/original/uapi/linux/ipv6.h index d4178da..7060377 100644 --- a/original/uapi/linux/ipv6.h +++ b/original/uapi/linux/ipv6.h @@ -190,10 +190,6 @@ enum { DEVCONF_NDISC_TCLASS, DEVCONF_RPL_SEG_ENABLED, DEVCONF_RA_DEFRTR_METRIC, - DEVCONF_IOAM6_ENABLED, - DEVCONF_IOAM6_ID, - DEVCONF_IOAM6_ID_WIDE, - DEVCONF_NDISC_EVICT_NOCARRIER, DEVCONF_MAX }; diff --git a/original/uapi/linux/ipx.h b/original/uapi/linux/ipx.h new file mode 100644 index 0000000..3168137 --- /dev/null +++ b/original/uapi/linux/ipx.h @@ -0,0 +1,87 @@ +/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ +#ifndef _IPX_H_ +#define _IPX_H_ +#include <linux/libc-compat.h> /* for compatibility with glibc netipx/ipx.h */ +#include <linux/types.h> +#include <linux/sockios.h> +#include <linux/socket.h> +#define IPX_NODE_LEN 6 +#define IPX_MTU 576 + +#if __UAPI_DEF_SOCKADDR_IPX +struct sockaddr_ipx { + __kernel_sa_family_t sipx_family; + __be16 sipx_port; + __be32 sipx_network; + unsigned char sipx_node[IPX_NODE_LEN]; + __u8 sipx_type; + unsigned char sipx_zero; /* 16 byte fill */ +}; +#endif /* __UAPI_DEF_SOCKADDR_IPX */ + +/* + * So we can fit the extra info for SIOCSIFADDR into the address nicely + */ +#define sipx_special sipx_port +#define sipx_action sipx_zero +#define IPX_DLTITF 0 +#define IPX_CRTITF 1 + +#if __UAPI_DEF_IPX_ROUTE_DEFINITION +struct ipx_route_definition { + __be32 ipx_network; + __be32 ipx_router_network; + unsigned char ipx_router_node[IPX_NODE_LEN]; +}; +#endif /* __UAPI_DEF_IPX_ROUTE_DEFINITION */ + +#if __UAPI_DEF_IPX_INTERFACE_DEFINITION +struct ipx_interface_definition { + __be32 ipx_network; + unsigned char ipx_device[16]; + unsigned char ipx_dlink_type; +#define IPX_FRAME_NONE 0 +#define IPX_FRAME_SNAP 1 +#define IPX_FRAME_8022 2 +#define IPX_FRAME_ETHERII 3 +#define IPX_FRAME_8023 4 +#define IPX_FRAME_TR_8022 5 /* obsolete */ + unsigned char ipx_special; +#define IPX_SPECIAL_NONE 0 +#define IPX_PRIMARY 1 +#define IPX_INTERNAL 2 + unsigned char ipx_node[IPX_NODE_LEN]; +}; +#endif /* __UAPI_DEF_IPX_INTERFACE_DEFINITION */ + +#if __UAPI_DEF_IPX_CONFIG_DATA +struct ipx_config_data { + unsigned char ipxcfg_auto_select_primary; + unsigned char ipxcfg_auto_create_interfaces; +}; +#endif /* __UAPI_DEF_IPX_CONFIG_DATA */ + +/* + * OLD Route Definition for backward compatibility. + */ + +#if __UAPI_DEF_IPX_ROUTE_DEF +struct ipx_route_def { + __be32 ipx_network; + __be32 ipx_router_network; +#define IPX_ROUTE_NO_ROUTER 0 + unsigned char ipx_router_node[IPX_NODE_LEN]; + unsigned char ipx_device[16]; + unsigned short ipx_flags; +#define IPX_RT_SNAP 8 +#define IPX_RT_8022 4 +#define IPX_RT_BLUEBOOK 2 +#define IPX_RT_ROUTED 1 +}; +#endif /* __UAPI_DEF_IPX_ROUTE_DEF */ + +#define SIOCAIPXITFCRT (SIOCPROTOPRIVATE) +#define SIOCAIPXPRISLT (SIOCPROTOPRIVATE + 1) +#define SIOCIPXCFGDATA (SIOCPROTOPRIVATE + 2) +#define SIOCIPXNCPCONN (SIOCPROTOPRIVATE + 3) +#endif /* _IPX_H_ */ diff --git a/original/uapi/linux/kexec.h b/original/uapi/linux/kexec.h index 778dc19..05669c8 100644 --- a/original/uapi/linux/kexec.h +++ b/original/uapi/linux/kexec.h @@ -42,7 +42,6 @@ #define KEXEC_ARCH_MIPS_LE (10 << 16) #define KEXEC_ARCH_MIPS ( 8 << 16) #define KEXEC_ARCH_AARCH64 (183 << 16) -#define KEXEC_ARCH_RISCV (243 << 16) /* The artificial cap on the number of segments passed to kexec_load. */ #define KEXEC_SEGMENT_MAX 16 diff --git a/original/uapi/linux/kfd_ioctl.h b/original/uapi/linux/kfd_ioctl.h index af96af1..695b606 100644 --- a/original/uapi/linux/kfd_ioctl.h +++ b/original/uapi/linux/kfd_ioctl.h @@ -29,12 +29,9 @@ /* * - 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 - * - 1.6 - Query clear flags in SVM get_attr API */ #define KFD_IOCTL_MAJOR_VERSION 1 -#define KFD_IOCTL_MINOR_VERSION 6 +#define KFD_IOCTL_MINOR_VERSION 3 struct kfd_ioctl_get_version_args { __u32 major_version; /* from KFD */ @@ -354,7 +351,6 @@ struct kfd_ioctl_acquire_vm_args { #define KFD_IOC_ALLOC_MEM_FLAGS_NO_SUBSTITUTE (1 << 28) #define KFD_IOC_ALLOC_MEM_FLAGS_AQL_QUEUE_MEM (1 << 27) #define KFD_IOC_ALLOC_MEM_FLAGS_COHERENT (1 << 26) -#define KFD_IOC_ALLOC_MEM_FLAGS_UNCACHED (1 << 25) /* Allocate memory for later SVM (shared virtual memory) mapping. * @@ -475,168 +471,6 @@ 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. That means, a flag will be set in the - * output, if that flag is set for all pages in the range. For - * @KFD_IOCTL_SVM_ATTR_CLR_FLAGS, flags of all pages will be - * aggregated by bitwise NOR. That means, a flag will be set in the - * output, if that flag is clear for all pages in the range. - * 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. - */ -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) @@ -737,12 +571,7 @@ struct kfd_ioctl_set_xnack_mode_args { #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 0x22 +#define AMDKFD_COMMAND_END 0x20 #endif diff --git a/original/uapi/linux/kfd_sysfs.h b/original/uapi/linux/kfd_sysfs.h deleted file mode 100644 index 3e330f3..0000000 --- a/original/uapi/linux/kfd_sysfs.h +++ /dev/null @@ -1,108 +0,0 @@ -/* SPDX-License-Identifier: (GPL-2.0 WITH Linux-syscall-note) OR MIT */ -/* - * Copyright 2021 Advanced Micro Devices, Inc. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR - * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - */ - -#ifndef KFD_SYSFS_H_INCLUDED -#define KFD_SYSFS_H_INCLUDED - -/* Capability bits in node properties */ -#define HSA_CAP_HOT_PLUGGABLE 0x00000001 -#define HSA_CAP_ATS_PRESENT 0x00000002 -#define HSA_CAP_SHARED_WITH_GRAPHICS 0x00000004 -#define HSA_CAP_QUEUE_SIZE_POW2 0x00000008 -#define HSA_CAP_QUEUE_SIZE_32BIT 0x00000010 -#define HSA_CAP_QUEUE_IDLE_EVENT 0x00000020 -#define HSA_CAP_VA_LIMIT 0x00000040 -#define HSA_CAP_WATCH_POINTS_SUPPORTED 0x00000080 -#define HSA_CAP_WATCH_POINTS_TOTALBITS_MASK 0x00000f00 -#define HSA_CAP_WATCH_POINTS_TOTALBITS_SHIFT 8 -#define HSA_CAP_DOORBELL_TYPE_TOTALBITS_MASK 0x00003000 -#define HSA_CAP_DOORBELL_TYPE_TOTALBITS_SHIFT 12 - -#define HSA_CAP_DOORBELL_TYPE_PRE_1_0 0x0 -#define HSA_CAP_DOORBELL_TYPE_1_0 0x1 -#define HSA_CAP_DOORBELL_TYPE_2_0 0x2 -#define HSA_CAP_AQL_QUEUE_DOUBLE_MAP 0x00004000 - -/* Old buggy user mode depends on this being 0 */ -#define HSA_CAP_RESERVED_WAS_SRAM_EDCSUPPORTED 0x00080000 - -#define HSA_CAP_MEM_EDCSUPPORTED 0x00100000 -#define HSA_CAP_RASEVENTNOTIFY 0x00200000 -#define HSA_CAP_ASIC_REVISION_MASK 0x03c00000 -#define HSA_CAP_ASIC_REVISION_SHIFT 22 -#define HSA_CAP_SRAM_EDCSUPPORTED 0x04000000 -#define HSA_CAP_SVMAPI_SUPPORTED 0x08000000 -#define HSA_CAP_FLAGS_COHERENTHOSTACCESS 0x10000000 -#define HSA_CAP_RESERVED 0xe00f8000 - -/* Heap types in memory properties */ -#define HSA_MEM_HEAP_TYPE_SYSTEM 0 -#define HSA_MEM_HEAP_TYPE_FB_PUBLIC 1 -#define HSA_MEM_HEAP_TYPE_FB_PRIVATE 2 -#define HSA_MEM_HEAP_TYPE_GPU_GDS 3 -#define HSA_MEM_HEAP_TYPE_GPU_LDS 4 -#define HSA_MEM_HEAP_TYPE_GPU_SCRATCH 5 - -/* Flag bits in memory properties */ -#define HSA_MEM_FLAGS_HOT_PLUGGABLE 0x00000001 -#define HSA_MEM_FLAGS_NON_VOLATILE 0x00000002 -#define HSA_MEM_FLAGS_RESERVED 0xfffffffc - -/* Cache types in cache properties */ -#define HSA_CACHE_TYPE_DATA 0x00000001 -#define HSA_CACHE_TYPE_INSTRUCTION 0x00000002 -#define HSA_CACHE_TYPE_CPU 0x00000004 -#define HSA_CACHE_TYPE_HSACU 0x00000008 -#define HSA_CACHE_TYPE_RESERVED 0xfffffff0 - -/* Link types in IO link properties (matches CRAT link types) */ -#define HSA_IOLINK_TYPE_UNDEFINED 0 -#define HSA_IOLINK_TYPE_HYPERTRANSPORT 1 -#define HSA_IOLINK_TYPE_PCIEXPRESS 2 -#define HSA_IOLINK_TYPE_AMBA 3 -#define HSA_IOLINK_TYPE_MIPI 4 -#define HSA_IOLINK_TYPE_QPI_1_1 5 -#define HSA_IOLINK_TYPE_RESERVED1 6 -#define HSA_IOLINK_TYPE_RESERVED2 7 -#define HSA_IOLINK_TYPE_RAPID_IO 8 -#define HSA_IOLINK_TYPE_INFINIBAND 9 -#define HSA_IOLINK_TYPE_RESERVED3 10 -#define HSA_IOLINK_TYPE_XGMI 11 -#define HSA_IOLINK_TYPE_XGOP 12 -#define HSA_IOLINK_TYPE_GZ 13 -#define HSA_IOLINK_TYPE_ETHERNET_RDMA 14 -#define HSA_IOLINK_TYPE_RDMA_OTHER 15 -#define HSA_IOLINK_TYPE_OTHER 16 - -/* Flag bits in IO link properties (matches CRAT flags, excluding the - * bi-directional flag, which is not offially part of the CRAT spec, and - * only used internally in KFD) - */ -#define HSA_IOLINK_FLAGS_ENABLED (1 << 0) -#define HSA_IOLINK_FLAGS_NON_COHERENT (1 << 1) -#define HSA_IOLINK_FLAGS_NO_ATOMICS_32_BIT (1 << 2) -#define HSA_IOLINK_FLAGS_NO_ATOMICS_64_BIT (1 << 3) -#define HSA_IOLINK_FLAGS_NO_PEER_TO_PEER_DMA (1 << 4) -#define HSA_IOLINK_FLAGS_RESERVED 0xffffffe0 - -#endif diff --git a/original/uapi/linux/kvm.h b/original/uapi/linux/kvm.h index 507ee1f..f6afee2 100644 --- a/original/uapi/linux/kvm.h +++ b/original/uapi/linux/kvm.h @@ -8,7 +8,6 @@ * Note: you must update KVM_API_VERSION if you change this interface. */ -#include <linux/const.h> #include <linux/types.h> #include <linux/compiler.h> #include <linux/ioctl.h> @@ -269,7 +268,6 @@ struct kvm_xen_exit { #define KVM_EXIT_AP_RESET_HOLD 32 #define KVM_EXIT_X86_BUS_LOCK 33 #define KVM_EXIT_XEN 34 -#define KVM_EXIT_RISCV_SBI 35 /* For KVM_EXIT_INTERNAL_ERROR */ /* Emulate instruction failed. */ @@ -281,9 +279,6 @@ 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 */ @@ -387,35 +382,6 @@ 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). - * - * Space beyond the defined fields may be used to store arbitrary - * debug information relating to the emulation failure. It is - * accounted for in "ndata" but the format is unspecified and is - * not represented in "flags". Any such information is *not* ABI! - */ - struct { - __u32 suberror; - __u32 ndata; - __u64 flags; - union { - struct { - __u8 insn_size; - __u8 insn_bytes[15]; - }; - }; - /* Arbitrary debug data may follow. */ - } emulation_failure; /* KVM_EXIT_OSI */ struct { __u64 gprs[32]; @@ -480,13 +446,6 @@ struct kvm_run { } msr; /* KVM_EXIT_XEN */ struct kvm_xen_exit xen; - /* KVM_EXIT_RISCV_SBI */ - struct { - unsigned long extension_id; - unsigned long function_id; - unsigned long args[6]; - unsigned long ret[2]; - } riscv_sbi; /* Fix the size of the union. */ char padding[256]; }; @@ -1119,22 +1078,6 @@ struct kvm_ppc_resize_hpt { #define KVM_CAP_DIRTY_LOG_RING 192 #define KVM_CAP_X86_BUS_LOCK_EXIT 193 #define KVM_CAP_PPC_DAWR1 194 -#define KVM_CAP_SET_GUEST_DEBUG2 195 -#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 -#define KVM_CAP_VM_MOVE_ENC_CONTEXT_FROM 206 -#define KVM_CAP_VM_GPA_BITS 207 -#define KVM_CAP_XSAVE2 208 -#define KVM_CAP_SYS_ATTRIBUTES 209 -#define KVM_CAP_PPC_AIL_MODE_3 210 #ifdef KVM_CAP_IRQ_ROUTING @@ -1166,20 +1109,11 @@ struct kvm_irq_routing_hv_sint { __u32 sint; }; -struct kvm_irq_routing_xen_evtchn { - __u32 port; - __u32 vcpu; - __u32 priority; -}; - -#define KVM_IRQ_ROUTING_XEN_EVTCHN_PRIO_2LEVEL ((__u32)(-1)) - /* gsi routing entry types */ #define KVM_IRQ_ROUTING_IRQCHIP 1 #define KVM_IRQ_ROUTING_MSI 2 #define KVM_IRQ_ROUTING_S390_ADAPTER 3 #define KVM_IRQ_ROUTING_HV_SINT 4 -#define KVM_IRQ_ROUTING_XEN_EVTCHN 5 struct kvm_irq_routing_entry { __u32 gsi; @@ -1191,7 +1125,6 @@ struct kvm_irq_routing_entry { struct kvm_irq_routing_msi msi; struct kvm_irq_routing_s390_adapter adapter; struct kvm_irq_routing_hv_sint hv_sint; - struct kvm_irq_routing_xen_evtchn xen_evtchn; __u32 pad[8]; } u; }; @@ -1222,7 +1155,6 @@ struct kvm_x86_mce { #define KVM_XEN_HVM_CONFIG_INTERCEPT_HCALL (1 << 1) #define KVM_XEN_HVM_CONFIG_SHARED_INFO (1 << 2) #define KVM_XEN_HVM_CONFIG_RUNSTATE (1 << 3) -#define KVM_XEN_HVM_CONFIG_EVTCHN_2LEVEL (1 << 4) struct kvm_xen_hvm_config { __u32 flags; @@ -1257,16 +1189,11 @@ struct kvm_irqfd { /* Do not use 1, KVM_CHECK_EXTENSION returned it before we had flags. */ #define KVM_CLOCK_TSC_STABLE 2 -#define KVM_CLOCK_REALTIME (1 << 2) -#define KVM_CLOCK_HOST_TSC (1 << 3) struct kvm_clock_data { __u64 clock; __u32 flags; - __u32 pad0; - __u64 realtime; - __u64 host_tsc; - __u32 pad[4]; + __u32 pad[9]; }; /* For KVM_CAP_SW_TLB */ @@ -1496,7 +1423,6 @@ 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) @@ -1690,9 +1616,6 @@ 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]; @@ -1748,8 +1671,6 @@ enum sev_cmd_id { KVM_SEV_CERT_EXPORT, /* Attestation report */ KVM_SEV_GET_ATTESTATION_REPORT, - /* Guest Migration Extension */ - KVM_SEV_SEND_CANCEL, KVM_SEV_NR_MAX, }; @@ -1808,45 +1729,6 @@ struct kvm_sev_attestation_report { __u32 len; }; -struct kvm_sev_send_start { - __u32 policy; - __u64 pdh_cert_uaddr; - __u32 pdh_cert_len; - __u64 plat_certs_uaddr; - __u32 plat_certs_len; - __u64 amd_certs_uaddr; - __u32 amd_certs_len; - __u64 session_uaddr; - __u32 session_len; -}; - -struct kvm_sev_send_update_data { - __u64 hdr_uaddr; - __u32 hdr_len; - __u64 guest_uaddr; - __u32 guest_len; - __u64 trans_uaddr; - __u32 trans_len; -}; - -struct kvm_sev_receive_start { - __u32 handle; - __u32 policy; - __u64 pdh_uaddr; - __u32 pdh_len; - __u64 session_uaddr; - __u32 session_len; -}; - -struct kvm_sev_receive_update_data { - __u64 hdr_uaddr; - __u32 hdr_len; - __u64 guest_uaddr; - __u32 guest_len; - __u64 trans_uaddr; - __u32 trans_len; -}; - #define KVM_DEV_ASSIGN_ENABLE_IOMMU (1 << 0) #define KVM_DEV_ASSIGN_PCI_2_3 (1 << 1) #define KVM_DEV_ASSIGN_MASK_INTX (1 << 2) @@ -1952,8 +1834,8 @@ struct kvm_hyperv_eventfd { * conversion after harvesting an entry. Also, it must not skip any * dirty bits, so that dirty bits are always harvested in sequence. */ -#define KVM_DIRTY_GFN_F_DIRTY _BITUL(0) -#define KVM_DIRTY_GFN_F_RESET _BITUL(1) +#define KVM_DIRTY_GFN_F_DIRTY BIT(0) +#define KVM_DIRTY_GFN_F_RESET BIT(1) #define KVM_DIRTY_GFN_F_MASK 0x3 /* @@ -1971,82 +1853,4 @@ 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_LINEAR_HIST (0x3 << KVM_STATS_TYPE_SHIFT) -#define KVM_STATS_TYPE_LOG_HIST (0x4 << KVM_STATS_TYPE_SHIFT) -#define KVM_STATS_TYPE_MAX KVM_STATS_TYPE_LOG_HIST - -#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 - * structure kvm or kvm_vcpu. - * @bucket_size: A parameter value used for histogram stats. It is only used - * for linear histogram stats, specifying the size of the bucket; - * @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 bucket_size; - char name[]; -}; - -#define KVM_GET_STATS_FD _IO(KVMIO, 0xce) - -/* Available with KVM_CAP_XSAVE2 */ -#define KVM_GET_XSAVE2 _IOR(KVMIO, 0xcf, struct kvm_xsave) - #endif /* __LINUX_KVM_H */ diff --git a/original/uapi/linux/kvm_para.h b/original/uapi/linux/kvm_para.h index 960c7e9..8b86609 100644 --- a/original/uapi/linux/kvm_para.h +++ b/original/uapi/linux/kvm_para.h @@ -29,7 +29,6 @@ #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 diff --git a/original/uapi/linux/landlock.h b/original/uapi/linux/landlock.h deleted file mode 100644 index b3d9520..0000000 --- a/original/uapi/linux/landlock.h +++ /dev/null @@ -1,137 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ -/* - * Landlock - User space API - * - * Copyright © 2017-2020 Mickaël Salaün <mic@digikod.net> - * Copyright © 2018-2020 ANSSI - */ - -#ifndef _UAPI_LINUX_LANDLOCK_H -#define _UAPI_LINUX_LANDLOCK_H - -#include <linux/types.h> - -/** - * struct landlock_ruleset_attr - Ruleset definition - * - * Argument of sys_landlock_create_ruleset(). This structure can grow in - * future versions. - */ -struct landlock_ruleset_attr { - /** - * @handled_access_fs: Bitmask of actions (cf. `Filesystem flags`_) - * that is handled by this ruleset and should then be forbidden if no - * rule explicitly allow them. This is needed for backward - * compatibility reasons. - */ - __u64 handled_access_fs; -}; - -/* - * sys_landlock_create_ruleset() flags: - * - * - %LANDLOCK_CREATE_RULESET_VERSION: Get the highest supported Landlock ABI - * version. - */ -#define LANDLOCK_CREATE_RULESET_VERSION (1U << 0) - -/** - * enum landlock_rule_type - Landlock rule type - * - * Argument of sys_landlock_add_rule(). - */ -enum landlock_rule_type { - /** - * @LANDLOCK_RULE_PATH_BENEATH: Type of a &struct - * landlock_path_beneath_attr . - */ - LANDLOCK_RULE_PATH_BENEATH = 1, -}; - -/** - * struct landlock_path_beneath_attr - Path hierarchy definition - * - * Argument of sys_landlock_add_rule(). - */ -struct landlock_path_beneath_attr { - /** - * @allowed_access: Bitmask of allowed actions for this file hierarchy - * (cf. `Filesystem flags`_). - */ - __u64 allowed_access; - /** - * @parent_fd: File descriptor, open with ``O_PATH``, which identifies - * the parent directory of a file hierarchy, or just a file. - */ - __s32 parent_fd; - /* - * This struct is packed to avoid trailing reserved members. - * Cf. security/landlock/syscalls.c:build_check_abi() - */ -} __attribute__((packed)); - -/** - * DOC: fs_access - * - * A set of actions on kernel objects may be defined by an attribute (e.g. - * &struct landlock_path_beneath_attr) including a bitmask of access. - * - * Filesystem flags - * ~~~~~~~~~~~~~~~~ - * - * These flags enable to restrict a sandboxed process to a set of actions on - * files and directories. Files or directories opened before the sandboxing - * are not subject to these restrictions. - * - * A file can only receive these access rights: - * - * - %LANDLOCK_ACCESS_FS_EXECUTE: Execute a file. - * - %LANDLOCK_ACCESS_FS_WRITE_FILE: Open a file with write access. - * - %LANDLOCK_ACCESS_FS_READ_FILE: Open a file with read access. - * - * A directory can receive access rights related to files or directories. The - * following access right is applied to the directory itself, and the - * directories beneath it: - * - * - %LANDLOCK_ACCESS_FS_READ_DIR: Open a directory or list its content. - * - * However, the following access rights only apply to the content of a - * directory, not the directory itself: - * - * - %LANDLOCK_ACCESS_FS_REMOVE_DIR: Remove an empty directory or rename one. - * - %LANDLOCK_ACCESS_FS_REMOVE_FILE: Unlink (or rename) a file. - * - %LANDLOCK_ACCESS_FS_MAKE_CHAR: Create (or rename or link) a character - * device. - * - %LANDLOCK_ACCESS_FS_MAKE_DIR: Create (or rename) a directory. - * - %LANDLOCK_ACCESS_FS_MAKE_REG: Create (or rename or link) a regular file. - * - %LANDLOCK_ACCESS_FS_MAKE_SOCK: Create (or rename or link) a UNIX domain - * socket. - * - %LANDLOCK_ACCESS_FS_MAKE_FIFO: Create (or rename or link) a named pipe. - * - %LANDLOCK_ACCESS_FS_MAKE_BLOCK: Create (or rename or link) a block device. - * - %LANDLOCK_ACCESS_FS_MAKE_SYM: Create (or rename or link) a symbolic link. - * - * .. warning:: - * - * It is currently not possible to restrict some file-related actions - * accessible through these syscall families: :manpage:`chdir(2)`, - * :manpage:`truncate(2)`, :manpage:`stat(2)`, :manpage:`flock(2)`, - * :manpage:`chmod(2)`, :manpage:`chown(2)`, :manpage:`setxattr(2)`, - * :manpage:`utime(2)`, :manpage:`ioctl(2)`, :manpage:`fcntl(2)`, - * :manpage:`access(2)`. - * Future Landlock evolutions will enable to restrict them. - */ -#define LANDLOCK_ACCESS_FS_EXECUTE (1ULL << 0) -#define LANDLOCK_ACCESS_FS_WRITE_FILE (1ULL << 1) -#define LANDLOCK_ACCESS_FS_READ_FILE (1ULL << 2) -#define LANDLOCK_ACCESS_FS_READ_DIR (1ULL << 3) -#define LANDLOCK_ACCESS_FS_REMOVE_DIR (1ULL << 4) -#define LANDLOCK_ACCESS_FS_REMOVE_FILE (1ULL << 5) -#define LANDLOCK_ACCESS_FS_MAKE_CHAR (1ULL << 6) -#define LANDLOCK_ACCESS_FS_MAKE_DIR (1ULL << 7) -#define LANDLOCK_ACCESS_FS_MAKE_REG (1ULL << 8) -#define LANDLOCK_ACCESS_FS_MAKE_SOCK (1ULL << 9) -#define LANDLOCK_ACCESS_FS_MAKE_FIFO (1ULL << 10) -#define LANDLOCK_ACCESS_FS_MAKE_BLOCK (1ULL << 11) -#define LANDLOCK_ACCESS_FS_MAKE_SYM (1ULL << 12) - -#endif /* _UAPI_LINUX_LANDLOCK_H */ diff --git a/original/uapi/linux/lightnvm.h b/original/uapi/linux/lightnvm.h new file mode 100644 index 0000000..ead2e72 --- /dev/null +++ b/original/uapi/linux/lightnvm.h @@ -0,0 +1,225 @@ +/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ +/* + * Copyright (C) 2015 CNEX Labs. All rights reserved. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License version + * 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; see the file COPYING. If not, write to + * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, + * USA. + */ + +#ifndef _UAPI_LINUX_LIGHTNVM_H +#define _UAPI_LINUX_LIGHTNVM_H + +#ifdef __KERNEL__ +#include <linux/const.h> +#include <linux/ioctl.h> +#else /* __KERNEL__ */ +#include <stdio.h> +#include <sys/ioctl.h> +#define DISK_NAME_LEN 32 +#endif /* __KERNEL__ */ + +#include <linux/types.h> +#include <linux/ioctl.h> + +#define NVM_TTYPE_NAME_MAX 48 +#define NVM_TTYPE_MAX 63 +#define NVM_MMTYPE_LEN 8 + +#define NVM_CTRL_FILE "/dev/lightnvm/control" + +struct nvm_ioctl_info_tgt { + __u32 version[3]; + __u32 reserved; + char tgtname[NVM_TTYPE_NAME_MAX]; +}; + +struct nvm_ioctl_info { + __u32 version[3]; /* in/out - major, minor, patch */ + __u16 tgtsize; /* number of targets */ + __u16 reserved16; /* pad to 4K page */ + __u32 reserved[12]; + struct nvm_ioctl_info_tgt tgts[NVM_TTYPE_MAX]; +}; + +enum { + NVM_DEVICE_ACTIVE = 1 << 0, +}; + +struct nvm_ioctl_device_info { + char devname[DISK_NAME_LEN]; + char bmname[NVM_TTYPE_NAME_MAX]; + __u32 bmversion[3]; + __u32 flags; + __u32 reserved[8]; +}; + +struct nvm_ioctl_get_devices { + __u32 nr_devices; + __u32 reserved[31]; + struct nvm_ioctl_device_info info[31]; +}; + +struct nvm_ioctl_create_simple { + __u32 lun_begin; + __u32 lun_end; +}; + +struct nvm_ioctl_create_extended { + __u16 lun_begin; + __u16 lun_end; + __u16 op; + __u16 rsv; +}; + +enum { + NVM_CONFIG_TYPE_SIMPLE = 0, + NVM_CONFIG_TYPE_EXTENDED = 1, +}; + +struct nvm_ioctl_create_conf { + __u32 type; + union { + struct nvm_ioctl_create_simple s; + struct nvm_ioctl_create_extended e; + }; +}; + +enum { + NVM_TARGET_FACTORY = 1 << 0, /* Init target in factory mode */ +}; + +struct nvm_ioctl_create { + char dev[DISK_NAME_LEN]; /* open-channel SSD device */ + char tgttype[NVM_TTYPE_NAME_MAX]; /* target type name */ + char tgtname[DISK_NAME_LEN]; /* dev to expose target as */ + + __u32 flags; + + struct nvm_ioctl_create_conf conf; +}; + +struct nvm_ioctl_remove { + char tgtname[DISK_NAME_LEN]; + + __u32 flags; +}; + +struct nvm_ioctl_dev_init { + char dev[DISK_NAME_LEN]; /* open-channel SSD device */ + char mmtype[NVM_MMTYPE_LEN]; /* register to media manager */ + + __u32 flags; +}; + +enum { + NVM_FACTORY_ERASE_ONLY_USER = 1 << 0, /* erase only blocks used as + * host blks or grown blks */ + NVM_FACTORY_RESET_HOST_BLKS = 1 << 1, /* remove host blk marks */ + NVM_FACTORY_RESET_GRWN_BBLKS = 1 << 2, /* remove grown blk marks */ + NVM_FACTORY_NR_BITS = 1 << 3, /* stops here */ +}; + +struct nvm_ioctl_dev_factory { + char dev[DISK_NAME_LEN]; + + __u32 flags; +}; + +struct nvm_user_vio { + __u8 opcode; + __u8 flags; + __u16 control; + __u16 nppas; + __u16 rsvd; + __u64 metadata; + __u64 addr; + __u64 ppa_list; + __u32 metadata_len; + __u32 data_len; + __u64 status; + __u32 result; + __u32 rsvd3[3]; +}; + +struct nvm_passthru_vio { + __u8 opcode; + __u8 flags; + __u8 rsvd[2]; + __u32 nsid; + __u32 cdw2; + __u32 cdw3; + __u64 metadata; + __u64 addr; + __u32 metadata_len; + __u32 data_len; + __u64 ppa_list; + __u16 nppas; + __u16 control; + __u32 cdw13; + __u32 cdw14; + __u32 cdw15; + __u64 status; + __u32 result; + __u32 timeout_ms; +}; + +/* The ioctl type, 'L', 0x20 - 0x2F documented in ioctl-number.txt */ +enum { + /* top level cmds */ + NVM_INFO_CMD = 0x20, + NVM_GET_DEVICES_CMD, + + /* device level cmds */ + NVM_DEV_CREATE_CMD, + NVM_DEV_REMOVE_CMD, + + /* Init a device to support LightNVM media managers */ + NVM_DEV_INIT_CMD, + + /* Factory reset device */ + NVM_DEV_FACTORY_CMD, + + /* Vector user I/O */ + NVM_DEV_VIO_ADMIN_CMD = 0x41, + NVM_DEV_VIO_CMD = 0x42, + NVM_DEV_VIO_USER_CMD = 0x43, +}; + +#define NVM_IOCTL 'L' /* 0x4c */ + +#define NVM_INFO _IOWR(NVM_IOCTL, NVM_INFO_CMD, \ + struct nvm_ioctl_info) +#define NVM_GET_DEVICES _IOR(NVM_IOCTL, NVM_GET_DEVICES_CMD, \ + struct nvm_ioctl_get_devices) +#define NVM_DEV_CREATE _IOW(NVM_IOCTL, NVM_DEV_CREATE_CMD, \ + struct nvm_ioctl_create) +#define NVM_DEV_REMOVE _IOW(NVM_IOCTL, NVM_DEV_REMOVE_CMD, \ + struct nvm_ioctl_remove) +#define NVM_DEV_INIT _IOW(NVM_IOCTL, NVM_DEV_INIT_CMD, \ + struct nvm_ioctl_dev_init) +#define NVM_DEV_FACTORY _IOW(NVM_IOCTL, NVM_DEV_FACTORY_CMD, \ + struct nvm_ioctl_dev_factory) + +#define NVME_NVM_IOCTL_IO_VIO _IOWR(NVM_IOCTL, NVM_DEV_VIO_USER_CMD, \ + struct nvm_passthru_vio) +#define NVME_NVM_IOCTL_ADMIN_VIO _IOWR(NVM_IOCTL, NVM_DEV_VIO_ADMIN_CMD,\ + struct nvm_passthru_vio) +#define NVME_NVM_IOCTL_SUBMIT_VIO _IOWR(NVM_IOCTL, NVM_DEV_VIO_CMD,\ + struct nvm_user_vio) + +#define NVM_VERSION_MAJOR 1 +#define NVM_VERSION_MINOR 0 +#define NVM_VERSION_PATCHLEVEL 0 + +#endif diff --git a/original/uapi/linux/lirc.h b/original/uapi/linux/lirc.h index 9919f20..c45a4ea 100644 --- a/original/uapi/linux/lirc.h +++ b/original/uapi/linux/lirc.h @@ -1,6 +1,7 @@ /* 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 diff --git a/original/uapi/linux/lwtunnel.h b/original/uapi/linux/lwtunnel.h index 2e20691..568a430 100644 --- a/original/uapi/linux/lwtunnel.h +++ b/original/uapi/linux/lwtunnel.h @@ -14,7 +14,6 @@ enum lwtunnel_encap_types { LWTUNNEL_ENCAP_BPF, LWTUNNEL_ENCAP_SEG6_LOCAL, LWTUNNEL_ENCAP_RPL, - LWTUNNEL_ENCAP_IOAM6, __LWTUNNEL_ENCAP_MAX, }; diff --git a/original/uapi/linux/magic.h b/original/uapi/linux/magic.h index f724129..f3956fc 100644 --- a/original/uapi/linux/magic.h +++ b/original/uapi/linux/magic.h @@ -6,7 +6,6 @@ #define AFFS_SUPER_MAGIC 0xadff #define AFS_SUPER_MAGIC 0x5346414F #define AUTOFS_SUPER_MAGIC 0x0187 -#define CEPH_SUPER_MAGIC 0x00c36400 #define CODA_SUPER_MAGIC 0x73757245 #define CRAMFS_MAGIC 0x28cd3d45 /* some random number */ #define CRAMFS_MAGIC_WEND 0x453dcd28 /* magic number with the wrong endianess */ @@ -36,7 +35,6 @@ #define EFIVARFS_MAGIC 0xde5e81e4 #define HOSTFS_SUPER_MAGIC 0x00c0ffee #define OVERLAYFS_SUPER_MAGIC 0x794c7630 -#define FUSE_SUPER_MAGIC 0x65735546 #define MINIX_SUPER_MAGIC 0x137F /* minix v1 fs, 14 char names */ #define MINIX_SUPER_MAGIC2 0x138F /* minix v1 fs, 30 char names */ @@ -45,7 +43,6 @@ #define MINIX3_SUPER_MAGIC 0x4d5a /* minix v3 fs, 60 char names */ #define MSDOS_SUPER_MAGIC 0x4d44 /* MD */ -#define EXFAT_SUPER_MAGIC 0x2011BAB0 #define NCP_SUPER_MAGIC 0x564c /* Guess, what 0x564c is :-) */ #define NFS_SUPER_MAGIC 0x6969 #define OCFS2_SUPER_MAGIC 0x7461636f @@ -54,7 +51,6 @@ #define QNX6_SUPER_MAGIC 0x68191122 /* qnx6 fs detection */ #define AFS_FS_MAGIC 0x6B414653 - #define REISERFS_SUPER_MAGIC 0x52654973 /* used by gcc */ /* used by file system utilities that look at the superblock, etc. */ @@ -63,9 +59,6 @@ #define REISER2FS_JR_SUPER_MAGIC_STRING "ReIsEr3Fs" #define SMB_SUPER_MAGIC 0x517B -#define CIFS_SUPER_MAGIC 0xFF534D42 /* the first four bytes of SMB PDUs */ -#define SMB2_SUPER_MAGIC 0xFE534D42 - #define CGROUP_SUPER_MAGIC 0x27e0eb #define CGROUP2_SUPER_MAGIC 0x63677270 @@ -104,6 +97,5 @@ #define DEVMEM_MAGIC 0x454d444d /* "DMEM" */ #define Z3FOLD_MAGIC 0x33 #define PPC_CMM_MAGIC 0xc7571590 -#define SECRETMEM_MAGIC 0x5345434d /* "SECM" */ #endif /* __LINUX_MAGIC_H__ */ diff --git a/original/uapi/linux/major.h b/original/uapi/linux/major.h index 4e5f2b3..7e5fa8e 100644 --- a/original/uapi/linux/major.h +++ b/original/uapi/linux/major.h @@ -34,6 +34,8 @@ #define GOLDSTAR_CDROM_MAJOR 16 #define OPTICS_CDROM_MAJOR 17 #define SANYO_CDROM_MAJOR 18 +#define CYCLADES_MAJOR 19 +#define CYCLADESAUX_MAJOR 20 #define MITSUMI_X_CDROM_MAJOR 20 #define MFM_ACORN_MAJOR 21 /* ARM Linux /dev/mfm */ #define SCSI_GENERIC_MAJOR 21 diff --git a/original/uapi/linux/map_to_14segment.h b/original/uapi/linux/map_to_14segment.h deleted file mode 100644 index 0346ef7..0000000 --- a/original/uapi/linux/map_to_14segment.h +++ /dev/null @@ -1,241 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */ -/* - * Copyright (C) 2021 Glider bv - * - * Based on include/uapi/linux/map_to_7segment.h: - - * Copyright (c) 2005 Henk Vergonet <Henk.Vergonet@gmail.com> - */ - -#ifndef MAP_TO_14SEGMENT_H -#define MAP_TO_14SEGMENT_H - -/* This file provides translation primitives and tables for the conversion - * of (ASCII) characters to a 14-segments notation. - * - * The 14 segment's wikipedia notation below is used as standard. - * See: https://en.wikipedia.org/wiki/Fourteen-segment_display - * - * Notation: +---a---+ - * |\ | /| - * f h i j b - * | \|/ | - * +-g1+-g2+ - * | /|\ | - * e k l m c - * |/ | \| - * +---d---+ - * - * Usage: - * - * Register a map variable, and fill it with a character set: - * static SEG14_DEFAULT_MAP(map_seg14); - * - * - * Then use for conversion: - * seg14 = map_to_seg14(&map_seg14, some_char); - * ... - * - * In device drivers it is recommended, if required, to make the char map - * accessible via the sysfs interface using the following scheme: - * - * static ssize_t map_seg14_show(struct device *dev, - * struct device_attribute *attr, char *buf) - * { - * memcpy(buf, &map_seg14, sizeof(map_seg14)); - * return sizeof(map_seg14); - * } - * static ssize_t map_seg14_store(struct device *dev, - * struct device_attribute *attr, - * const char *buf, size_t cnt) - * { - * if (cnt != sizeof(map_seg14)) - * return -EINVAL; - * memcpy(&map_seg14, buf, cnt); - * return cnt; - * } - * static DEVICE_ATTR_RW(map_seg14); - */ -#include <linux/errno.h> -#include <linux/types.h> - -#include <asm/byteorder.h> - -#define BIT_SEG14_A 0 -#define BIT_SEG14_B 1 -#define BIT_SEG14_C 2 -#define BIT_SEG14_D 3 -#define BIT_SEG14_E 4 -#define BIT_SEG14_F 5 -#define BIT_SEG14_G1 6 -#define BIT_SEG14_G2 7 -#define BIT_SEG14_H 8 -#define BIT_SEG14_I 9 -#define BIT_SEG14_J 10 -#define BIT_SEG14_K 11 -#define BIT_SEG14_L 12 -#define BIT_SEG14_M 13 -#define BIT_SEG14_RESERVED1 14 -#define BIT_SEG14_RESERVED2 15 - -struct seg14_conversion_map { - __be16 table[128]; -}; - -static __inline__ int map_to_seg14(struct seg14_conversion_map *map, int c) -{ - if (c < 0 || c >= sizeof(map->table) / sizeof(map->table[0])) - return -EINVAL; - - return __be16_to_cpu(map->table[c]); -} - -#define SEG14_CONVERSION_MAP(_name, _map) \ - struct seg14_conversion_map _name = { .table = { _map } } - -/* - * It is recommended to use a facility that allows user space to redefine - * custom character sets for LCD devices. Please use a sysfs interface - * as described above. - */ -#define MAP_TO_SEG14_SYSFS_FILE "map_seg14" - -/******************************************************************************* - * ASCII conversion table - ******************************************************************************/ - -#define _SEG14(sym, a, b, c, d, e, f, g1, g2, h, j, k, l, m, n) \ - __cpu_to_be16( a << BIT_SEG14_A | b << BIT_SEG14_B | \ - c << BIT_SEG14_C | d << BIT_SEG14_D | \ - e << BIT_SEG14_E | f << BIT_SEG14_F | \ - g1 << BIT_SEG14_G1 | g2 << BIT_SEG14_G2 | \ - h << BIT_SEG14_H | j << BIT_SEG14_I | \ - k << BIT_SEG14_J | l << BIT_SEG14_K | \ - m << BIT_SEG14_L | n << BIT_SEG14_M ) - -#define _MAP_0_32_ASCII_SEG14_NON_PRINTABLE \ - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - -#define _MAP_33_47_ASCII_SEG14_SYMBOL \ - _SEG14('!', 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), \ - _SEG14('"', 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0), \ - _SEG14('#', 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0), \ - _SEG14('$', 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0), \ - _SEG14('%', 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0), \ - _SEG14('&', 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1), \ - _SEG14('\'',0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0), \ - _SEG14('(', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1), \ - _SEG14(')', 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0), \ - _SEG14('*', 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1), \ - _SEG14('+', 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0), \ - _SEG14(',', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0), \ - _SEG14('-', 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0), \ - _SEG14('.', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1), \ - _SEG14('/', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0), - -#define _MAP_48_57_ASCII_SEG14_NUMERIC \ - _SEG14('0', 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0), \ - _SEG14('1', 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0), \ - _SEG14('2', 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0), \ - _SEG14('3', 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0), \ - _SEG14('4', 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0), \ - _SEG14('5', 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1), \ - _SEG14('6', 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0), \ - _SEG14('7', 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0), \ - _SEG14('8', 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0), \ - _SEG14('9', 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0), - -#define _MAP_58_64_ASCII_SEG14_SYMBOL \ - _SEG14(':', 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0), \ - _SEG14(';', 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0), \ - _SEG14('<', 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1), \ - _SEG14('=', 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0), \ - _SEG14('>', 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0), \ - _SEG14('?', 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0), \ - _SEG14('@', 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0), - -#define _MAP_65_90_ASCII_SEG14_ALPHA_UPPER \ - _SEG14('A', 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0), \ - _SEG14('B', 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0), \ - _SEG14('C', 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0), \ - _SEG14('D', 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0), \ - _SEG14('E', 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0), \ - _SEG14('F', 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0), \ - _SEG14('G', 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0), \ - _SEG14('H', 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0), \ - _SEG14('I', 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0), \ - _SEG14('J', 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), \ - _SEG14('K', 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1), \ - _SEG14('L', 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0), \ - _SEG14('M', 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0), \ - _SEG14('N', 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1), \ - _SEG14('O', 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0), \ - _SEG14('P', 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0), \ - _SEG14('Q', 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1), \ - _SEG14('R', 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1), \ - _SEG14('S', 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0), \ - _SEG14('T', 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0), \ - _SEG14('U', 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0), \ - _SEG14('V', 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0), \ - _SEG14('W', 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1), \ - _SEG14('X', 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1), \ - _SEG14('Y', 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0), \ - _SEG14('Z', 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0), - -#define _MAP_91_96_ASCII_SEG14_SYMBOL \ - _SEG14('[', 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0), \ - _SEG14('\\',0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1), \ - _SEG14(']', 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), \ - _SEG14('^', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1), \ - _SEG14('_', 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), \ - _SEG14('`', 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0), - -#define _MAP_97_122_ASCII_SEG14_ALPHA_LOWER \ - _SEG14('a', 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0), \ - _SEG14('b', 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1), \ - _SEG14('c', 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0), \ - _SEG14('d', 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0), \ - _SEG14('e', 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0), \ - _SEG14('f', 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0), \ - _SEG14('g', 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0), \ - _SEG14('h', 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0), \ - _SEG14('i', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0), \ - _SEG14('j', 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0), \ - _SEG14('k', 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1), \ - _SEG14('l', 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0), \ - _SEG14('m', 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0), \ - _SEG14('n', 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0), \ - _SEG14('o', 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0), \ - _SEG14('p', 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0), \ - _SEG14('q', 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0), \ - _SEG14('r', 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0), \ - _SEG14('s', 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1), \ - _SEG14('t', 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0), \ - _SEG14('u', 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0), \ - _SEG14('v', 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0), \ - _SEG14('w', 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1), \ - _SEG14('x', 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1), \ - _SEG14('y', 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0), \ - _SEG14('z', 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0), - -#define _MAP_123_126_ASCII_SEG14_SYMBOL \ - _SEG14('{', 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0), \ - _SEG14('|', 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0), \ - _SEG14('}', 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1), \ - _SEG14('~', 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0), - -/* Maps */ -#define MAP_ASCII14SEG_ALPHANUM \ - _MAP_0_32_ASCII_SEG14_NON_PRINTABLE \ - _MAP_33_47_ASCII_SEG14_SYMBOL \ - _MAP_48_57_ASCII_SEG14_NUMERIC \ - _MAP_58_64_ASCII_SEG14_SYMBOL \ - _MAP_65_90_ASCII_SEG14_ALPHA_UPPER \ - _MAP_91_96_ASCII_SEG14_SYMBOL \ - _MAP_97_122_ASCII_SEG14_ALPHA_LOWER \ - _MAP_123_126_ASCII_SEG14_SYMBOL - -#define SEG14_DEFAULT_MAP(_name) \ - SEG14_CONVERSION_MAP(_name, MAP_ASCII14SEG_ALPHANUM) - -#endif /* MAP_TO_14SEGMENT_H */ diff --git a/original/uapi/linux/map_to_7segment.h b/original/uapi/linux/map_to_7segment.h index 04c8b55..8b02088 100644 --- a/original/uapi/linux/map_to_7segment.h +++ b/original/uapi/linux/map_to_7segment.h @@ -1,6 +1,20 @@ /* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */ /* * Copyright (c) 2005 Henk Vergonet <Henk.Vergonet@gmail.com> + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #ifndef MAP_TO_7SEGMENT_H diff --git a/original/uapi/linux/mctp.h b/original/uapi/linux/mctp.h deleted file mode 100644 index 07b0318..0000000 --- a/original/uapi/linux/mctp.h +++ /dev/null @@ -1,50 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ -/* - * Management Component Transport Protocol (MCTP) - * - * Copyright (c) 2021 Code Construct - * Copyright (c) 2021 Google - */ - -#ifndef __UAPI_MCTP_H -#define __UAPI_MCTP_H - -#include <linux/types.h> -#include <linux/socket.h> -#include <linux/netdevice.h> - -typedef __u8 mctp_eid_t; - -struct mctp_addr { - mctp_eid_t s_addr; -}; - -struct sockaddr_mctp { - __kernel_sa_family_t smctp_family; - __u16 __smctp_pad0; - unsigned int smctp_network; - struct mctp_addr smctp_addr; - __u8 smctp_type; - __u8 smctp_tag; - __u8 __smctp_pad1; -}; - -struct sockaddr_mctp_ext { - struct sockaddr_mctp smctp_base; - int smctp_ifindex; - __u8 smctp_halen; - __u8 __smctp_pad0[3]; - __u8 smctp_haddr[MAX_ADDR_LEN]; -}; - -#define MCTP_NET_ANY 0x0 - -#define MCTP_ADDR_NULL 0x00 -#define MCTP_ADDR_ANY 0xff - -#define MCTP_TAG_MASK 0x07 -#define MCTP_TAG_OWNER 0x08 - -#define MCTP_OPT_ADDR_EXT 1 - -#endif /* __UAPI_MCTP_H */ diff --git a/original/uapi/linux/mdio.h b/original/uapi/linux/mdio.h index c54e6ea..3f302e2 100644 --- a/original/uapi/linux/mdio.h +++ b/original/uapi/linux/mdio.h @@ -53,14 +53,12 @@ #define MDIO_AN_EEE_LPABLE 61 /* EEE link partner ability */ #define MDIO_AN_EEE_ADV2 62 /* EEE advertisement 2 */ #define MDIO_AN_EEE_LPABLE2 63 /* EEE link partner ability 2 */ -#define MDIO_AN_CTRL2 64 /* AN THP bypass request control */ /* Media-dependent registers. */ #define MDIO_PMA_10GBT_SWAPPOL 130 /* 10GBASE-T pair swap & polarity */ #define MDIO_PMA_10GBT_TXPWR 131 /* 10GBASE-T TX power control */ #define MDIO_PMA_10GBT_SNR 133 /* 10GBASE-T SNR margin, lane A. * Lanes B-D are numbered 134-136. */ -#define MDIO_PMA_10GBR_FSRT_CSR 147 /* 10GBASE-R fast retrain status and control */ #define MDIO_PMA_10GBR_FECABLE 170 /* 10GBASE-R FEC ability */ #define MDIO_PCS_10GBX_STAT1 24 /* 10GBASE-X PCS status 1 */ #define MDIO_PCS_10GBRT_STAT1 32 /* 10GBASE-R/-T PCS status 1 */ @@ -122,8 +120,6 @@ #define MDIO_PMA_SPEED_100 0x0020 /* 100M capable */ #define MDIO_PMA_SPEED_10 0x0040 /* 10M capable */ #define MDIO_PCS_SPEED_10P2B 0x0002 /* 10PASS-TS/2BASE-TL capable */ -#define MDIO_PCS_SPEED_2_5G 0x0040 /* 2.5G capable */ -#define MDIO_PCS_SPEED_5G 0x0080 /* 5G capable */ /* Device present registers. */ #define MDIO_DEVS_PRESENT(devad) (1 << (devad)) @@ -241,9 +237,6 @@ #define MDIO_PMA_10GBR_FECABLE_ABLE 0x0001 /* FEC ability */ #define MDIO_PMA_10GBR_FECABLE_ERRABLE 0x0002 /* FEC error indic. ability */ -/* PMA 10GBASE-R Fast Retrain status and control register. */ -#define MDIO_PMA_10GBR_FSRT_ENABLE 0x0001 /* Fast retrain enable */ - /* PCS 10GBASE-R/-T status register 1. */ #define MDIO_PCS_10GBRT_STAT1_BLKLK 0x0001 /* Block lock attained */ @@ -252,7 +245,6 @@ #define MDIO_PCS_10GBRT_STAT2_BER 0x3f00 /* AN 10GBASE-T control register. */ -#define MDIO_AN_10GBT_CTRL_ADVFSRT2_5G 0x0020 /* Advertise 2.5GBASE-T fast retrain */ #define MDIO_AN_10GBT_CTRL_ADV2_5G 0x0080 /* Advertise 2.5GBASE-T */ #define MDIO_AN_10GBT_CTRL_ADV5G 0x0100 /* Advertise 5GBASE-T */ #define MDIO_AN_10GBT_CTRL_ADV10G 0x1000 /* Advertise 10GBASE-T */ @@ -295,9 +287,6 @@ #define MDIO_EEE_2_5GT 0x0001 /* 2.5GT EEE cap */ #define MDIO_EEE_5GT 0x0002 /* 5GT EEE cap */ -/* AN MultiGBASE-T AN control 2 */ -#define MDIO_AN_THP_BP2_5GT 0x0008 /* 2.5GT THP bypass request */ - /* 2.5G/5G Extended abilities register. */ #define MDIO_PMA_NG_EXTABLE_2_5GBT 0x0001 /* 2.5GBASET ability */ #define MDIO_PMA_NG_EXTABLE_5GBT 0x0002 /* 5GBASET ability */ diff --git a/original/uapi/linux/mempolicy.h b/original/uapi/linux/mempolicy.h index 046d0cc..8948467 100644 --- a/original/uapi/linux/mempolicy.h +++ b/original/uapi/linux/mempolicy.h @@ -22,7 +22,6 @@ enum { MPOL_BIND, MPOL_INTERLEAVE, MPOL_LOCAL, - MPOL_PREFERRED_MANY, MPOL_MAX, /* always last member of enum */ }; @@ -61,15 +60,9 @@ 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 */ -/* - * These bit locations are exposed in the vm.zone_reclaim_mode sysctl - * ABI. New bits are OK, but existing bits can never change. - */ -#define RECLAIM_ZONE (1<<0) /* Run shrink_inactive_list on the zone */ -#define RECLAIM_WRITE (1<<1) /* Writeout pages during reclaim */ -#define RECLAIM_UNMAP (1<<2) /* Unmap pages during reclaim */ #endif /* _UAPI_LINUX_MEMPOLICY_H */ diff --git a/original/uapi/linux/module.h b/original/uapi/linux/module.h index 03a33ff..50d98ec 100644 --- a/original/uapi/linux/module.h +++ b/original/uapi/linux/module.h @@ -5,6 +5,5 @@ /* Flags for sys_finit_module: */ #define MODULE_INIT_IGNORE_MODVERSIONS 1 #define MODULE_INIT_IGNORE_VERMAGIC 2 -#define MODULE_INIT_COMPRESSED_FILE 4 #endif /* _UAPI_LINUX_MODULE_H */ diff --git a/original/uapi/linux/mount.h b/original/uapi/linux/mount.h index 4d93967..e6524ea 100644 --- a/original/uapi/linux/mount.h +++ b/original/uapi/linux/mount.h @@ -73,8 +73,7 @@ #define MOVE_MOUNT_T_SYMLINKS 0x00000010 /* Follow symlinks on to path */ #define MOVE_MOUNT_T_AUTOMOUNTS 0x00000020 /* Follow automounts on to path */ #define MOVE_MOUNT_T_EMPTY_PATH 0x00000040 /* Empty to path permitted */ -#define MOVE_MOUNT_SET_GROUP 0x00000100 /* Set sharing group instead */ -#define MOVE_MOUNT__MASK 0x00000177 +#define MOVE_MOUNT__MASK 0x00000077 /* * fsopen() flags. @@ -121,7 +120,6 @@ 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() diff --git a/original/uapi/linux/mptcp.h b/original/uapi/linux/mptcp.h index f106a39..e1172c1 100644 --- a/original/uapi/linux/mptcp.h +++ b/original/uapi/linux/mptcp.h @@ -4,13 +4,6 @@ #include <linux/const.h> #include <linux/types.h> -#include <linux/in.h> /* for sockaddr_in */ -#include <linux/in6.h> /* for sockaddr_in6 */ -#include <linux/socket.h> /* for sockaddr_storage and sa_family */ - -#ifndef __KERNEL__ -#include <sys/socket.h> /* for struct sockaddr */ -#endif #define MPTCP_SUBFLOW_FLAG_MCAP_REM _BITUL(0) #define MPTCP_SUBFLOW_FLAG_MCAP_LOC _BITUL(1) @@ -80,7 +73,6 @@ enum { #define MPTCP_PM_ADDR_FLAG_SIGNAL (1 << 0) #define MPTCP_PM_ADDR_FLAG_SUBFLOW (1 << 1) #define MPTCP_PM_ADDR_FLAG_BACKUP (1 << 2) -#define MPTCP_PM_ADDR_FLAG_FULLMESH (1 << 3) enum { MPTCP_PM_CMD_UNSPEC, @@ -113,7 +105,6 @@ struct mptcp_info { __u64 mptcpi_rcv_nxt; __u8 mptcpi_local_addr_used; __u8 mptcpi_local_addr_max; - __u8 mptcpi_csum_enabled; }; /* @@ -136,21 +127,19 @@ struct mptcp_info { * MPTCP_EVENT_REMOVED: token, rem_id * An address has been lost by the peer. * - * MPTCP_EVENT_SUB_ESTABLISHED: token, family, loc_id, rem_id, - * saddr4 | saddr6, daddr4 | daddr6, sport, - * dport, backup, if_idx [, error] + * MPTCP_EVENT_SUB_ESTABLISHED: token, family, saddr4 | saddr6, + * daddr4 | daddr6, sport, dport, backup, + * if_idx [, error] * A new subflow has been established. 'error' should not be set. * - * MPTCP_EVENT_SUB_CLOSED: token, family, loc_id, rem_id, saddr4 | saddr6, - * daddr4 | daddr6, sport, dport, backup, if_idx - * [, error] + * MPTCP_EVENT_SUB_CLOSED: token, family, saddr4 | saddr6, daddr4 | daddr6, + * sport, dport, backup, if_idx [, error] * A subflow has been closed. An error (copy of sk_err) could be set if an * error has been detected for this subflow. * - * MPTCP_EVENT_SUB_PRIORITY: token, family, loc_id, rem_id, saddr4 | saddr6, - * daddr4 | daddr6, sport, dport, backup, if_idx - * [, error] - * The priority of a subflow has changed. 'error' should not be set. + * MPTCP_EVENT_SUB_PRIORITY: token, family, saddr4 | saddr6, daddr4 | daddr6, + * sport, dport, backup, if_idx [, error] + * The priority of a subflow has changed. 'error' should not be set. */ enum mptcp_event_type { MPTCP_EVENT_UNSPEC = 0, @@ -185,49 +174,10 @@ enum mptcp_event_attr { MPTCP_ATTR_FLAGS, /* u16 */ MPTCP_ATTR_TIMEOUT, /* u32 */ MPTCP_ATTR_IF_IDX, /* s32 */ - MPTCP_ATTR_RESET_REASON,/* u32 */ - MPTCP_ATTR_RESET_FLAGS, /* u32 */ __MPTCP_ATTR_AFTER_LAST }; #define MPTCP_ATTR_MAX (__MPTCP_ATTR_AFTER_LAST - 1) -/* MPTCP Reset reason codes, rfc8684 */ -#define MPTCP_RST_EUNSPEC 0 -#define MPTCP_RST_EMPTCP 1 -#define MPTCP_RST_ERESOURCE 2 -#define MPTCP_RST_EPROHIBIT 3 -#define MPTCP_RST_EWQ2BIG 4 -#define MPTCP_RST_EBADPERF 5 -#define MPTCP_RST_EMIDDLEBOX 6 - -struct mptcp_subflow_data { - __u32 size_subflow_data; /* size of this structure in userspace */ - __u32 num_subflows; /* must be 0, set by kernel */ - __u32 size_kernel; /* must be 0, set by kernel */ - __u32 size_user; /* size of one element in data[] */ -} __attribute__((aligned(8))); - -struct mptcp_subflow_addrs { - union { - __kernel_sa_family_t sa_family; - struct sockaddr sa_local; - struct sockaddr_in sin_local; - struct sockaddr_in6 sin6_local; - struct __kernel_sockaddr_storage ss_local; - }; - union { - struct sockaddr sa_remote; - struct sockaddr_in sin_remote; - struct sockaddr_in6 sin6_remote; - struct __kernel_sockaddr_storage ss_remote; - }; -}; - -/* MPTCP socket options */ -#define MPTCP_INFO 1 -#define MPTCP_TCPINFO 2 -#define MPTCP_SUBFLOW_ADDRS 3 - #endif /* _UAPI_MPTCP_H */ diff --git a/original/uapi/linux/n_r3964.h b/original/uapi/linux/n_r3964.h new file mode 100644 index 0000000..6bbd185 --- /dev/null +++ b/original/uapi/linux/n_r3964.h @@ -0,0 +1,99 @@ +/* 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__ */ diff --git a/original/uapi/linux/nbd-netlink.h b/original/uapi/linux/nbd-netlink.h index 2d0b909..c5d0ef7 100644 --- a/original/uapi/linux/nbd-netlink.h +++ b/original/uapi/linux/nbd-netlink.h @@ -35,7 +35,6 @@ 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) diff --git a/original/uapi/linux/neighbour.h b/original/uapi/linux/neighbour.h index db05fb5..dc8b722 100644 --- a/original/uapi/linux/neighbour.h +++ b/original/uapi/linux/neighbour.h @@ -31,7 +31,6 @@ enum { NDA_PROTOCOL, /* Originator of entry */ NDA_NH_ID, NDA_FDB_EXT_ATTRS, - NDA_FLAGS_EXT, __NDA_MAX }; @@ -41,16 +40,14 @@ enum { * Neighbor Cache Entry Flags */ -#define NTF_USE (1 << 0) -#define NTF_SELF (1 << 1) -#define NTF_MASTER (1 << 2) -#define NTF_PROXY (1 << 3) /* == ATF_PUBL */ -#define NTF_EXT_LEARNED (1 << 4) -#define NTF_OFFLOADED (1 << 5) -#define NTF_STICKY (1 << 6) -#define NTF_ROUTER (1 << 7) -/* Extended flags under NDA_FLAGS_EXT: */ -#define NTF_EXT_MANAGED (1 << 0) +#define NTF_USE 0x01 +#define NTF_SELF 0x02 +#define NTF_MASTER 0x04 +#define NTF_PROXY 0x08 /* == ATF_PUBL */ +#define NTF_EXT_LEARNED 0x10 +#define NTF_OFFLOADED 0x20 +#define NTF_STICKY 0x40 +#define NTF_ROUTER 0x80 /* * Neighbor Cache Entry States. @@ -68,22 +65,9 @@ enum { #define NUD_PERMANENT 0x80 #define NUD_NONE 0x00 -/* NUD_NOARP & NUD_PERMANENT are pseudostates, they never change and make no - * address resolution or NUD. - * - * NUD_PERMANENT also cannot be deleted by garbage collectors. This holds true - * for dynamic entries with NTF_EXT_LEARNED flag as well. However, upon carrier - * down event, NUD_PERMANENT entries are not flushed whereas NTF_EXT_LEARNED - * flagged entries explicitly are (which is also consistent with the routing - * subsystem). - * - * When NTF_EXT_LEARNED is set for a bridge fdb entry the different cache entry - * states don't make sense and thus are ignored. Such entries don't age and - * can roam. - * - * NTF_EXT_MANAGED flagged neigbor entries are managed by the kernel on behalf - * of a user space control plane, and automatically refreshed so that (if - * possible) they remain in NUD_REACHABLE state. +/* NUD_NOARP & NUD_PERMANENT are pseudostates, they never change + and make no address resolution or NUD. + NUD_PERMANENT also cannot be deleted by garbage collectors. */ struct nda_cacheinfo { diff --git a/original/uapi/linux/net_tstamp.h b/original/uapi/linux/net_tstamp.h index 55501e5..7ed0b3d 100644 --- a/original/uapi/linux/net_tstamp.h +++ b/original/uapi/linux/net_tstamp.h @@ -13,7 +13,7 @@ #include <linux/types.h> #include <linux/socket.h> /* for SO_TIMESTAMPING */ -/* SO_TIMESTAMPING flags */ +/* SO_TIMESTAMPING gets an integer bit field comprised of these values */ enum { SOF_TIMESTAMPING_TX_HARDWARE = (1<<0), SOF_TIMESTAMPING_TX_SOFTWARE = (1<<1), @@ -30,9 +30,8 @@ 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_BIND_PHC, + SOF_TIMESTAMPING_LAST = SOF_TIMESTAMPING_OPT_TX_SWHW, SOF_TIMESTAMPING_MASK = (SOF_TIMESTAMPING_LAST - 1) | SOF_TIMESTAMPING_LAST }; @@ -48,21 +47,9 @@ enum { 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 * - * @flags: one of HWTSTAMP_FLAG_* + * @flags: no flags defined right now, must be zero for %SIOCSHWTSTAMP * @tx_type: one of HWTSTAMP_TX_* * @rx_filter: one of HWTSTAMP_FILTER_* * @@ -78,21 +65,6 @@ struct hwtstamp_config { int rx_filter; }; -/* possible values for hwtstamp_config->flags */ -enum hwtstamp_flags { - /* - * With this flag, the user could get bond active interface's - * PHC index. Note this PHC index is not stable as when there - * is a failover, the bond active interface will be changed, so - * will be the PHC index. - */ - HWTSTAMP_FLAG_BONDED_PHC_INDEX = (1<<0), -#define HWTSTAMP_FLAG_BONDED_PHC_INDEX HWTSTAMP_FLAG_BONDED_PHC_INDEX - - HWTSTAMP_FLAG_LAST = HWTSTAMP_FLAG_BONDED_PHC_INDEX, - HWTSTAMP_FLAG_MASK = (HWTSTAMP_FLAG_LAST - 1) | HWTSTAMP_FLAG_LAST -}; - /* possible values for hwtstamp_config->tx_type */ enum hwtstamp_tx_types { /* diff --git a/original/uapi/linux/netfilter.h b/original/uapi/linux/netfilter.h index 53411cc..ef9a442 100644 --- a/original/uapi/linux/netfilter.h +++ b/original/uapi/linux/netfilter.h @@ -51,7 +51,6 @@ enum nf_inet_hooks { enum nf_dev_hooks { NF_NETDEV_INGRESS, - NF_NETDEV_EGRESS, NF_NETDEV_NUMHOOKS }; diff --git a/original/uapi/linux/netfilter/nf_conntrack_common.h b/original/uapi/linux/netfilter/nf_conntrack_common.h index 2607102..4b33950 100644 --- a/original/uapi/linux/netfilter/nf_conntrack_common.h +++ b/original/uapi/linux/netfilter/nf_conntrack_common.h @@ -106,7 +106,7 @@ enum ip_conntrack_status { IPS_NAT_CLASH = IPS_UNTRACKED, #endif - /* Conntrack got a helper explicitly attached (ruleset, ctnetlink). */ + /* Conntrack got a helper explicitly attached via CT target. */ IPS_HELPER_BIT = 13, IPS_HELPER = (1 << IPS_HELPER_BIT), diff --git a/original/uapi/linux/netfilter/nf_tables.h b/original/uapi/linux/netfilter/nf_tables.h index 466fd3f..79bab7a 100644 --- a/original/uapi/linux/netfilter/nf_tables.h +++ b/original/uapi/linux/netfilter/nf_tables.h @@ -398,11 +398,9 @@ enum nft_set_attributes { * enum nft_set_elem_flags - nf_tables set element flags * * @NFT_SET_ELEM_INTERVAL_END: element ends the previous interval - * @NFT_SET_ELEM_CATCHALL: special catch-all element */ enum nft_set_elem_flags { NFT_SET_ELEM_INTERVAL_END = 0x1, - NFT_SET_ELEM_CATCHALL = 0x2, }; /** @@ -753,13 +751,11 @@ enum nft_dynset_attributes { * @NFT_PAYLOAD_LL_HEADER: link layer header * @NFT_PAYLOAD_NETWORK_HEADER: network header * @NFT_PAYLOAD_TRANSPORT_HEADER: transport header - * @NFT_PAYLOAD_INNER_HEADER: inner header / payload */ enum nft_payload_bases { NFT_PAYLOAD_LL_HEADER, NFT_PAYLOAD_NETWORK_HEADER, NFT_PAYLOAD_TRANSPORT_HEADER, - NFT_PAYLOAD_INNER_HEADER, }; /** @@ -815,13 +811,11 @@ 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) @@ -898,8 +892,7 @@ enum nft_meta_keys { NFT_META_OIF, NFT_META_IIFNAME, NFT_META_OIFNAME, - NFT_META_IFTYPE, -#define NFT_META_IIFTYPE NFT_META_IFTYPE + NFT_META_IIFTYPE, NFT_META_OIFTYPE, NFT_META_SKUID, NFT_META_SKGID, @@ -926,7 +919,6 @@ enum nft_meta_keys { NFT_META_TIME_HOUR, NFT_META_SDIF, NFT_META_SDIFNAME, - __NFT_META_IIFTYPE, }; /** @@ -1022,13 +1014,11 @@ enum nft_rt_attributes { * * @NFTA_SOCKET_KEY: socket key to match * @NFTA_SOCKET_DREG: destination register - * @NFTA_SOCKET_LEVEL: cgroups2 ancestor level (only for cgroupsv2) */ enum nft_socket_attributes { NFTA_SOCKET_UNSPEC, NFTA_SOCKET_KEY, NFTA_SOCKET_DREG, - NFTA_SOCKET_LEVEL, __NFTA_SOCKET_MAX }; #define NFTA_SOCKET_MAX (__NFTA_SOCKET_MAX - 1) @@ -1039,13 +1029,11 @@ enum nft_socket_attributes { * @NFT_SOCKET_TRANSPARENT: Value of the IP(V6)_TRANSPARENT socket option * @NFT_SOCKET_MARK: Value of the socket mark * @NFT_SOCKET_WILDCARD: Whether the socket is zero-bound (e.g. 0.0.0.0 or ::0) - * @NFT_SOCKET_CGROUPV2: Match on cgroups version 2 */ enum nft_socket_keys { NFT_SOCKET_TRANSPARENT, NFT_SOCKET_MARK, NFT_SOCKET_WILDCARD, - NFT_SOCKET_CGROUPV2, __NFT_SOCKET_MAX }; #define NFT_SOCKET_MAX (__NFT_SOCKET_MAX - 1) @@ -1200,21 +1188,6 @@ 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 * * @NFTA_LOG_GROUP: netlink group to send messages to (NLA_U32) diff --git a/original/uapi/linux/netfilter/nfnetlink.h b/original/uapi/linux/netfilter/nfnetlink.h index 6cd58cd..5bc960f 100644 --- a/original/uapi/linux/netfilter/nfnetlink.h +++ b/original/uapi/linux/netfilter/nfnetlink.h @@ -60,8 +60,7 @@ struct nfgenmsg { #define NFNL_SUBSYS_CTHELPER 9 #define NFNL_SUBSYS_NFTABLES 10 #define NFNL_SUBSYS_NFT_COMPAT 11 -#define NFNL_SUBSYS_HOOK 12 -#define NFNL_SUBSYS_COUNT 13 +#define NFNL_SUBSYS_COUNT 12 /* Reserved control nfnetlink messages */ #define NFNL_MSG_BATCH_BEGIN NLMSG_MIN_TYPE diff --git a/original/uapi/linux/netfilter/nfnetlink_conntrack.h b/original/uapi/linux/netfilter/nfnetlink_conntrack.h index c2ac726..d8484be 100644 --- a/original/uapi/linux/netfilter/nfnetlink_conntrack.h +++ b/original/uapi/linux/netfilter/nfnetlink_conntrack.h @@ -56,7 +56,6 @@ enum ctattr_type { CTA_LABELS_MASK, CTA_SYNPROXY, CTA_FILTER, - CTA_STATUS_MASK, __CTA_MAX }; #define CTA_MAX (__CTA_MAX - 1) @@ -258,7 +257,6 @@ enum ctattr_stats_cpu { CTA_STATS_ERROR, CTA_STATS_SEARCH_RESTART, CTA_STATS_CLASH_RESOLVE, - CTA_STATS_CHAIN_TOOLONG, __CTA_STATS_MAX, }; #define CTA_STATS_MAX (__CTA_STATS_MAX - 1) diff --git a/original/uapi/linux/netfilter/nfnetlink_hook.h b/original/uapi/linux/netfilter/nfnetlink_hook.h deleted file mode 100644 index bbcd285..0000000 --- a/original/uapi/linux/netfilter/nfnetlink_hook.h +++ /dev/null @@ -1,64 +0,0 @@ -/* 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 */ diff --git a/original/uapi/linux/netfilter/nfnetlink_log.h b/original/uapi/linux/netfilter/nfnetlink_log.h index 0af9c11..45c8d3b 100644 --- a/original/uapi/linux/netfilter/nfnetlink_log.h +++ b/original/uapi/linux/netfilter/nfnetlink_log.h @@ -61,7 +61,7 @@ enum nfulnl_attr_type { NFULA_HWTYPE, /* hardware type */ NFULA_HWHEADER, /* hardware header */ NFULA_HWLEN, /* hardware header length */ - NFULA_CT, /* nfnetlink_conntrack.h */ + NFULA_CT, /* nf_conntrack_netlink.h */ NFULA_CT_INFO, /* enum ip_conntrack_info */ NFULA_VLAN, /* nested attribute: packet vlan info */ NFULA_L2HDR, /* full L2 header */ diff --git a/original/uapi/linux/netfilter/nfnetlink_queue.h b/original/uapi/linux/netfilter/nfnetlink_queue.h index aed90c4..bcb2cb5 100644 --- a/original/uapi/linux/netfilter/nfnetlink_queue.h +++ b/original/uapi/linux/netfilter/nfnetlink_queue.h @@ -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, /* nfnetlink_conntrack.h */ + NFQA_CT, /* nf_conntrack_netlink.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, /* nfnetlink_conntrack.h */ + NFQA_EXP, /* nf_conntrack_netlink.h */ NFQA_UID, /* __u32 sk uid */ NFQA_GID, /* __u32 sk gid */ NFQA_SECCTX, /* security context string */ diff --git a/original/uapi/linux/netfilter/xt_IDLETIMER.h b/original/uapi/linux/netfilter/xt_IDLETIMER.h index 07ae4e1..49ddcdc 100644 --- a/original/uapi/linux/netfilter/xt_IDLETIMER.h +++ b/original/uapi/linux/netfilter/xt_IDLETIMER.h @@ -48,7 +48,7 @@ struct idletimer_tg_info_v1 { char label[MAX_IDLETIMER_LABEL_SIZE]; - __u8 send_nl_msg; + __u8 send_nl_msg; /* unused: for compatibility with Android */ __u8 timer_type; /* for kernel module internal use only */ diff --git a/original/uapi/linux/netfilter/xt_SECMARK.h b/original/uapi/linux/netfilter/xt_SECMARK.h index beb2cad..1f2a708 100644 --- a/original/uapi/linux/netfilter/xt_SECMARK.h +++ b/original/uapi/linux/netfilter/xt_SECMARK.h @@ -20,10 +20,4 @@ struct xt_secmark_target_info { char secctx[SECMARK_SECCTX_MAX]; }; -struct xt_secmark_target_info_v1 { - __u8 mode; - char secctx[SECMARK_SECCTX_MAX]; - __u32 secid; -}; - #endif /*_XT_SECMARK_H_target */ diff --git a/original/uapi/linux/netlink.h b/original/uapi/linux/netlink.h index 4c0cde0..3d94269 100644 --- a/original/uapi/linux/netlink.h +++ b/original/uapi/linux/netlink.h @@ -91,10 +91,9 @@ 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_HDRLEN)) +#define NLMSG_DATA(nlh) ((void*)(((char*)nlh) + NLMSG_LENGTH(0))) #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)) diff --git a/original/uapi/linux/nexthop.h b/original/uapi/linux/nexthop.h index d8ffa8c..2d4a1e7 100644 --- a/original/uapi/linux/nexthop.h +++ b/original/uapi/linux/nexthop.h @@ -21,10 +21,7 @@ struct nexthop_grp { }; enum { - NEXTHOP_GRP_TYPE_MPATH, /* hash-threshold nexthop group - * default type if not specified - */ - NEXTHOP_GRP_TYPE_RES, /* resilient nexthop group */ + NEXTHOP_GRP_TYPE_MPATH, /* default type if not specified */ __NEXTHOP_GRP_TYPE_MAX, }; @@ -55,50 +52,8 @@ enum { NHA_FDB, /* flag; nexthop belongs to a bridge fdb */ /* if NHA_FDB is added, OIF, BLACKHOLE, ENCAP cannot be set */ - /* nested; resilient nexthop group attributes */ - NHA_RES_GROUP, - /* nested; nexthop bucket attributes */ - NHA_RES_BUCKET, - __NHA_MAX, }; #define NHA_MAX (__NHA_MAX - 1) - -enum { - NHA_RES_GROUP_UNSPEC, - /* Pad attribute for 64-bit alignment. */ - NHA_RES_GROUP_PAD = NHA_RES_GROUP_UNSPEC, - - /* u16; number of nexthop buckets in a resilient nexthop group */ - NHA_RES_GROUP_BUCKETS, - /* clock_t as u32; nexthop bucket idle timer (per-group) */ - NHA_RES_GROUP_IDLE_TIMER, - /* clock_t as u32; nexthop unbalanced timer */ - NHA_RES_GROUP_UNBALANCED_TIMER, - /* clock_t as u64; nexthop unbalanced time */ - NHA_RES_GROUP_UNBALANCED_TIME, - - __NHA_RES_GROUP_MAX, -}; - -#define NHA_RES_GROUP_MAX (__NHA_RES_GROUP_MAX - 1) - -enum { - NHA_RES_BUCKET_UNSPEC, - /* Pad attribute for 64-bit alignment. */ - NHA_RES_BUCKET_PAD = NHA_RES_BUCKET_UNSPEC, - - /* u16; nexthop bucket index */ - NHA_RES_BUCKET_INDEX, - /* clock_t as u64; nexthop bucket idle time */ - NHA_RES_BUCKET_IDLE_TIME, - /* u32; nexthop id assigned to the nexthop bucket */ - NHA_RES_BUCKET_NH_ID, - - __NHA_RES_BUCKET_MAX, -}; - -#define NHA_RES_BUCKET_MAX (__NHA_RES_BUCKET_MAX - 1) - #endif diff --git a/original/uapi/linux/nfc.h b/original/uapi/linux/nfc.h index 4fa4e97..f6e3c8c 100644 --- a/original/uapi/linux/nfc.h +++ b/original/uapi/linux/nfc.h @@ -263,7 +263,7 @@ enum nfc_sdp_attr { #define NFC_SE_ENABLED 0x1 struct sockaddr_nfc { - __kernel_sa_family_t sa_family; + sa_family_t sa_family; __u32 dev_idx; __u32 target_idx; __u32 nfc_protocol; @@ -271,14 +271,14 @@ struct sockaddr_nfc { #define NFC_LLCP_MAX_SERVICE_NAME 63 struct sockaddr_nfc_llcp { - __kernel_sa_family_t sa_family; + sa_family_t sa_family; __u32 dev_idx; __u32 target_idx; __u32 nfc_protocol; __u8 dsap; /* Destination SAP, if known */ __u8 ssap; /* Source SAP to be bound to */ char service_name[NFC_LLCP_MAX_SERVICE_NAME]; /* Service name URI */; - __kernel_size_t service_name_len; + size_t service_name_len; }; /* NFC socket protocols */ diff --git a/original/uapi/linux/nfs4.h b/original/uapi/linux/nfs4.h index 800bb0f..ed5415e 100644 --- a/original/uapi/linux/nfs4.h +++ b/original/uapi/linux/nfs4.h @@ -178,3 +178,9 @@ #define NFS4_MAX_BACK_CHANNEL_OPS 2 #endif /* _UAPI_LINUX_NFS4_H */ + +/* + * Local variables: + * c-basic-offset: 8 + * End: + */ diff --git a/original/uapi/linux/nfsd/nfsfh.h b/original/uapi/linux/nfsd/nfsfh.h new file mode 100644 index 0000000..ff0ca88 --- /dev/null +++ b/original/uapi/linux/nfsd/nfsfh.h @@ -0,0 +1,105 @@ +/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ +/* + * This file describes the layout of the file handles as passed + * over the wire. + * + * Copyright (C) 1995, 1996, 1997 Olaf Kirch <okir@monad.swb.de> + */ + +#ifndef _UAPI_LINUX_NFSD_FH_H +#define _UAPI_LINUX_NFSD_FH_H + +#include <linux/types.h> +#include <linux/nfs.h> +#include <linux/nfs2.h> +#include <linux/nfs3.h> +#include <linux/nfs4.h> + +/* + * This is the old "dentry style" Linux NFSv2 file handle. + * + * The xino and xdev fields are currently used to transport the + * ino/dev of the exported inode. + */ +struct nfs_fhbase_old { + __u32 fb_dcookie; /* dentry cookie - always 0xfeebbaca */ + __u32 fb_ino; /* our inode number */ + __u32 fb_dirino; /* dir inode number, 0 for directories */ + __u32 fb_dev; /* our device */ + __u32 fb_xdev; + __u32 fb_xino; + __u32 fb_generation; +}; + +/* + * This is the new flexible, extensible style NFSv2/v3/v4 file handle. + * by Neil Brown <neilb@cse.unsw.edu.au> - March 2000 + * + * The file handle starts with a sequence of four-byte words. + * The first word contains a version number (1) and three descriptor bytes + * that tell how the remaining 3 variable length fields should be handled. + * These three bytes are auth_type, fsid_type and fileid_type. + * + * All four-byte values are in host-byte-order. + * + * The auth_type field is deprecated and must be set to 0. + * + * The fsid_type identifies how the filesystem (or export point) is + * encoded. + * Current values: + * 0 - 4 byte device id (ms-2-bytes major, ls-2-bytes minor), 4byte inode number + * NOTE: we cannot use the kdev_t device id value, because kdev_t.h + * says we mustn't. We must break it up and reassemble. + * 1 - 4 byte user specified identifier + * 2 - 4 byte major, 4 byte minor, 4 byte inode number - DEPRECATED + * 3 - 4 byte device id, encoded for user-space, 4 byte inode number + * 4 - 4 byte inode number and 4 byte uuid + * 5 - 8 byte uuid + * 6 - 16 byte uuid + * 7 - 8 byte inode number and 16 byte uuid + * + * The fileid_type identified how the file within the filesystem is encoded. + * The values for this field are filesystem specific, exccept that + * filesystems must not use the values '0' or '0xff'. 'See enum fid_type' + * in include/linux/exportfs.h for currently registered values. + */ +struct nfs_fhbase_new { + __u8 fb_version; /* == 1, even => nfs_fhbase_old */ + __u8 fb_auth_type; + __u8 fb_fsid_type; + __u8 fb_fileid_type; + __u32 fb_auth[1]; +/* __u32 fb_fsid[0]; floating */ +/* __u32 fb_fileid[0]; floating */ +}; + +struct knfsd_fh { + unsigned int fh_size; /* significant for NFSv3. + * Points to the current size while building + * a new file handle + */ + union { + struct nfs_fhbase_old fh_old; + __u32 fh_pad[NFS4_FHSIZE/4]; + struct nfs_fhbase_new fh_new; + } fh_base; +}; + +#define ofh_dcookie fh_base.fh_old.fb_dcookie +#define ofh_ino fh_base.fh_old.fb_ino +#define ofh_dirino fh_base.fh_old.fb_dirino +#define ofh_dev fh_base.fh_old.fb_dev +#define ofh_xdev fh_base.fh_old.fb_xdev +#define ofh_xino fh_base.fh_old.fb_xino +#define ofh_generation fh_base.fh_old.fb_generation + +#define fh_version fh_base.fh_new.fb_version +#define fh_fsid_type fh_base.fh_new.fb_fsid_type +#define fh_auth_type fh_base.fh_new.fb_auth_type +#define fh_fileid_type fh_base.fh_new.fb_fileid_type +#define fh_fsid fh_base.fh_new.fb_auth + +/* Do not use, provided for userspace compatiblity. */ +#define fh_auth fh_base.fh_new.fb_auth + +#endif /* _UAPI_LINUX_NFSD_FH_H */ diff --git a/original/uapi/linux/nitro_enclaves.h b/original/uapi/linux/nitro_enclaves.h index e808f5b..b945073 100644 --- a/original/uapi/linux/nitro_enclaves.h +++ b/original/uapi/linux/nitro_enclaves.h @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ /* - * Copyright 2020-2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. + * Copyright 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. */ #ifndef _UAPI_LINUX_NITRO_ENCLAVES_H_ @@ -60,7 +60,7 @@ * * Context: Process context. * Return: - * * 0 - Logic successfully completed. + * * 0 - Logic succesfully completed. * * -1 - There was a failure in the ioctl logic. * On failure, errno is set to: * * EFAULT - copy_from_user() / copy_to_user() failure. @@ -95,7 +95,7 @@ * * Context: Process context. * Return: - * * 0 - Logic successfully completed. + * * 0 - Logic succesfully completed. * * -1 - There was a failure in the ioctl logic. * On failure, errno is set to: * * EFAULT - copy_from_user() / copy_to_user() failure. @@ -118,7 +118,7 @@ * * Context: Process context. * Return: - * * 0 - Logic successfully completed. + * * 0 - Logic succesfully completed. * * -1 - There was a failure in the ioctl logic. * On failure, errno is set to: * * EFAULT - copy_from_user() failure. @@ -161,7 +161,7 @@ * * Context: Process context. * Return: - * * 0 - Logic successfully completed. + * * 0 - Logic succesfully completed. * * -1 - There was a failure in the ioctl logic. * On failure, errno is set to: * * EFAULT - copy_from_user() / copy_to_user() failure. diff --git a/original/uapi/linux/nl80211-vnd-intel.h b/original/uapi/linux/nl80211-vnd-intel.h deleted file mode 100644 index 4ed7d0b..0000000 --- a/original/uapi/linux/nl80211-vnd-intel.h +++ /dev/null @@ -1,106 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ -/* - * Copyright (C) 2012-2014, 2018-2021 Intel Corporation - * Copyright (C) 2013-2015 Intel Mobile Communications GmbH - * Copyright (C) 2016-2017 Intel Deutschland GmbH - */ -#ifndef __VENDOR_CMD_INTEL_H__ -#define __VENDOR_CMD_INTEL_H__ - -#define INTEL_OUI 0x001735 - -/** - * enum iwl_mvm_vendor_cmd - supported vendor commands - * @IWL_MVM_VENDOR_CMD_GET_CSME_CONN_INFO: reports CSME connection info. - * @IWL_MVM_VENDOR_CMD_HOST_GET_OWNERSHIP: asks for ownership on the device. - * This is useful when the CSME firmware owns the device and the kernel - * wants to use it. In case the CSME firmware has no connection active the - * kernel will manage on its own to get ownership of the device. - * When the CSME firmware has an active connection, the user space - * involvement is required. The kernel will assert the RFKILL signal with - * the "device not owned" reason so that nobody can touch the device. Then - * the user space can run the following flow to be able to get connected - * to the very same AP the CSME firmware is currently connected to: - * - * 1) The user space (NetworkManager) boots and sees that the device is - * in RFKILL because the host doesn't own the device - * 2) The user space asks the kernel what AP the CSME firmware is - * connected to (with %IWL_MVM_VENDOR_CMD_GET_CSME_CONN_INFO) - * 3) The user space checks if it has a profile that matches the reply - * from the CSME firmware - * 4) The user space installs a network to the wpa_supplicant with a - * specific BSSID and a specific frequency - * 5) The user space prevents any type of full scan - * 6) The user space asks iwlmei to request ownership on the device (with - * this command) - * 7) iwlmei requests ownership from the CSME firmware - * 8) The CSME firmware grants ownership - * 9) iwlmei tells iwlwifi to lift the RFKILL - * 10) RFKILL OFF is reported to user space - * 11) The host boots the device, loads the firwmare, and connects to a - * specific BSSID without scanning including IP as fast as it can - * 12) The host reports to the CSME firmware that there is a connection - * 13) The TCP connection is preserved and the host has connectivity - * - * @IWL_MVM_VENDOR_CMD_ROAMING_FORBIDDEN_EVENT: notifies if roaming is allowed. - * It contains a &IWL_MVM_VENDOR_ATTR_ROAMING_FORBIDDEN and a - * &IWL_MVM_VENDOR_ATTR_VIF_ADDR attributes. - */ - -enum iwl_mvm_vendor_cmd { - IWL_MVM_VENDOR_CMD_GET_CSME_CONN_INFO = 0x2d, - IWL_MVM_VENDOR_CMD_HOST_GET_OWNERSHIP = 0x30, - IWL_MVM_VENDOR_CMD_ROAMING_FORBIDDEN_EVENT = 0x32, -}; - -enum iwl_vendor_auth_akm_mode { - IWL_VENDOR_AUTH_OPEN, - IWL_VENDOR_AUTH_RSNA = 0x6, - IWL_VENDOR_AUTH_RSNA_PSK, - IWL_VENDOR_AUTH_SAE = 0x9, - IWL_VENDOR_AUTH_MAX, -}; - -/** - * enum iwl_mvm_vendor_attr - attributes used in vendor commands - * @__IWL_MVM_VENDOR_ATTR_INVALID: attribute 0 is invalid - * @IWL_MVM_VENDOR_ATTR_VIF_ADDR: interface MAC address - * @IWL_MVM_VENDOR_ATTR_ADDR: MAC address - * @IWL_MVM_VENDOR_ATTR_SSID: SSID (binary attribute, 0..32 octets) - * @IWL_MVM_VENDOR_ATTR_STA_CIPHER: the cipher to use for the station with the - * mac address specified in &IWL_MVM_VENDOR_ATTR_ADDR. - * @IWL_MVM_VENDOR_ATTR_ROAMING_FORBIDDEN: u8 attribute. Indicates whether - * roaming is forbidden or not. Value 1 means roaming is forbidden, - * 0 mean roaming is allowed. - * @IWL_MVM_VENDOR_ATTR_AUTH_MODE: u32 attribute. Authentication mode type - * as specified in &enum iwl_vendor_auth_akm_mode. - * @IWL_MVM_VENDOR_ATTR_CHANNEL_NUM: u8 attribute. Contains channel number. - * @IWL_MVM_VENDOR_ATTR_BAND: u8 attribute. - * 0 for 2.4 GHz band, 1 for 5.2GHz band and 2 for 6GHz band. - * @IWL_MVM_VENDOR_ATTR_COLLOC_CHANNEL: u32 attribute. Channel number of - * collocated AP. Relevant for 6GHz AP info. - * @IWL_MVM_VENDOR_ATTR_COLLOC_ADDR: MAC address of a collocated AP. - * Relevant for 6GHz AP info. - * - * @NUM_IWL_MVM_VENDOR_ATTR: number of vendor attributes - * @MAX_IWL_MVM_VENDOR_ATTR: highest vendor attribute number - - */ -enum iwl_mvm_vendor_attr { - __IWL_MVM_VENDOR_ATTR_INVALID = 0x00, - IWL_MVM_VENDOR_ATTR_VIF_ADDR = 0x02, - IWL_MVM_VENDOR_ATTR_ADDR = 0x0a, - IWL_MVM_VENDOR_ATTR_SSID = 0x3d, - IWL_MVM_VENDOR_ATTR_STA_CIPHER = 0x51, - IWL_MVM_VENDOR_ATTR_ROAMING_FORBIDDEN = 0x64, - IWL_MVM_VENDOR_ATTR_AUTH_MODE = 0x65, - IWL_MVM_VENDOR_ATTR_CHANNEL_NUM = 0x66, - IWL_MVM_VENDOR_ATTR_BAND = 0x69, - IWL_MVM_VENDOR_ATTR_COLLOC_CHANNEL = 0x70, - IWL_MVM_VENDOR_ATTR_COLLOC_ADDR = 0x71, - - NUM_IWL_MVM_VENDOR_ATTR, - MAX_IWL_MVM_VENDOR_ATTR = NUM_IWL_MVM_VENDOR_ATTR - 1, -}; - -#endif /* __VENDOR_CMD_INTEL_H__ */ diff --git a/original/uapi/linux/nl80211.h b/original/uapi/linux/nl80211.h index 195a238..ac78da9 100644 --- a/original/uapi/linux/nl80211.h +++ b/original/uapi/linux/nl80211.h @@ -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-2021 Intel Corporation + * Copyright (C) 2018-2020 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 @@ -301,29 +301,6 @@ */ /** - * DOC: FILS shared key crypto offload - * - * This feature is applicable to drivers running in AP mode. - * - * FILS shared key crypto offload can be advertised by drivers by setting - * @NL80211_EXT_FEATURE_FILS_CRYPTO_OFFLOAD flag. The drivers that support - * FILS shared key crypto offload should be able to encrypt and decrypt - * association frames for FILS shared key authentication as per IEEE 802.11ai. - * With this capability, for FILS key derivation, drivers depend on userspace. - * - * After FILS key derivation, userspace shares the FILS AAD details with the - * driver and the driver stores the same to use in decryption of association - * request and in encryption of association response. The below parameters - * should be given to the driver in %NL80211_CMD_SET_FILS_AAD. - * %NL80211_ATTR_MAC - STA MAC address, used for storing FILS AAD per STA - * %NL80211_ATTR_FILS_KEK - Used for encryption or decryption - * %NL80211_ATTR_FILS_NONCES - Used for encryption or decryption - * (STA Nonce 16 bytes followed by AP Nonce 16 bytes) - * - * Once the association is done, the driver cleans the FILS AAD data. - */ - -/** * enum nl80211_commands - supported nl80211 commands * * @NL80211_CMD_UNSPEC: unspecified command to catch errors @@ -360,10 +337,7 @@ * @NL80211_CMD_DEL_INTERFACE: Virtual interface was deleted, has attributes * %NL80211_ATTR_IFINDEX and %NL80211_ATTR_WIPHY. Can also be sent from * userspace to request deletion of a virtual interface, then requires - * attribute %NL80211_ATTR_IFINDEX. If multiple BSSID advertisements are - * enabled using %NL80211_ATTR_MBSSID_CONFIG, %NL80211_ATTR_MBSSID_ELEMS, - * and if this command is used for the transmitting interface, then all - * the non-transmitting interfaces are deleted as well. + * attribute %NL80211_ATTR_IFINDEX. * * @NL80211_CMD_GET_KEY: Get sequence counter information for a key specified * by %NL80211_ATTR_KEY_IDX and/or %NL80211_ATTR_MAC. @@ -681,9 +655,6 @@ * When a security association was established on an 802.1X network using * fast transition, this event should be followed by an * %NL80211_CMD_PORT_AUTHORIZED event. - * Following a %NL80211_CMD_ROAM event userspace can issue - * %NL80211_CMD_GET_SCAN in order to obtain the scan information for the - * new BSS the card/driver roamed to. * @NL80211_CMD_DISCONNECT: drop a given connection; also used to notify * userspace that a connection was dropped by the AP or due to other * reasons, for this the %NL80211_ATTR_DISCONNECTED_BY_AP and @@ -1211,32 +1182,6 @@ * passed using %NL80211_ATTR_SAR_SPEC. %NL80211_ATTR_WIPHY is used to * specify the wiphy index to be applied to. * - * @NL80211_CMD_OBSS_COLOR_COLLISION: This notification is sent out whenever - * mac80211/drv detects a bss color collision. - * - * @NL80211_CMD_COLOR_CHANGE_REQUEST: This command is used to indicate that - * userspace wants to change the BSS color. - * - * @NL80211_CMD_COLOR_CHANGE_STARTED: Notify userland, that a color change has - * started - * - * @NL80211_CMD_COLOR_CHANGE_ABORTED: Notify userland, that the color change has - * been aborted - * - * @NL80211_CMD_COLOR_CHANGE_COMPLETED: Notify userland that the color change - * has completed - * - * @NL80211_CMD_SET_FILS_AAD: Set FILS AAD data to the driver using - - * &NL80211_ATTR_MAC - for STA MAC address - * &NL80211_ATTR_FILS_KEK - for KEK - * &NL80211_ATTR_FILS_NONCES - for FILS Nonces - * (STA Nonce 16 bytes followed by AP Nonce 16 bytes) - * - * @NL80211_CMD_ASSOC_COMEBACK: notification about an association - * temporal rejection with comeback. The event includes %NL80211_ATTR_MAC - * to describe the BSSID address of the AP and %NL80211_ATTR_TIMEOUT to - * specify the timeout value. - * * @NL80211_CMD_MAX: highest used command number * @__NL80211_CMD_AFTER_LAST: internal use */ @@ -1469,18 +1414,6 @@ enum nl80211_commands { NL80211_CMD_SET_SAR_SPECS, - NL80211_CMD_OBSS_COLOR_COLLISION, - - NL80211_CMD_COLOR_CHANGE_REQUEST, - - NL80211_CMD_COLOR_CHANGE_STARTED, - NL80211_CMD_COLOR_CHANGE_ABORTED, - NL80211_CMD_COLOR_CHANGE_COMPLETED, - - NL80211_CMD_SET_FILS_AAD, - - NL80211_CMD_ASSOC_COMEBACK, - /* add new commands above here */ /* used to define NL80211_CMD_MAX below */ @@ -2477,9 +2410,7 @@ enum nl80211_commands { * space supports external authentication. This attribute shall be used * with %NL80211_CMD_CONNECT and %NL80211_CMD_START_AP request. The driver * may offload authentication processing to user space if this capability - * is indicated in the respective requests from the user space. (This flag - * attribute deprecated for %NL80211_CMD_START_AP, use - * %NL80211_ATTR_AP_SETTINGS_FLAGS) + * is indicated in the respective requests from the user space. * * @NL80211_ATTR_NSS: Station's New/updated RX_NSS value notified using this * u8 attribute. This is used with %NL80211_CMD_STA_OPMODE_CHANGED. @@ -2626,39 +2557,6 @@ enum nl80211_commands { * disassoc events to indicate that an immediate reconnect to the AP * is desired. * - * @NL80211_ATTR_OBSS_COLOR_BITMAP: bitmap of the u64 BSS colors for the - * %NL80211_CMD_OBSS_COLOR_COLLISION event. - * - * @NL80211_ATTR_COLOR_CHANGE_COUNT: u8 attribute specifying the number of TBTT's - * until the color switch event. - * @NL80211_ATTR_COLOR_CHANGE_COLOR: u8 attribute specifying the color that we are - * switching to - * @NL80211_ATTR_COLOR_CHANGE_ELEMS: Nested set of attributes containing the IE - * information for the time while performing a color switch. - * - * @NL80211_ATTR_MBSSID_CONFIG: Nested attribute for multiple BSSID - * advertisements (MBSSID) parameters in AP mode. - * Kernel uses this attribute to indicate the driver's support for MBSSID - * and enhanced multi-BSSID advertisements (EMA AP) to the userspace. - * Userspace should use this attribute to configure per interface MBSSID - * parameters. - * See &enum nl80211_mbssid_config_attributes for details. - * - * @NL80211_ATTR_MBSSID_ELEMS: Nested parameter to pass multiple BSSID elements. - * Mandatory parameter for the transmitting interface to enable MBSSID. - * Optional for the non-transmitting interfaces. - * - * @NL80211_ATTR_RADAR_BACKGROUND: Configure dedicated offchannel chain - * available for radar/CAC detection on some hw. This chain can't be used - * to transmit or receive frames and it is bounded to a running wdev. - * Background radar/CAC detection allows to avoid the CAC downtime - * switching on a different channel during CAC detection on the selected - * radar channel. - * - * @NL80211_ATTR_AP_SETTINGS_FLAGS: u32 attribute contains ap settings flags, - * enumerated in &enum nl80211_ap_settings_flags. This attribute shall be - * used with %NL80211_CMD_START_AP request. - * * @NUM_NL80211_ATTR: total number of nl80211_attrs available * @NL80211_ATTR_MAX: highest attribute number currently defined * @__NL80211_ATTR_AFTER_LAST: internal use @@ -3156,19 +3054,6 @@ enum nl80211_attrs { NL80211_ATTR_DISABLE_HE, - NL80211_ATTR_OBSS_COLOR_BITMAP, - - NL80211_ATTR_COLOR_CHANGE_COUNT, - NL80211_ATTR_COLOR_CHANGE_COLOR, - NL80211_ATTR_COLOR_CHANGE_ELEMS, - - NL80211_ATTR_MBSSID_CONFIG, - NL80211_ATTR_MBSSID_ELEMS, - - NL80211_ATTR_RADAR_BACKGROUND, - - NL80211_ATTR_AP_SETTINGS_FLAGS, - /* add attributes here, update the policy in nl80211.c */ __NL80211_ATTR_AFTER_LAST, @@ -3762,12 +3647,11 @@ enum nl80211_mpath_info { * capabilities IE * @NL80211_BAND_IFTYPE_ATTR_HE_CAP_PPE: HE PPE thresholds information as * defined in HE capabilities IE + * @NL80211_BAND_IFTYPE_ATTR_MAX: highest band HE capability attribute currently + * 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 - * @NL80211_BAND_IFTYPE_ATTR_MAX: highest band attribute currently defined */ enum nl80211_band_iftype_attr { __NL80211_BAND_IFTYPE_ATTR_INVALID, @@ -3778,7 +3662,6 @@ 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, @@ -5001,7 +4884,6 @@ enum nl80211_txrate_gi { * @NL80211_BAND_60GHZ: around 60 GHz band (58.32 - 69.12 GHz) * @NL80211_BAND_6GHZ: around 6 GHz band (5.9 - 7.2 GHz) * @NL80211_BAND_S1GHZ: around 900MHz, supported by S1G PHYs - * @NL80211_BAND_LC: light communication band (placeholder) * @NUM_NL80211_BANDS: number of bands, avoid using this in userspace * since newer kernel versions may support more bands */ @@ -5011,7 +4893,6 @@ enum nl80211_band { NL80211_BAND_60GHZ, NL80211_BAND_6GHZ, NL80211_BAND_S1GHZ, - NL80211_BAND_LC, NUM_NL80211_BANDS, }; @@ -5578,7 +5459,7 @@ enum nl80211_iface_limit_attrs { * => allows 8 of AP/GO that can have BI gcd >= min gcd * * numbers = [ #{STA} <= 2 ], channels = 2, max = 2 - * => allows two STAs on the same or on different channels + * => allows two STAs on different channels * * numbers = [ #{STA} <= 1, #{P2P-client,P2P-GO} <= 3 ], max = 4 * => allows a STA plus three P2P interfaces @@ -5623,7 +5504,7 @@ enum nl80211_if_combination_attrs { * @NL80211_PLINK_ESTAB: mesh peer link is established * @NL80211_PLINK_HOLDING: mesh peer link is being closed or cancelled * @NL80211_PLINK_BLOCKED: all frames transmitted from this mesh - * plink are discarded, except for authentication frames + * plink are discarded * @NUM_NL80211_PLINK_STATES: number of peer link states * @MAX_NL80211_PLINK_STATES: highest numerical value of plink states */ @@ -5760,15 +5641,13 @@ enum nl80211_tdls_operation { NL80211_TDLS_DISABLE_LINK, }; -/** +/* * enum nl80211_ap_sme_features - device-integrated AP features - * @NL80211_AP_SME_SA_QUERY_OFFLOAD: SA Query procedures offloaded to driver - * when user space indicates support for SA Query procedures offload during - * "start ap" with %NL80211_AP_SETTINGS_SA_QUERY_OFFLOAD_SUPPORT. - */ + * Reserved for future use, no bits are defined in + * NL80211_ATTR_DEVICE_AP_SME yet. enum nl80211_ap_sme_features { - NL80211_AP_SME_SA_QUERY_OFFLOAD = 1 << 0, }; + */ /** * enum nl80211_feature_flags - device/driver features @@ -6058,27 +5937,6 @@ enum nl80211_feature_flags { * @NL80211_EXT_FEATURE_BEACON_RATE_HE: Driver supports beacon rate * configuration (AP/mesh) with HE rates. * - * @NL80211_EXT_FEATURE_SECURE_LTF: Device supports secure LTF measurement - * exchange protocol. - * - * @NL80211_EXT_FEATURE_SECURE_RTT: Device supports secure RTT measurement - * exchange protocol. - * - * @NL80211_EXT_FEATURE_PROT_RANGE_NEGO_AND_MEASURE: Device supports management - * frame protection for all management frames exchanged during the - * negotiation and range measurement procedure. - * - * @NL80211_EXT_FEATURE_BSS_COLOR: The driver supports BSS color collision - * detection and change announcemnts. - * - * @NL80211_EXT_FEATURE_FILS_CRYPTO_OFFLOAD: Driver running in AP mode supports - * FILS encryption and decryption for (Re)Association Request and Response - * frames. Userspace has to share FILS AAD details to the driver by using - * @NL80211_CMD_SET_FILS_AAD. - * - * @NL80211_EXT_FEATURE_RADAR_BACKGROUND: Device supports background radar/CAC - * detection. - * * @NUM_NL80211_EXT_FEATURES: number of extended features. * @MAX_NL80211_EXT_FEATURES: highest extended feature index. */ @@ -6140,12 +5998,6 @@ enum nl80211_ext_feature_index { NL80211_EXT_FEATURE_FILS_DISCOVERY, NL80211_EXT_FEATURE_UNSOL_BCAST_PROBE_RESP, NL80211_EXT_FEATURE_BEACON_RATE_HE, - NL80211_EXT_FEATURE_SECURE_LTF, - NL80211_EXT_FEATURE_SECURE_RTT, - NL80211_EXT_FEATURE_PROT_RANGE_NEGO_AND_MEASURE, - NL80211_EXT_FEATURE_BSS_COLOR, - NL80211_EXT_FEATURE_FILS_CRYPTO_OFFLOAD, - NL80211_EXT_FEATURE_RADAR_BACKGROUND, /* add new features before the definition below */ NUM_NL80211_EXT_FEATURES, @@ -6443,13 +6295,11 @@ struct nl80211_vendor_cmd_info { * @NL80211_TDLS_PEER_HT: TDLS peer is HT capable. * @NL80211_TDLS_PEER_VHT: TDLS peer is VHT capable. * @NL80211_TDLS_PEER_WMM: TDLS peer is WMM capable. - * @NL80211_TDLS_PEER_HE: TDLS peer is HE capable. */ enum nl80211_tdls_peer_capability { NL80211_TDLS_PEER_HT = 1<<0, NL80211_TDLS_PEER_VHT = 1<<1, NL80211_TDLS_PEER_WMM = 1<<2, - NL80211_TDLS_PEER_HE = 1<<3, }; /** @@ -7041,12 +6891,6 @@ enum nl80211_peer_measurement_ftm_capa { * if neither %NL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED nor * %NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED is set, EDCA based * ranging will be used. - * @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 @@ -7065,8 +6909,6 @@ enum nl80211_peer_measurement_ftm_req { NL80211_PMSR_FTM_REQ_ATTR_REQUEST_CIVICLOC, 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, @@ -7435,76 +7277,4 @@ enum nl80211_sar_specs_attrs { NL80211_SAR_ATTR_SPECS_MAX = __NL80211_SAR_ATTR_SPECS_LAST - 1, }; -/** - * enum nl80211_mbssid_config_attributes - multiple BSSID (MBSSID) and enhanced - * multi-BSSID advertisements (EMA) in AP mode. - * Kernel uses some of these attributes to advertise driver's support for - * MBSSID and EMA. - * Remaining attributes should be used by the userspace to configure the - * features. - * - * @__NL80211_MBSSID_CONFIG_ATTR_INVALID: Invalid - * - * @NL80211_MBSSID_CONFIG_ATTR_MAX_INTERFACES: Used by the kernel to advertise - * the maximum number of MBSSID interfaces supported by the driver. - * Driver should indicate MBSSID support by setting - * wiphy->mbssid_max_interfaces to a value more than or equal to 2. - * - * @NL80211_MBSSID_CONFIG_ATTR_MAX_EMA_PROFILE_PERIODICITY: Used by the kernel - * to advertise the maximum profile periodicity supported by the driver - * if EMA is enabled. Driver should indicate EMA support to the userspace - * by setting wiphy->ema_max_profile_periodicity to - * a non-zero value. - * - * @NL80211_MBSSID_CONFIG_ATTR_INDEX: Mandatory parameter to pass the index of - * this BSS (u8) in the multiple BSSID set. - * Value must be set to 0 for the transmitting interface and non-zero for - * all non-transmitting interfaces. The userspace will be responsible - * for using unique indices for the interfaces. - * Range: 0 to wiphy->mbssid_max_interfaces-1. - * - * @NL80211_MBSSID_CONFIG_ATTR_TX_IFINDEX: Mandatory parameter for - * a non-transmitted profile which provides the interface index (u32) of - * the transmitted profile. The value must match one of the interface - * indices advertised by the kernel. Optional if the interface being set up - * is the transmitting one, however, if provided then the value must match - * the interface index of the same. - * - * @NL80211_MBSSID_CONFIG_ATTR_EMA: Flag used to enable EMA AP feature. - * Setting this flag is permitted only if the driver advertises EMA support - * by setting wiphy->ema_max_profile_periodicity to non-zero. - * - * @__NL80211_MBSSID_CONFIG_ATTR_LAST: Internal - * @NL80211_MBSSID_CONFIG_ATTR_MAX: highest attribute - */ -enum nl80211_mbssid_config_attributes { - __NL80211_MBSSID_CONFIG_ATTR_INVALID, - - NL80211_MBSSID_CONFIG_ATTR_MAX_INTERFACES, - NL80211_MBSSID_CONFIG_ATTR_MAX_EMA_PROFILE_PERIODICITY, - NL80211_MBSSID_CONFIG_ATTR_INDEX, - NL80211_MBSSID_CONFIG_ATTR_TX_IFINDEX, - NL80211_MBSSID_CONFIG_ATTR_EMA, - - /* keep last */ - __NL80211_MBSSID_CONFIG_ATTR_LAST, - NL80211_MBSSID_CONFIG_ATTR_MAX = __NL80211_MBSSID_CONFIG_ATTR_LAST - 1, -}; - -/** - * enum nl80211_ap_settings_flags - AP settings flags - * - * @NL80211_AP_SETTINGS_EXTERNAL_AUTH_SUPPORT: AP supports external - * authentication. - * @NL80211_AP_SETTINGS_SA_QUERY_OFFLOAD_SUPPORT: Userspace supports SA Query - * procedures offload to driver. If driver advertises - * %NL80211_AP_SME_SA_QUERY_OFFLOAD in AP SME features, userspace shall - * ignore SA Query procedures and validations when this flag is set by - * userspace. - */ -enum nl80211_ap_settings_flags { - NL80211_AP_SETTINGS_EXTERNAL_AUTH_SUPPORT = 1 << 0, - NL80211_AP_SETTINGS_SA_QUERY_OFFLOAD_SUPPORT = 1 << 1, -}; - #endif /* __LINUX_NL80211_H */ diff --git a/original/uapi/linux/openvswitch.h b/original/uapi/linux/openvswitch.h index 150bcff..8d16744 100644 --- a/original/uapi/linux/openvswitch.h +++ b/original/uapi/linux/openvswitch.h @@ -70,8 +70,6 @@ enum ovs_datapath_cmd { * set on the datapath port (for OVS_ACTION_ATTR_MISS). Only valid on * %OVS_DP_CMD_NEW requests. A value of zero indicates that upcalls should * not be sent. - * @OVS_DP_ATTR_PER_CPU_PIDS: Per-cpu array of PIDs for upcalls when - * OVS_DP_F_DISPATCH_UPCALL_PER_CPU feature is set. * @OVS_DP_ATTR_STATS: Statistics about packets that have passed through the * datapath. Always present in notifications. * @OVS_DP_ATTR_MEGAFLOW_STATS: Statistics about mega flow masks usage for the @@ -89,9 +87,6 @@ enum ovs_datapath_attr { OVS_DP_ATTR_USER_FEATURES, /* OVS_DP_F_* */ OVS_DP_ATTR_PAD, OVS_DP_ATTR_MASKS_CACHE_SIZE, - OVS_DP_ATTR_PER_CPU_PIDS, /* Netlink PIDS to receive upcalls in - * per-cpu dispatch mode - */ __OVS_DP_ATTR_MAX }; @@ -132,9 +127,6 @@ struct ovs_vport_stats { /* Allow tc offload recirc sharing */ #define OVS_DP_F_TC_RECIRC_SHARING (1 << 2) -/* Allow per-cpu dispatch of upcalls */ -#define OVS_DP_F_DISPATCH_UPCALL_PER_CPU (1 << 3) - /* Fixed logical ports. */ #define OVSP_LOCAL ((__u32)0) diff --git a/original/uapi/linux/pci_regs.h b/original/uapi/linux/pci_regs.h index bee1a9e..e709ae8 100644 --- a/original/uapi/linux/pci_regs.h +++ b/original/uapi/linux/pci_regs.h @@ -301,23 +301,23 @@ #define PCI_SID_ESR_FIC 0x20 /* First In Chassis Flag */ #define PCI_SID_CHASSIS_NR 3 /* Chassis Number */ -/* Message Signaled Interrupt registers */ +/* Message Signalled Interrupt registers */ -#define PCI_MSI_FLAGS 0x02 /* Message Control */ +#define PCI_MSI_FLAGS 2 /* Message Control */ #define PCI_MSI_FLAGS_ENABLE 0x0001 /* MSI feature enabled */ #define PCI_MSI_FLAGS_QMASK 0x000e /* Maximum queue size available */ #define PCI_MSI_FLAGS_QSIZE 0x0070 /* Message queue size configured */ #define PCI_MSI_FLAGS_64BIT 0x0080 /* 64-bit addresses allowed */ #define PCI_MSI_FLAGS_MASKBIT 0x0100 /* Per-vector masking capable */ #define PCI_MSI_RFU 3 /* Rest of capability flags */ -#define PCI_MSI_ADDRESS_LO 0x04 /* Lower 32 bits */ -#define PCI_MSI_ADDRESS_HI 0x08 /* Upper 32 bits (if PCI_MSI_FLAGS_64BIT set) */ -#define PCI_MSI_DATA_32 0x08 /* 16 bits of data for 32-bit devices */ -#define PCI_MSI_MASK_32 0x0c /* Mask bits register for 32-bit devices */ -#define PCI_MSI_PENDING_32 0x10 /* Pending intrs for 32-bit devices */ -#define PCI_MSI_DATA_64 0x0c /* 16 bits of data for 64-bit devices */ -#define PCI_MSI_MASK_64 0x10 /* Mask bits register for 64-bit devices */ -#define PCI_MSI_PENDING_64 0x14 /* Pending intrs for 64-bit devices */ +#define PCI_MSI_ADDRESS_LO 4 /* Lower 32 bits */ +#define PCI_MSI_ADDRESS_HI 8 /* Upper 32 bits (if PCI_MSI_FLAGS_64BIT set) */ +#define PCI_MSI_DATA_32 8 /* 16 bits of data for 32-bit devices */ +#define PCI_MSI_MASK_32 12 /* Mask bits register for 32-bit devices */ +#define PCI_MSI_PENDING_32 16 /* Pending intrs for 32-bit devices */ +#define PCI_MSI_DATA_64 12 /* 16 bits of data for 64-bit devices */ +#define PCI_MSI_MASK_64 16 /* Mask bits register for 64-bit devices */ +#define PCI_MSI_PENDING_64 20 /* Pending intrs for 64-bit devices */ /* MSI-X registers (in MSI-X capability) */ #define PCI_MSIX_FLAGS 2 /* Message Control */ @@ -335,10 +335,10 @@ /* MSI-X Table entry format (in memory mapped by a BAR) */ #define PCI_MSIX_ENTRY_SIZE 16 -#define PCI_MSIX_ENTRY_LOWER_ADDR 0x0 /* Message Address */ -#define PCI_MSIX_ENTRY_UPPER_ADDR 0x4 /* Message Upper Address */ -#define PCI_MSIX_ENTRY_DATA 0x8 /* Message Data */ -#define PCI_MSIX_ENTRY_VECTOR_CTRL 0xc /* Vector Control */ +#define PCI_MSIX_ENTRY_LOWER_ADDR 0 /* Message Address */ +#define PCI_MSIX_ENTRY_UPPER_ADDR 4 /* Message Upper Address */ +#define PCI_MSIX_ENTRY_DATA 8 /* Message Data */ +#define PCI_MSIX_ENTRY_VECTOR_CTRL 12 /* Vector Control */ #define PCI_MSIX_ENTRY_CTRL_MASKBIT 0x00000001 /* CompactPCI Hotswap Register */ @@ -470,7 +470,7 @@ /* PCI Express capability registers */ -#define PCI_EXP_FLAGS 0x02 /* Capabilities register */ +#define PCI_EXP_FLAGS 2 /* Capabilities register */ #define PCI_EXP_FLAGS_VERS 0x000f /* Capability version */ #define PCI_EXP_FLAGS_TYPE 0x00f0 /* Device/Port type */ #define PCI_EXP_TYPE_ENDPOINT 0x0 /* Express Endpoint */ @@ -484,7 +484,7 @@ #define PCI_EXP_TYPE_RC_EC 0xa /* Root Complex Event Collector */ #define PCI_EXP_FLAGS_SLOT 0x0100 /* Slot implemented */ #define PCI_EXP_FLAGS_IRQ 0x3e00 /* Interrupt message number */ -#define PCI_EXP_DEVCAP 0x04 /* Device capabilities */ +#define PCI_EXP_DEVCAP 4 /* Device capabilities */ #define PCI_EXP_DEVCAP_PAYLOAD 0x00000007 /* Max_Payload_Size */ #define PCI_EXP_DEVCAP_PHANTOM 0x00000018 /* Phantom functions */ #define PCI_EXP_DEVCAP_EXT_TAG 0x00000020 /* Extended tags */ @@ -497,19 +497,13 @@ #define PCI_EXP_DEVCAP_PWR_VAL 0x03fc0000 /* Slot Power Limit Value */ #define PCI_EXP_DEVCAP_PWR_SCL 0x0c000000 /* Slot Power Limit Scale */ #define PCI_EXP_DEVCAP_FLR 0x10000000 /* Function Level Reset */ -#define PCI_EXP_DEVCTL 0x08 /* Device Control */ +#define PCI_EXP_DEVCTL 8 /* Device Control */ #define PCI_EXP_DEVCTL_CERE 0x0001 /* Correctable Error Reporting En. */ #define PCI_EXP_DEVCTL_NFERE 0x0002 /* Non-Fatal Error Reporting Enable */ #define PCI_EXP_DEVCTL_FERE 0x0004 /* Fatal Error Reporting Enable */ #define PCI_EXP_DEVCTL_URRE 0x0008 /* Unsupported Request Reporting En. */ #define PCI_EXP_DEVCTL_RELAX_EN 0x0010 /* Enable relaxed ordering */ #define PCI_EXP_DEVCTL_PAYLOAD 0x00e0 /* Max_Payload_Size */ -#define PCI_EXP_DEVCTL_PAYLOAD_128B 0x0000 /* 128 Bytes */ -#define PCI_EXP_DEVCTL_PAYLOAD_256B 0x0020 /* 256 Bytes */ -#define PCI_EXP_DEVCTL_PAYLOAD_512B 0x0040 /* 512 Bytes */ -#define PCI_EXP_DEVCTL_PAYLOAD_1024B 0x0060 /* 1024 Bytes */ -#define PCI_EXP_DEVCTL_PAYLOAD_2048B 0x0080 /* 2048 Bytes */ -#define PCI_EXP_DEVCTL_PAYLOAD_4096B 0x00a0 /* 4096 Bytes */ #define PCI_EXP_DEVCTL_EXT_TAG 0x0100 /* Extended Tag Field Enable */ #define PCI_EXP_DEVCTL_PHANTOM 0x0200 /* Phantom Functions Enable */ #define PCI_EXP_DEVCTL_AUX_PME 0x0400 /* Auxiliary Power PM Enable */ @@ -522,7 +516,7 @@ #define PCI_EXP_DEVCTL_READRQ_2048B 0x4000 /* 2048 Bytes */ #define PCI_EXP_DEVCTL_READRQ_4096B 0x5000 /* 4096 Bytes */ #define PCI_EXP_DEVCTL_BCR_FLR 0x8000 /* Bridge Configuration Retry / FLR */ -#define PCI_EXP_DEVSTA 0x0a /* Device Status */ +#define PCI_EXP_DEVSTA 10 /* Device Status */ #define PCI_EXP_DEVSTA_CED 0x0001 /* Correctable Error Detected */ #define PCI_EXP_DEVSTA_NFED 0x0002 /* Non-Fatal Error Detected */ #define PCI_EXP_DEVSTA_FED 0x0004 /* Fatal Error Detected */ @@ -530,7 +524,7 @@ #define PCI_EXP_DEVSTA_AUXPD 0x0010 /* AUX Power Detected */ #define PCI_EXP_DEVSTA_TRPND 0x0020 /* Transactions Pending */ #define PCI_CAP_EXP_RC_ENDPOINT_SIZEOF_V1 12 /* v1 endpoints without link end here */ -#define PCI_EXP_LNKCAP 0x0c /* Link Capabilities */ +#define PCI_EXP_LNKCAP 12 /* Link Capabilities */ #define PCI_EXP_LNKCAP_SLS 0x0000000f /* Supported Link Speeds */ #define PCI_EXP_LNKCAP_SLS_2_5GB 0x00000001 /* LNKCAP2 SLS Vector bit 0 */ #define PCI_EXP_LNKCAP_SLS_5_0GB 0x00000002 /* LNKCAP2 SLS Vector bit 1 */ @@ -549,7 +543,7 @@ #define PCI_EXP_LNKCAP_DLLLARC 0x00100000 /* Data Link Layer Link Active Reporting Capable */ #define PCI_EXP_LNKCAP_LBNC 0x00200000 /* Link Bandwidth Notification Capability */ #define PCI_EXP_LNKCAP_PN 0xff000000 /* Port Number */ -#define PCI_EXP_LNKCTL 0x10 /* Link Control */ +#define PCI_EXP_LNKCTL 16 /* Link Control */ #define PCI_EXP_LNKCTL_ASPMC 0x0003 /* ASPM Control */ #define PCI_EXP_LNKCTL_ASPM_L0S 0x0001 /* L0s Enable */ #define PCI_EXP_LNKCTL_ASPM_L1 0x0002 /* L1 Enable */ @@ -562,7 +556,7 @@ #define PCI_EXP_LNKCTL_HAWD 0x0200 /* Hardware Autonomous Width Disable */ #define PCI_EXP_LNKCTL_LBMIE 0x0400 /* Link Bandwidth Management Interrupt Enable */ #define PCI_EXP_LNKCTL_LABIE 0x0800 /* Link Autonomous Bandwidth Interrupt Enable */ -#define PCI_EXP_LNKSTA 0x12 /* Link Status */ +#define PCI_EXP_LNKSTA 18 /* Link Status */ #define PCI_EXP_LNKSTA_CLS 0x000f /* Current Link Speed */ #define PCI_EXP_LNKSTA_CLS_2_5GB 0x0001 /* Current Link Speed 2.5GT/s */ #define PCI_EXP_LNKSTA_CLS_5_0GB 0x0002 /* Current Link Speed 5.0GT/s */ @@ -582,7 +576,7 @@ #define PCI_EXP_LNKSTA_LBMS 0x4000 /* Link Bandwidth Management Status */ #define PCI_EXP_LNKSTA_LABS 0x8000 /* Link Autonomous Bandwidth Status */ #define PCI_CAP_EXP_ENDPOINT_SIZEOF_V1 20 /* v1 endpoints with link end here */ -#define PCI_EXP_SLTCAP 0x14 /* Slot Capabilities */ +#define PCI_EXP_SLTCAP 20 /* Slot Capabilities */ #define PCI_EXP_SLTCAP_ABP 0x00000001 /* Attention Button Present */ #define PCI_EXP_SLTCAP_PCP 0x00000002 /* Power Controller Present */ #define PCI_EXP_SLTCAP_MRLSP 0x00000004 /* MRL Sensor Present */ @@ -595,7 +589,7 @@ #define PCI_EXP_SLTCAP_EIP 0x00020000 /* Electromechanical Interlock Present */ #define PCI_EXP_SLTCAP_NCCS 0x00040000 /* No Command Completed Support */ #define PCI_EXP_SLTCAP_PSN 0xfff80000 /* Physical Slot Number */ -#define PCI_EXP_SLTCTL 0x18 /* Slot Control */ +#define PCI_EXP_SLTCTL 24 /* Slot Control */ #define PCI_EXP_SLTCTL_ABPE 0x0001 /* Attention Button Pressed Enable */ #define PCI_EXP_SLTCTL_PFDE 0x0002 /* Power Fault Detected Enable */ #define PCI_EXP_SLTCTL_MRLSCE 0x0004 /* MRL Sensor Changed Enable */ @@ -617,7 +611,7 @@ #define PCI_EXP_SLTCTL_EIC 0x0800 /* Electromechanical Interlock Control */ #define PCI_EXP_SLTCTL_DLLSCE 0x1000 /* Data Link Layer State Changed Enable */ #define PCI_EXP_SLTCTL_IBPD_DISABLE 0x4000 /* In-band PD disable */ -#define PCI_EXP_SLTSTA 0x1a /* Slot Status */ +#define PCI_EXP_SLTSTA 26 /* Slot Status */ #define PCI_EXP_SLTSTA_ABP 0x0001 /* Attention Button Pressed */ #define PCI_EXP_SLTSTA_PFD 0x0002 /* Power Fault Detected */ #define PCI_EXP_SLTSTA_MRLSC 0x0004 /* MRL Sensor Changed */ @@ -627,15 +621,15 @@ #define PCI_EXP_SLTSTA_PDS 0x0040 /* Presence Detect State */ #define PCI_EXP_SLTSTA_EIS 0x0080 /* Electromechanical Interlock Status */ #define PCI_EXP_SLTSTA_DLLSC 0x0100 /* Data Link Layer State Changed */ -#define PCI_EXP_RTCTL 0x1c /* Root Control */ +#define PCI_EXP_RTCTL 28 /* Root Control */ #define PCI_EXP_RTCTL_SECEE 0x0001 /* System Error on Correctable Error */ #define PCI_EXP_RTCTL_SENFEE 0x0002 /* System Error on Non-Fatal Error */ #define PCI_EXP_RTCTL_SEFEE 0x0004 /* System Error on Fatal Error */ #define PCI_EXP_RTCTL_PMEIE 0x0008 /* PME Interrupt Enable */ #define PCI_EXP_RTCTL_CRSSVE 0x0010 /* CRS Software Visibility Enable */ -#define PCI_EXP_RTCAP 0x1e /* Root Capabilities */ +#define PCI_EXP_RTCAP 30 /* Root Capabilities */ #define PCI_EXP_RTCAP_CRSVIS 0x0001 /* CRS Software Visibility capability */ -#define PCI_EXP_RTSTA 0x20 /* Root Status */ +#define PCI_EXP_RTSTA 32 /* Root Status */ #define PCI_EXP_RTSTA_PME 0x00010000 /* PME status */ #define PCI_EXP_RTSTA_PENDING 0x00020000 /* PME pending */ /* @@ -646,7 +640,7 @@ * Use pcie_capability_read_word() and similar interfaces to use them * safely. */ -#define PCI_EXP_DEVCAP2 0x24 /* Device Capabilities 2 */ +#define PCI_EXP_DEVCAP2 36 /* Device Capabilities 2 */ #define PCI_EXP_DEVCAP2_COMP_TMOUT_DIS 0x00000010 /* Completion Timeout Disable supported */ #define PCI_EXP_DEVCAP2_ARI 0x00000020 /* Alternative Routing-ID */ #define PCI_EXP_DEVCAP2_ATOMIC_ROUTE 0x00000040 /* Atomic Op routing */ @@ -658,7 +652,7 @@ #define PCI_EXP_DEVCAP2_OBFF_MSG 0x00040000 /* New message signaling */ #define PCI_EXP_DEVCAP2_OBFF_WAKE 0x00080000 /* Re-use WAKE# for OBFF */ #define PCI_EXP_DEVCAP2_EE_PREFIX 0x00200000 /* End-End TLP Prefix */ -#define PCI_EXP_DEVCTL2 0x28 /* Device Control 2 */ +#define PCI_EXP_DEVCTL2 40 /* Device Control 2 */ #define PCI_EXP_DEVCTL2_COMP_TIMEOUT 0x000f /* Completion Timeout Value */ #define PCI_EXP_DEVCTL2_COMP_TMOUT_DIS 0x0010 /* Completion Timeout Disable */ #define PCI_EXP_DEVCTL2_ARI 0x0020 /* Alternative Routing-ID */ @@ -670,9 +664,9 @@ #define PCI_EXP_DEVCTL2_OBFF_MSGA_EN 0x2000 /* Enable OBFF Message type A */ #define PCI_EXP_DEVCTL2_OBFF_MSGB_EN 0x4000 /* Enable OBFF Message type B */ #define PCI_EXP_DEVCTL2_OBFF_WAKE_EN 0x6000 /* OBFF using WAKE# signaling */ -#define PCI_EXP_DEVSTA2 0x2a /* Device Status 2 */ -#define PCI_CAP_EXP_RC_ENDPOINT_SIZEOF_V2 0x2c /* end of v2 EPs w/o link */ -#define PCI_EXP_LNKCAP2 0x2c /* Link Capabilities 2 */ +#define PCI_EXP_DEVSTA2 42 /* Device Status 2 */ +#define PCI_CAP_EXP_RC_ENDPOINT_SIZEOF_V2 44 /* v2 endpoints without link end here */ +#define PCI_EXP_LNKCAP2 44 /* Link Capabilities 2 */ #define PCI_EXP_LNKCAP2_SLS_2_5GB 0x00000002 /* Supported Speed 2.5GT/s */ #define PCI_EXP_LNKCAP2_SLS_5_0GB 0x00000004 /* Supported Speed 5GT/s */ #define PCI_EXP_LNKCAP2_SLS_8_0GB 0x00000008 /* Supported Speed 8GT/s */ @@ -680,7 +674,7 @@ #define PCI_EXP_LNKCAP2_SLS_32_0GB 0x00000020 /* Supported Speed 32GT/s */ #define PCI_EXP_LNKCAP2_SLS_64_0GB 0x00000040 /* Supported Speed 64GT/s */ #define PCI_EXP_LNKCAP2_CROSSLINK 0x00000100 /* Crosslink supported */ -#define PCI_EXP_LNKCTL2 0x30 /* Link Control 2 */ +#define PCI_EXP_LNKCTL2 48 /* Link Control 2 */ #define PCI_EXP_LNKCTL2_TLS 0x000f #define PCI_EXP_LNKCTL2_TLS_2_5GT 0x0001 /* Supported Speed 2.5GT/s */ #define PCI_EXP_LNKCTL2_TLS_5_0GT 0x0002 /* Supported Speed 5GT/s */ @@ -691,12 +685,12 @@ #define PCI_EXP_LNKCTL2_ENTER_COMP 0x0010 /* Enter Compliance */ #define PCI_EXP_LNKCTL2_TX_MARGIN 0x0380 /* Transmit Margin */ #define PCI_EXP_LNKCTL2_HASD 0x0020 /* HW Autonomous Speed Disable */ -#define PCI_EXP_LNKSTA2 0x32 /* Link Status 2 */ -#define PCI_CAP_EXP_ENDPOINT_SIZEOF_V2 0x32 /* end of v2 EPs w/ link */ -#define PCI_EXP_SLTCAP2 0x34 /* Slot Capabilities 2 */ +#define PCI_EXP_LNKSTA2 50 /* Link Status 2 */ +#define PCI_CAP_EXP_ENDPOINT_SIZEOF_V2 52 /* v2 endpoints with link end here */ +#define PCI_EXP_SLTCAP2 52 /* Slot Capabilities 2 */ #define PCI_EXP_SLTCAP2_IBPD 0x00000001 /* In-band PD Disable Supported */ -#define PCI_EXP_SLTCTL2 0x38 /* Slot Control 2 */ -#define PCI_EXP_SLTSTA2 0x3a /* Slot Status 2 */ +#define PCI_EXP_SLTCTL2 56 /* Slot Control 2 */ +#define PCI_EXP_SLTSTA2 58 /* Slot Status 2 */ /* Extended Capabilities (PCI-X 2.0 and Express) */ #define PCI_EXT_CAP_ID(header) (header & 0x0000ffff) @@ -742,7 +736,7 @@ #define PCI_EXT_CAP_MCAST_ENDPOINT_SIZEOF 40 /* Advanced Error Reporting */ -#define PCI_ERR_UNCOR_STATUS 0x04 /* Uncorrectable Error Status */ +#define PCI_ERR_UNCOR_STATUS 4 /* Uncorrectable Error Status */ #define PCI_ERR_UNC_UND 0x00000001 /* Undefined */ #define PCI_ERR_UNC_DLP 0x00000010 /* Data Link Protocol */ #define PCI_ERR_UNC_SURPDN 0x00000020 /* Surprise Down */ @@ -760,11 +754,11 @@ #define PCI_ERR_UNC_MCBTLP 0x00800000 /* MC blocked TLP */ #define PCI_ERR_UNC_ATOMEG 0x01000000 /* Atomic egress blocked */ #define PCI_ERR_UNC_TLPPRE 0x02000000 /* TLP prefix blocked */ -#define PCI_ERR_UNCOR_MASK 0x08 /* Uncorrectable Error Mask */ +#define PCI_ERR_UNCOR_MASK 8 /* Uncorrectable Error Mask */ /* Same bits as above */ -#define PCI_ERR_UNCOR_SEVER 0x0c /* Uncorrectable Error Severity */ +#define PCI_ERR_UNCOR_SEVER 12 /* Uncorrectable Error Severity */ /* Same bits as above */ -#define PCI_ERR_COR_STATUS 0x10 /* Correctable Error Status */ +#define PCI_ERR_COR_STATUS 16 /* Correctable Error Status */ #define PCI_ERR_COR_RCVR 0x00000001 /* Receiver Error Status */ #define PCI_ERR_COR_BAD_TLP 0x00000040 /* Bad TLP Status */ #define PCI_ERR_COR_BAD_DLLP 0x00000080 /* Bad DLLP Status */ @@ -773,20 +767,20 @@ #define PCI_ERR_COR_ADV_NFAT 0x00002000 /* Advisory Non-Fatal */ #define PCI_ERR_COR_INTERNAL 0x00004000 /* Corrected Internal */ #define PCI_ERR_COR_LOG_OVER 0x00008000 /* Header Log Overflow */ -#define PCI_ERR_COR_MASK 0x14 /* Correctable Error Mask */ +#define PCI_ERR_COR_MASK 20 /* Correctable Error Mask */ /* Same bits as above */ -#define PCI_ERR_CAP 0x18 /* Advanced Error Capabilities & Ctrl*/ -#define PCI_ERR_CAP_FEP(x) ((x) & 0x1f) /* First Error Pointer */ +#define PCI_ERR_CAP 24 /* Advanced Error Capabilities */ +#define PCI_ERR_CAP_FEP(x) ((x) & 31) /* First Error Pointer */ #define PCI_ERR_CAP_ECRC_GENC 0x00000020 /* ECRC Generation Capable */ #define PCI_ERR_CAP_ECRC_GENE 0x00000040 /* ECRC Generation Enable */ #define PCI_ERR_CAP_ECRC_CHKC 0x00000080 /* ECRC Check Capable */ #define PCI_ERR_CAP_ECRC_CHKE 0x00000100 /* ECRC Check Enable */ -#define PCI_ERR_HEADER_LOG 0x1c /* Header Log Register (16 bytes) */ -#define PCI_ERR_ROOT_COMMAND 0x2c /* Root Error Command */ +#define PCI_ERR_HEADER_LOG 28 /* Header Log Register (16 bytes) */ +#define PCI_ERR_ROOT_COMMAND 44 /* Root Error Command */ #define PCI_ERR_ROOT_CMD_COR_EN 0x00000001 /* Correctable Err Reporting Enable */ #define PCI_ERR_ROOT_CMD_NONFATAL_EN 0x00000002 /* Non-Fatal Err Reporting Enable */ #define PCI_ERR_ROOT_CMD_FATAL_EN 0x00000004 /* Fatal Err Reporting Enable */ -#define PCI_ERR_ROOT_STATUS 0x30 +#define PCI_ERR_ROOT_STATUS 48 #define PCI_ERR_ROOT_COR_RCV 0x00000001 /* ERR_COR Received */ #define PCI_ERR_ROOT_MULTI_COR_RCV 0x00000002 /* Multiple ERR_COR */ #define PCI_ERR_ROOT_UNCOR_RCV 0x00000004 /* ERR_FATAL/NONFATAL */ @@ -795,52 +789,52 @@ #define PCI_ERR_ROOT_NONFATAL_RCV 0x00000020 /* Non-Fatal Received */ #define PCI_ERR_ROOT_FATAL_RCV 0x00000040 /* Fatal Received */ #define PCI_ERR_ROOT_AER_IRQ 0xf8000000 /* Advanced Error Interrupt Message Number */ -#define PCI_ERR_ROOT_ERR_SRC 0x34 /* Error Source Identification */ +#define PCI_ERR_ROOT_ERR_SRC 52 /* Error Source Identification */ /* Virtual Channel */ -#define PCI_VC_PORT_CAP1 0x04 +#define PCI_VC_PORT_CAP1 4 #define PCI_VC_CAP1_EVCC 0x00000007 /* extended VC count */ #define PCI_VC_CAP1_LPEVCC 0x00000070 /* low prio extended VC count */ #define PCI_VC_CAP1_ARB_SIZE 0x00000c00 -#define PCI_VC_PORT_CAP2 0x08 +#define PCI_VC_PORT_CAP2 8 #define PCI_VC_CAP2_32_PHASE 0x00000002 #define PCI_VC_CAP2_64_PHASE 0x00000004 #define PCI_VC_CAP2_128_PHASE 0x00000008 #define PCI_VC_CAP2_ARB_OFF 0xff000000 -#define PCI_VC_PORT_CTRL 0x0c +#define PCI_VC_PORT_CTRL 12 #define PCI_VC_PORT_CTRL_LOAD_TABLE 0x00000001 -#define PCI_VC_PORT_STATUS 0x0e +#define PCI_VC_PORT_STATUS 14 #define PCI_VC_PORT_STATUS_TABLE 0x00000001 -#define PCI_VC_RES_CAP 0x10 +#define PCI_VC_RES_CAP 16 #define PCI_VC_RES_CAP_32_PHASE 0x00000002 #define PCI_VC_RES_CAP_64_PHASE 0x00000004 #define PCI_VC_RES_CAP_128_PHASE 0x00000008 #define PCI_VC_RES_CAP_128_PHASE_TB 0x00000010 #define PCI_VC_RES_CAP_256_PHASE 0x00000020 #define PCI_VC_RES_CAP_ARB_OFF 0xff000000 -#define PCI_VC_RES_CTRL 0x14 +#define PCI_VC_RES_CTRL 20 #define PCI_VC_RES_CTRL_LOAD_TABLE 0x00010000 #define PCI_VC_RES_CTRL_ARB_SELECT 0x000e0000 #define PCI_VC_RES_CTRL_ID 0x07000000 #define PCI_VC_RES_CTRL_ENABLE 0x80000000 -#define PCI_VC_RES_STATUS 0x1a +#define PCI_VC_RES_STATUS 26 #define PCI_VC_RES_STATUS_TABLE 0x00000001 #define PCI_VC_RES_STATUS_NEGO 0x00000002 #define PCI_CAP_VC_BASE_SIZEOF 0x10 -#define PCI_CAP_VC_PER_VC_SIZEOF 0x0c +#define PCI_CAP_VC_PER_VC_SIZEOF 0x0C /* Power Budgeting */ -#define PCI_PWR_DSR 0x04 /* Data Select Register */ -#define PCI_PWR_DATA 0x08 /* Data Register */ +#define PCI_PWR_DSR 4 /* Data Select Register */ +#define PCI_PWR_DATA 8 /* Data Register */ #define PCI_PWR_DATA_BASE(x) ((x) & 0xff) /* Base Power */ #define PCI_PWR_DATA_SCALE(x) (((x) >> 8) & 3) /* Data Scale */ #define PCI_PWR_DATA_PM_SUB(x) (((x) >> 10) & 7) /* PM Sub State */ #define PCI_PWR_DATA_PM_STATE(x) (((x) >> 13) & 3) /* PM State */ #define PCI_PWR_DATA_TYPE(x) (((x) >> 15) & 7) /* Type */ #define PCI_PWR_DATA_RAIL(x) (((x) >> 18) & 7) /* Power Rail */ -#define PCI_PWR_CAP 0x0c /* Capability */ +#define PCI_PWR_CAP 12 /* Capability */ #define PCI_PWR_CAP_BUDGET(x) ((x) & 1) /* Included in system budget */ -#define PCI_EXT_CAP_PWR_SIZEOF 0x10 +#define PCI_EXT_CAP_PWR_SIZEOF 16 /* Root Complex Event Collector Endpoint Association */ #define PCI_RCEC_RCIEP_BITMAP 4 /* Associated Bitmap for RCiEPs */ @@ -964,7 +958,7 @@ #define PCI_SRIOV_VFM_MI 0x1 /* Dormant.MigrateIn */ #define PCI_SRIOV_VFM_MO 0x2 /* Active.MigrateOut */ #define PCI_SRIOV_VFM_AV 0x3 /* Active.Available */ -#define PCI_EXT_CAP_SRIOV_SIZEOF 0x40 +#define PCI_EXT_CAP_SRIOV_SIZEOF 64 #define PCI_LTR_MAX_SNOOP_LAT 0x4 #define PCI_LTR_MAX_NOSNOOP_LAT 0x6 @@ -1017,12 +1011,12 @@ #define PCI_TPH_LOC_NONE 0x000 /* no location */ #define PCI_TPH_LOC_CAP 0x200 /* in capability */ #define PCI_TPH_LOC_MSIX 0x400 /* in MSI-X */ -#define PCI_TPH_CAP_ST_MASK 0x07FF0000 /* ST table mask */ -#define PCI_TPH_CAP_ST_SHIFT 16 /* ST table shift */ -#define PCI_TPH_BASE_SIZEOF 0xc /* size with no ST table */ +#define PCI_TPH_CAP_ST_MASK 0x07FF0000 /* st table mask */ +#define PCI_TPH_CAP_ST_SHIFT 16 /* st table shift */ +#define PCI_TPH_BASE_SIZEOF 12 /* size with no st table */ /* Downstream Port Containment */ -#define PCI_EXP_DPC_CAP 0x04 /* DPC Capability */ +#define PCI_EXP_DPC_CAP 4 /* DPC Capability */ #define PCI_EXP_DPC_IRQ 0x001F /* Interrupt Message Number */ #define PCI_EXP_DPC_CAP_RP_EXT 0x0020 /* Root Port Extensions */ #define PCI_EXP_DPC_CAP_POISONED_TLP 0x0040 /* Poisoned TLP Egress Blocking Supported */ @@ -1030,19 +1024,19 @@ #define PCI_EXP_DPC_RP_PIO_LOG_SIZE 0x0F00 /* RP PIO Log Size */ #define PCI_EXP_DPC_CAP_DL_ACTIVE 0x1000 /* ERR_COR signal on DL_Active supported */ -#define PCI_EXP_DPC_CTL 0x06 /* DPC control */ +#define PCI_EXP_DPC_CTL 6 /* DPC control */ #define PCI_EXP_DPC_CTL_EN_FATAL 0x0001 /* Enable trigger on ERR_FATAL message */ #define PCI_EXP_DPC_CTL_EN_NONFATAL 0x0002 /* Enable trigger on ERR_NONFATAL message */ #define PCI_EXP_DPC_CTL_INT_EN 0x0008 /* DPC Interrupt Enable */ -#define PCI_EXP_DPC_STATUS 0x08 /* DPC Status */ +#define PCI_EXP_DPC_STATUS 8 /* DPC Status */ #define PCI_EXP_DPC_STATUS_TRIGGER 0x0001 /* Trigger Status */ #define PCI_EXP_DPC_STATUS_TRIGGER_RSN 0x0006 /* Trigger Reason */ #define PCI_EXP_DPC_STATUS_INTERRUPT 0x0008 /* Interrupt Status */ #define PCI_EXP_DPC_RP_BUSY 0x0010 /* Root Port Busy */ #define PCI_EXP_DPC_STATUS_TRIGGER_RSN_EXT 0x0060 /* Trig Reason Extension */ -#define PCI_EXP_DPC_SOURCE_ID 0x0A /* DPC Source Identifier */ +#define PCI_EXP_DPC_SOURCE_ID 10 /* DPC Source Identifier */ #define PCI_EXP_DPC_RP_PIO_STATUS 0x0C /* RP PIO Status */ #define PCI_EXP_DPC_RP_PIO_MASK 0x10 /* RP PIO Mask */ @@ -1086,11 +1080,7 @@ /* Designated Vendor-Specific (DVSEC, PCI_EXT_CAP_ID_DVSEC) */ #define PCI_DVSEC_HEADER1 0x4 /* Designated Vendor-Specific Header1 */ -#define PCI_DVSEC_HEADER1_VID(x) ((x) & 0xffff) -#define PCI_DVSEC_HEADER1_REV(x) (((x) >> 16) & 0xf) -#define PCI_DVSEC_HEADER1_LEN(x) (((x) >> 20) & 0xfff) #define PCI_DVSEC_HEADER2 0x8 /* Designated Vendor-Specific Header2 */ -#define PCI_DVSEC_HEADER2_ID(x) ((x) & 0xffff) /* Data Link Feature */ #define PCI_DLF_CAP 0x04 /* Capabilities Register */ diff --git a/original/uapi/linux/pcitest.h b/original/uapi/linux/pcitest.h index f9c1af8..c3ab4c8 100644 --- a/original/uapi/linux/pcitest.h +++ b/original/uapi/linux/pcitest.h @@ -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 diff --git a/original/uapi/linux/perf_event.h b/original/uapi/linux/perf_event.h index 82858b6..ad15e40 100644 --- a/original/uapi/linux/perf_event.h +++ b/original/uapi/linux/perf_event.h @@ -38,21 +38,6 @@ enum perf_type_id { }; /* - * attr.config layout for type PERF_TYPE_HARDWARE and PERF_TYPE_HW_CACHE - * PERF_TYPE_HARDWARE: 0xEEEEEEEE000000AA - * AA: hardware event ID - * EEEEEEEE: PMU type ID - * PERF_TYPE_HW_CACHE: 0xEEEEEEEE00DDCCBB - * BB: hardware cache ID - * CC: hardware cache op ID - * DD: hardware cache op result ID - * EEEEEEEE: PMU type ID - * If the PMU type ID is 0, the PERF_TYPE_RAW will be applied. - */ -#define PERF_PMU_TYPE_SHIFT 32 -#define PERF_HW_EVENT_MASK 0xffffffff - -/* * Generalized performance event event_id types, used by the * attr.event_id parameter of the sys_perf_event_open() * syscall: @@ -127,7 +112,6 @@ enum perf_sw_ids { PERF_COUNT_SW_EMULATION_FAULTS = 8, PERF_COUNT_SW_DUMMY = 9, PERF_COUNT_SW_BPF_OUTPUT = 10, - PERF_COUNT_SW_CGROUP_SWITCHES = 11, PERF_COUNT_SW_MAX, /* non-ABI */ }; @@ -327,7 +311,6 @@ enum perf_event_read_format { #define PERF_ATTR_SIZE_VER4 104 /* add: sample_regs_intr */ #define PERF_ATTR_SIZE_VER5 112 /* add: aux_watermark */ #define PERF_ATTR_SIZE_VER6 120 /* add: aux_sample_size */ -#define PERF_ATTR_SIZE_VER7 128 /* add: sig_data */ /* * Hardware event_id to monitor via a performance monitoring event: @@ -406,10 +389,7 @@ struct perf_event_attr { cgroup : 1, /* include cgroup events */ text_poke : 1, /* include text poke events */ build_id : 1, /* use build id in mmap2 events */ - inherit_thread : 1, /* children only inherit if cloned with CLONE_THREAD */ - remove_on_exec : 1, /* event is removed from task on exec */ - sigtrap : 1, /* send synchronous SIGTRAP on event */ - __reserved_1 : 26; + __reserved_1 : 29; union { __u32 wakeup_events; /* wakeup every n events */ @@ -461,14 +441,6 @@ struct perf_event_attr { __u16 __reserved_2; __u32 aux_sample_size; __u32 __reserved_3; - - /* - * User provided data if sigtrap=1, passed back to user via - * siginfo_t::si_perf_data, e.g. to permit user to identify the event. - * Note, siginfo_t::si_perf_data is long-sized, and sig_data will be - * truncated accordingly on 32 bit architectures. - */ - __u64 sig_data; }; /* @@ -1143,21 +1115,6 @@ enum perf_event_type { */ PERF_RECORD_TEXT_POKE = 20, - /* - * Data written to the AUX area by hardware due to aux_output, may need - * to be matched to the event by an architecture-specific hardware ID. - * This records the hardware ID, but requires sample_id to provide the - * event ID. e.g. Intel PT uses this record to disambiguate PEBS-via-PT - * records from multiple events. - * - * struct { - * struct perf_event_header header; - * u64 hw_id; - * struct sample_id sample_id; - * }; - */ - PERF_RECORD_AUX_OUTPUT_HW_ID = 21, - PERF_RECORD_MAX, /* non-ABI */ }; @@ -1199,15 +1156,10 @@ enum perf_callchain_context { /** * PERF_RECORD_AUX::flags bits */ -#define PERF_AUX_FLAG_TRUNCATED 0x01 /* record was truncated to fit */ -#define PERF_AUX_FLAG_OVERWRITE 0x02 /* snapshot from overwrite mode */ -#define PERF_AUX_FLAG_PARTIAL 0x04 /* record contains gaps */ -#define PERF_AUX_FLAG_COLLISION 0x08 /* sample collided with another */ -#define PERF_AUX_FLAG_PMU_FORMAT_TYPE_MASK 0xff00 /* PMU specific trace format type */ - -/* CoreSight PMU AUX buffer formats */ -#define PERF_AUX_FLAG_CORESIGHT_FORMAT_CORESIGHT 0x0000 /* Default for backward compatibility */ -#define PERF_AUX_FLAG_CORESIGHT_FORMAT_RAW 0x0100 /* Raw format of the source */ +#define PERF_AUX_FLAG_TRUNCATED 0x01 /* record was truncated to fit */ +#define PERF_AUX_FLAG_OVERWRITE 0x02 /* snapshot from overwrite mode */ +#define PERF_AUX_FLAG_PARTIAL 0x04 /* record contains gaps */ +#define PERF_AUX_FLAG_COLLISION 0x08 /* sample collided with another */ #define PERF_FLAG_FD_NO_GROUP (1UL << 0) #define PERF_FLAG_FD_OUTPUT (1UL << 1) @@ -1227,16 +1179,14 @@ union perf_mem_data_src { mem_remote:1, /* remote */ mem_snoopx:2, /* snoop mode, ext */ mem_blk:3, /* access blocked */ - mem_hops:3, /* hop level */ - mem_rsvd:18; + mem_rsvd:21; }; }; #elif defined(__BIG_ENDIAN_BITFIELD) union perf_mem_data_src { __u64 val; struct { - __u64 mem_rsvd:18, - mem_hops:3, /* hop level */ + __u64 mem_rsvd:21, mem_blk:3, /* access blocked */ mem_snoopx:2, /* snoop mode, ext */ mem_remote:1, /* remote */ @@ -1260,13 +1210,7 @@ union perf_mem_data_src { #define PERF_MEM_OP_EXEC 0x10 /* code (execution) */ #define PERF_MEM_OP_SHIFT 0 -/* - * PERF_MEM_LVL_* namespace being depricated to some extent in the - * favour of newer composite PERF_MEM_{LVLNUM_,REMOTE_,SNOOPX_} fields. - * Supporting this namespace inorder to not break defined ABIs. - * - * memory hierarchy (memory level, hit or miss) - */ +/* memory hierarchy (memory level, hit or miss) */ #define PERF_MEM_LVL_NA 0x01 /* not available */ #define PERF_MEM_LVL_HIT 0x02 /* hit level */ #define PERF_MEM_LVL_MISS 0x04 /* miss level */ @@ -1332,14 +1276,6 @@ union perf_mem_data_src { #define PERF_MEM_BLK_ADDR 0x04 /* address conflict */ #define PERF_MEM_BLK_SHIFT 40 -/* hop level */ -#define PERF_MEM_HOPS_0 0x01 /* remote core, same node */ -#define PERF_MEM_HOPS_1 0x02 /* remote node, same socket */ -#define PERF_MEM_HOPS_2 0x03 /* remote socket, same board */ -#define PERF_MEM_HOPS_3 0x04 /* remote board */ -/* 5-7 available */ -#define PERF_MEM_HOPS_SHIFT 43 - #define PERF_MEM_S(a, s) \ (((__u64)PERF_MEM_##a##_##s) << PERF_MEM_##a##_SHIFT) diff --git a/original/uapi/linux/pfkeyv2.h b/original/uapi/linux/pfkeyv2.h index 8abae1f..d65b117 100644 --- a/original/uapi/linux/pfkeyv2.h +++ b/original/uapi/linux/pfkeyv2.h @@ -309,7 +309,6 @@ struct sadb_x_filter { #define SADB_X_AALG_SHA2_512HMAC 7 #define SADB_X_AALG_RIPEMD160HMAC 8 #define SADB_X_AALG_AES_XCBC_MAC 9 -#define SADB_X_AALG_SM3_256HMAC 10 #define SADB_X_AALG_NULL 251 /* kame */ #define SADB_AALG_MAX 251 @@ -330,7 +329,6 @@ struct sadb_x_filter { #define SADB_X_EALG_AES_GCM_ICV16 20 #define SADB_X_EALG_CAMELLIACBC 22 #define SADB_X_EALG_NULL_AES_GMAC 23 -#define SADB_X_EALG_SM4CBC 24 #define SADB_EALG_MAX 253 /* last EALG */ /* private allocations should use 249-255 (RFC2407) */ #define SADB_X_EALG_SERPENTCBC 252 /* draft-ietf-ipsec-ciph-aes-cbc-00 */ diff --git a/original/uapi/linux/pfrut.h b/original/uapi/linux/pfrut.h deleted file mode 100644 index 42fa15f..0000000 --- a/original/uapi/linux/pfrut.h +++ /dev/null @@ -1,262 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ -/* - * Platform Firmware Runtime Update header - * - * Copyright(c) 2021 Intel Corporation. All rights reserved. - */ -#ifndef __PFRUT_H__ -#define __PFRUT_H__ - -#include <linux/ioctl.h> -#include <linux/types.h> - -#define PFRUT_IOCTL_MAGIC 0xEE - -/** - * PFRU_IOC_SET_REV - _IOW(PFRUT_IOCTL_MAGIC, 0x01, unsigned int) - * - * Return: - * * 0 - success - * * -EFAULT - fail to read the revision id - * * -EINVAL - user provides an invalid revision id - * - * Set the Revision ID for Platform Firmware Runtime Update. - */ -#define PFRU_IOC_SET_REV _IOW(PFRUT_IOCTL_MAGIC, 0x01, unsigned int) - -/** - * PFRU_IOC_STAGE - _IOW(PFRUT_IOCTL_MAGIC, 0x02, unsigned int) - * - * Return: - * * 0 - success - * * -EINVAL - stage phase returns invalid result - * - * Stage a capsule image from communication buffer and perform authentication. - */ -#define PFRU_IOC_STAGE _IOW(PFRUT_IOCTL_MAGIC, 0x02, unsigned int) - -/** - * PFRU_IOC_ACTIVATE - _IOW(PFRUT_IOCTL_MAGIC, 0x03, unsigned int) - * - * Return: - * * 0 - success - * * -EINVAL - activate phase returns invalid result - * - * Activate a previously staged capsule image. - */ -#define PFRU_IOC_ACTIVATE _IOW(PFRUT_IOCTL_MAGIC, 0x03, unsigned int) - -/** - * PFRU_IOC_STAGE_ACTIVATE - _IOW(PFRUT_IOCTL_MAGIC, 0x04, unsigned int) - * - * Return: - * * 0 - success - * * -EINVAL - stage/activate phase returns invalid result. - * - * Perform both stage and activation action. - */ -#define PFRU_IOC_STAGE_ACTIVATE _IOW(PFRUT_IOCTL_MAGIC, 0x04, unsigned int) - -/** - * PFRU_IOC_QUERY_CAP - _IOR(PFRUT_IOCTL_MAGIC, 0x05, - * struct pfru_update_cap_info) - * - * Return: - * * 0 - success - * * -EINVAL - query phase returns invalid result - * * -EFAULT - the result fails to be copied to userspace - * - * Retrieve information on the Platform Firmware Runtime Update capability. - * The information is a struct pfru_update_cap_info. - */ -#define PFRU_IOC_QUERY_CAP _IOR(PFRUT_IOCTL_MAGIC, 0x05, struct pfru_update_cap_info) - -/** - * struct pfru_payload_hdr - Capsule file payload header. - * - * @sig: Signature of this capsule file. - * @hdr_version: Revision of this header structure. - * @hdr_size: Size of this header, including the OemHeader bytes. - * @hw_ver: The supported firmware version. - * @rt_ver: Version of the code injection image. - * @platform_id: A platform specific GUID to specify the platform what - * this capsule image support. - */ -struct pfru_payload_hdr { - __u32 sig; - __u32 hdr_version; - __u32 hdr_size; - __u32 hw_ver; - __u32 rt_ver; - __u8 platform_id[16]; -}; - -enum pfru_dsm_status { - DSM_SUCCEED = 0, - DSM_FUNC_NOT_SUPPORT = 1, - DSM_INVAL_INPUT = 2, - DSM_HARDWARE_ERR = 3, - DSM_RETRY_SUGGESTED = 4, - DSM_UNKNOWN = 5, - DSM_FUNC_SPEC_ERR = 6, -}; - -/** - * struct pfru_update_cap_info - Runtime update capability information. - * - * @status: Indicator of whether this query succeed. - * @update_cap: Bitmap to indicate whether the feature is supported. - * @code_type: A buffer containing an image type GUID. - * @fw_version: Platform firmware version. - * @code_rt_version: Code injection runtime version for anti-rollback. - * @drv_type: A buffer containing an image type GUID. - * @drv_rt_version: The version of the driver update runtime code. - * @drv_svn: The secure version number(SVN) of the driver update runtime code. - * @platform_id: A buffer containing a platform ID GUID. - * @oem_id: A buffer containing an OEM ID GUID. - * @oem_info_len: Length of the buffer containing the vendor specific information. - */ -struct pfru_update_cap_info { - __u32 status; - __u32 update_cap; - - __u8 code_type[16]; - __u32 fw_version; - __u32 code_rt_version; - - __u8 drv_type[16]; - __u32 drv_rt_version; - __u32 drv_svn; - - __u8 platform_id[16]; - __u8 oem_id[16]; - - __u32 oem_info_len; -}; - -/** - * struct pfru_com_buf_info - Communication buffer information. - * - * @status: Indicator of whether this query succeed. - * @ext_status: Implementation specific query result. - * @addr_lo: Low 32bit physical address of the communication buffer to hold - * a runtime update package. - * @addr_hi: High 32bit physical address of the communication buffer to hold - * a runtime update package. - * @buf_size: Maximum size in bytes of the communication buffer. - */ -struct pfru_com_buf_info { - __u32 status; - __u32 ext_status; - __u64 addr_lo; - __u64 addr_hi; - __u32 buf_size; -}; - -/** - * struct pfru_updated_result - Platform firmware runtime update result information. - * @status: Indicator of whether this update succeed. - * @ext_status: Implementation specific update result. - * @low_auth_time: Low 32bit value of image authentication time in nanosecond. - * @high_auth_time: High 32bit value of image authentication time in nanosecond. - * @low_exec_time: Low 32bit value of image execution time in nanosecond. - * @high_exec_time: High 32bit value of image execution time in nanosecond. - */ -struct pfru_updated_result { - __u32 status; - __u32 ext_status; - __u64 low_auth_time; - __u64 high_auth_time; - __u64 low_exec_time; - __u64 high_exec_time; -}; - -/** - * struct pfrt_log_data_info - Log Data from telemetry service. - * @status: Indicator of whether this update succeed. - * @ext_status: Implementation specific update result. - * @chunk1_addr_lo: Low 32bit physical address of the telemetry data chunk1 - * starting address. - * @chunk1_addr_hi: High 32bit physical address of the telemetry data chunk1 - * starting address. - * @chunk2_addr_lo: Low 32bit physical address of the telemetry data chunk2 - * starting address. - * @chunk2_addr_hi: High 32bit physical address of the telemetry data chunk2 - * starting address. - * @max_data_size: Maximum supported size of data of all data chunks combined. - * @chunk1_size: Data size in bytes of the telemetry data chunk1 buffer. - * @chunk2_size: Data size in bytes of the telemetry data chunk2 buffer. - * @rollover_cnt: Number of times telemetry data buffer is overwritten - * since telemetry buffer reset. - * @reset_cnt: Number of times telemetry services resets that results in - * rollover count and data chunk buffers are reset. - */ -struct pfrt_log_data_info { - __u32 status; - __u32 ext_status; - __u64 chunk1_addr_lo; - __u64 chunk1_addr_hi; - __u64 chunk2_addr_lo; - __u64 chunk2_addr_hi; - __u32 max_data_size; - __u32 chunk1_size; - __u32 chunk2_size; - __u32 rollover_cnt; - __u32 reset_cnt; -}; - -/** - * struct pfrt_log_info - Telemetry log information. - * @log_level: The telemetry log level. - * @log_type: The telemetry log type(history and execution). - * @log_revid: The telemetry log revision id. - */ -struct pfrt_log_info { - __u32 log_level; - __u32 log_type; - __u32 log_revid; -}; - -/** - * PFRT_LOG_IOC_SET_INFO - _IOW(PFRUT_IOCTL_MAGIC, 0x06, - * struct pfrt_log_info) - * - * Return: - * * 0 - success - * * -EFAULT - fail to get the setting parameter - * * -EINVAL - fail to set the log level - * - * Set the PFRT log level and log type. The input information is - * a struct pfrt_log_info. - */ -#define PFRT_LOG_IOC_SET_INFO _IOW(PFRUT_IOCTL_MAGIC, 0x06, struct pfrt_log_info) - -/** - * PFRT_LOG_IOC_GET_INFO - _IOR(PFRUT_IOCTL_MAGIC, 0x07, - * struct pfrt_log_info) - * - * Return: - * * 0 - success - * * -EINVAL - fail to get the log level - * * -EFAULT - fail to copy the result back to userspace - * - * Retrieve log level and log type of the telemetry. The information is - * a struct pfrt_log_info. - */ -#define PFRT_LOG_IOC_GET_INFO _IOR(PFRUT_IOCTL_MAGIC, 0x07, struct pfrt_log_info) - -/** - * PFRT_LOG_IOC_GET_DATA_INFO - _IOR(PFRUT_IOCTL_MAGIC, 0x08, - * struct pfrt_log_data_info) - * - * Return: - * * 0 - success - * * -EINVAL - fail to get the log buffer information - * * -EFAULT - fail to copy the log buffer information to userspace - * - * Retrieve data information about the telemetry. The information - * is a struct pfrt_log_data_info. - */ -#define PFRT_LOG_IOC_GET_DATA_INFO _IOR(PFRUT_IOCTL_MAGIC, 0x08, struct pfrt_log_data_info) - -#endif /* __PFRUT_H__ */ diff --git a/original/uapi/linux/pkt_cls.h b/original/uapi/linux/pkt_cls.h index ee38b35..7ea59cf 100644 --- a/original/uapi/linux/pkt_cls.h +++ b/original/uapi/linux/pkt_cls.h @@ -19,16 +19,12 @@ enum { TCA_ACT_FLAGS, TCA_ACT_HW_STATS, TCA_ACT_USED_HW_STATS, - TCA_ACT_IN_HW_COUNT, __TCA_ACT_MAX }; -/* See other TCA_ACT_FLAGS_ * flags in include/net/act_api.h. */ -#define TCA_ACT_FLAGS_NO_PERCPU_STATS (1 << 0) /* Don't use percpu allocator for - * actions stats. - */ -#define TCA_ACT_FLAGS_SKIP_HW (1 << 1) /* don't offload action to HW */ -#define TCA_ACT_FLAGS_SKIP_SW (1 << 2) /* don't use action in SW */ +#define TCA_ACT_FLAGS_NO_PERCPU_STATS 1 /* Don't use percpu allocator for + * actions stats. + */ /* tca HW stats type * When user does not pass the attribute, he does not care. @@ -194,8 +190,6 @@ enum { TCA_POLICE_PAD, TCA_POLICE_RATE64, TCA_POLICE_PEAKRATE64, - TCA_POLICE_PKTRATE64, - TCA_POLICE_PKTBURST64, __TCA_POLICE_MAX #define TCA_POLICE_RESULT TCA_POLICE_RESULT }; diff --git a/original/uapi/linux/pkt_sched.h b/original/uapi/linux/pkt_sched.h index f292b46..79a699f 100644 --- a/original/uapi/linux/pkt_sched.h +++ b/original/uapi/linux/pkt_sched.h @@ -827,8 +827,6 @@ struct tc_codel_xstats { /* FQ_CODEL */ -#define FQ_CODEL_QUANTUM_MAX (1 << 20) - enum { TCA_FQ_CODEL_UNSPEC, TCA_FQ_CODEL_TARGET, @@ -840,8 +838,6 @@ enum { TCA_FQ_CODEL_CE_THRESHOLD, TCA_FQ_CODEL_DROP_BATCH_SIZE, TCA_FQ_CODEL_MEMORY_LIMIT, - TCA_FQ_CODEL_CE_THRESHOLD_SELECTOR, - TCA_FQ_CODEL_CE_THRESHOLD_MASK, __TCA_FQ_CODEL_MAX }; diff --git a/original/uapi/linux/prctl.h b/original/uapi/linux/prctl.h index e998764..5d836c9 100644 --- a/original/uapi/linux/prctl.h +++ b/original/uapi/linux/prctl.h @@ -213,7 +213,6 @@ struct prctl_mm_map { /* Speculation control variants */ # define PR_SPEC_STORE_BYPASS 0 # define PR_SPEC_INDIRECT_BRANCH 1 -# define PR_SPEC_L1D_FLUSH 2 /* Return and control values for PR_SET/GET_SPECULATION_CTRL */ # define PR_SPEC_NOT_AFFECTED 0 # define PR_SPEC_PRCTL (1UL << 0) @@ -235,15 +234,14 @@ struct prctl_mm_map { #define PR_GET_TAGGED_ADDR_CTRL 56 # define PR_TAGGED_ADDR_ENABLE (1UL << 0) /* MTE tag check fault modes */ -# define PR_MTE_TCF_NONE 0UL -# define PR_MTE_TCF_SYNC (1UL << 1) -# define PR_MTE_TCF_ASYNC (1UL << 2) -# define PR_MTE_TCF_MASK (PR_MTE_TCF_SYNC | PR_MTE_TCF_ASYNC) +# define PR_MTE_TCF_SHIFT 1 +# define PR_MTE_TCF_NONE (0UL << PR_MTE_TCF_SHIFT) +# define PR_MTE_TCF_SYNC (1UL << PR_MTE_TCF_SHIFT) +# define PR_MTE_TCF_ASYNC (2UL << PR_MTE_TCF_SHIFT) +# define PR_MTE_TCF_MASK (3UL << PR_MTE_TCF_SHIFT) /* MTE tag inclusion mask */ # define PR_MTE_TAG_SHIFT 3 # define PR_MTE_TAG_MASK (0xffffUL << PR_MTE_TAG_SHIFT) -/* Unused; kept only for source compatibility */ -# define PR_MTE_TCF_SHIFT 1 /* Control reclaim behavior when allocating memory */ #define PR_SET_IO_FLUSHER 57 @@ -257,21 +255,6 @@ struct prctl_mm_map { # define SYSCALL_DISPATCH_FILTER_ALLOW 0 # define SYSCALL_DISPATCH_FILTER_BLOCK 1 -/* Set/get enabled arm64 pointer authentication keys */ -#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 -# define PR_SCHED_CORE_SCOPE_THREAD 0 -# define PR_SCHED_CORE_SCOPE_THREAD_GROUP 1 -# define PR_SCHED_CORE_SCOPE_PROCESS_GROUP 2 - #define PR_SET_VMA 0x53564d41 # define PR_SET_VMA_ANON_NAME 0 diff --git a/original/uapi/linux/psample.h b/original/uapi/linux/psample.h index e585db5..bff5032 100644 --- a/original/uapi/linux/psample.h +++ b/original/uapi/linux/psample.h @@ -13,13 +13,6 @@ enum { PSAMPLE_ATTR_GROUP_REFCOUNT, PSAMPLE_ATTR_TUNNEL, - PSAMPLE_ATTR_PAD, - PSAMPLE_ATTR_OUT_TC, /* u16 */ - PSAMPLE_ATTR_OUT_TC_OCC, /* u64, bytes */ - PSAMPLE_ATTR_LATENCY, /* u64, nanoseconds */ - PSAMPLE_ATTR_TIMESTAMP, /* u64, nanoseconds */ - PSAMPLE_ATTR_PROTO, /* u16 */ - __PSAMPLE_ATTR_MAX }; diff --git a/original/uapi/linux/ptrace.h b/original/uapi/linux/ptrace.h index 3747bf8..83ee45f 100644 --- a/original/uapi/linux/ptrace.h +++ b/original/uapi/linux/ptrace.h @@ -102,16 +102,6 @@ struct ptrace_syscall_info { }; }; -#define PTRACE_GET_RSEQ_CONFIGURATION 0x420f - -struct ptrace_rseq_configuration { - __u64 rseq_abi_pointer; - __u32 rseq_abi_size; - __u32 signature; - __u32 flags; - __u32 pad; -}; - /* * These values are stored in task->ptrace_message * by tracehook_report_syscall_* to describe the current syscall-stop. diff --git a/original/uapi/linux/raw.h b/original/uapi/linux/raw.h new file mode 100644 index 0000000..4787491 --- /dev/null +++ b/original/uapi/linux/raw.h @@ -0,0 +1,17 @@ +/* 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 */ diff --git a/original/uapi/linux/resource.h b/original/uapi/linux/resource.h index ac5d6a3..74ef57b 100644 --- a/original/uapi/linux/resource.h +++ b/original/uapi/linux/resource.h @@ -66,17 +66,10 @@ struct rlimit64 { #define _STK_LIM (8*1024*1024) /* - * Limit the amount of locked memory by some sane default: - * root can always increase this limit if needed. - * - * The main use-cases are (1) preventing sensitive memory - * from being swapped; (2) real-time operations; (3) via - * IOURING_REGISTER_BUFFERS. - * - * The first two don't need much. The latter will take as - * much as it can get. 8MB is a reasonably sane default. + * GPG2 wants 64kB of mlocked memory, to make sure pass phrases + * and other sensitive information are never written to disk. */ -#define MLOCK_LIMIT (8*1024*1024) +#define MLOCK_LIMIT ((PAGE_SIZE > 64*1024) ? PAGE_SIZE : 64*1024) /* * Due to binary compatibility, the actual resource numbers diff --git a/original/uapi/linux/rkisp1-config.h b/original/uapi/linux/rkisp1-config.h index 583ca0d..36e3efb 100644 --- a/original/uapi/linux/rkisp1-config.h +++ b/original/uapi/linux/rkisp1-config.h @@ -15,7 +15,7 @@ #define RKISP1_CIF_ISP_MODULE_BLS (1U << 1) /* Sensor De-gamma */ #define RKISP1_CIF_ISP_MODULE_SDG (1U << 2) -/* Histogram statistics configuration */ +/* Histogram */ #define RKISP1_CIF_ISP_MODULE_HST (1U << 3) /* Lens Shade Control */ #define RKISP1_CIF_ISP_MODULE_LSC (1U << 4) @@ -31,13 +31,13 @@ #define RKISP1_CIF_ISP_MODULE_GOC (1U << 9) /* Color Processing */ #define RKISP1_CIF_ISP_MODULE_CPROC (1U << 10) -/* Auto Focus Control statistics configuration */ +/* Auto Focus Control */ #define RKISP1_CIF_ISP_MODULE_AFC (1U << 11) -/* Auto White Balancing statistics configuration */ +/* Auto White Balancing */ #define RKISP1_CIF_ISP_MODULE_AWB (1U << 12) /* Image Effect */ #define RKISP1_CIF_ISP_MODULE_IE (1U << 13) -/* Auto Exposure Control statistics configuration */ +/* Auto Exposure Control */ #define RKISP1_CIF_ISP_MODULE_AEC (1U << 14) /* Wide Dynamic Range */ #define RKISP1_CIF_ISP_MODULE_WDR (1U << 15) @@ -411,7 +411,7 @@ struct rkisp1_cif_isp_cproc_config { }; /** - * struct rkisp1_cif_isp_awb_meas_config - Configuration for the AWB statistics + * struct rkisp1_cif_isp_awb_meas_config - Configuration used by auto white balance * * @awb_mode: the awb meas mode. From enum rkisp1_cif_isp_awb_mode_type. * @awb_wnd: white balance measurement window (in pixels) @@ -550,7 +550,7 @@ struct rkisp1_cif_isp_goc_config { }; /** - * struct rkisp1_cif_isp_hst_config - Configuration for Histogram statistics + * struct rkisp1_cif_isp_hst_config - Configuration used by Histogram * * @mode: histogram mode (from enum rkisp1_cif_isp_histogram_mode) * @histogram_predivider: process every stepsize pixel, all other pixels are @@ -575,7 +575,7 @@ struct rkisp1_cif_isp_hst_config { }; /** - * struct rkisp1_cif_isp_aec_config - Configuration for Auto Exposure statistics + * struct rkisp1_cif_isp_aec_config - Configuration used by Auto Exposure Control * * @mode: Exposure measure mode (from enum rkisp1_cif_isp_exp_meas_mode) * @autostop: stop mode (from enum rkisp1_cif_isp_exp_ctrl_autostop) @@ -588,7 +588,7 @@ struct rkisp1_cif_isp_aec_config { }; /** - * struct rkisp1_cif_isp_afc_config - Configuration for the Auto Focus statistics + * struct rkisp1_cif_isp_afc_config - Configuration used by Auto Focus Control * * @num_afm_win: max RKISP1_CIF_ISP_AFM_MAX_WINDOWS * @afm_win: coordinates of the meas window diff --git a/original/uapi/linux/rpmsg.h b/original/uapi/linux/rpmsg.h index f5ca874..e14c6da 100644 --- a/original/uapi/linux/rpmsg.h +++ b/original/uapi/linux/rpmsg.h @@ -9,13 +9,11 @@ #include <linux/ioctl.h> #include <linux/types.h> -#define RPMSG_ADDR_ANY 0xFFFFFFFF - /** * struct rpmsg_endpoint_info - endpoint info representation * @name: name of service - * @src: local address. To set to RPMSG_ADDR_ANY if not used. - * @dst: destination address. To set to RPMSG_ADDR_ANY if not used. + * @src: local address + * @dst: destination address */ struct rpmsg_endpoint_info { char name[32]; @@ -23,14 +21,7 @@ struct rpmsg_endpoint_info { __u32 dst; }; -/** - * Instantiate a new rmpsg char device endpoint. - */ #define RPMSG_CREATE_EPT_IOCTL _IOW(0xb5, 0x1, struct rpmsg_endpoint_info) - -/** - * Destroy a rpmsg char device endpoint created by the RPMSG_CREATE_EPT_IOCTL. - */ #define RPMSG_DESTROY_EPT_IOCTL _IO(0xb5, 0x2) #endif diff --git a/original/uapi/linux/rtc.h b/original/uapi/linux/rtc.h index 03e5b77..f950bff 100644 --- a/original/uapi/linux/rtc.h +++ b/original/uapi/linux/rtc.h @@ -14,7 +14,6 @@ #include <linux/const.h> #include <linux/ioctl.h> -#include <linux/types.h> /* * The struct used to pass data via the following ioctl. Similar to the @@ -67,17 +66,6 @@ struct rtc_pll_info { long pll_clock; /* base PLL frequency */ }; -struct rtc_param { - __u64 param; - union { - __u64 uvalue; - __s64 svalue; - __u64 ptr; - }; - __u32 index; - __u32 __pad; -}; - /* * ioctl calls that are permitted to the /dev/rtc interface, if * any of the RTC drivers are enabled. @@ -107,9 +95,6 @@ struct rtc_param { #define RTC_PLL_GET _IOR('p', 0x11, struct rtc_pll_info) /* Get PLL correction */ #define RTC_PLL_SET _IOW('p', 0x12, struct rtc_pll_info) /* Set PLL correction */ -#define RTC_PARAM_GET _IOW('p', 0x13, struct rtc_param) /* Get parameter */ -#define RTC_PARAM_SET _IOW('p', 0x14, struct rtc_param) /* Set parameter */ - #define RTC_VL_DATA_INVALID _BITUL(0) /* Voltage too low, RTC data is invalid */ #define RTC_VL_BACKUP_LOW _BITUL(1) /* Backup voltage is low */ #define RTC_VL_BACKUP_EMPTY _BITUL(2) /* Backup empty or not present */ @@ -129,21 +114,7 @@ struct rtc_param { #define RTC_FEATURE_ALARM 0 #define RTC_FEATURE_ALARM_RES_MINUTE 1 #define RTC_FEATURE_NEED_WEEK_DAY 2 -#define RTC_FEATURE_ALARM_RES_2S 3 -#define RTC_FEATURE_UPDATE_INTERRUPT 4 -#define RTC_FEATURE_CORRECTION 5 -#define RTC_FEATURE_BACKUP_SWITCH_MODE 6 -#define RTC_FEATURE_CNT 7 - -/* parameter list */ -#define RTC_PARAM_FEATURES 0 -#define RTC_PARAM_CORRECTION 1 -#define RTC_PARAM_BACKUP_SWITCH_MODE 2 - -#define RTC_BSM_DISABLED 0 -#define RTC_BSM_DIRECT 1 -#define RTC_BSM_LEVEL 2 -#define RTC_BSM_STANDBY 3 +#define RTC_FEATURE_CNT 3 #define RTC_MAX_FREQ 8192 diff --git a/original/uapi/linux/rtnetlink.h b/original/uapi/linux/rtnetlink.h index 93d934c..91e4ca0 100644 --- a/original/uapi/linux/rtnetlink.h +++ b/original/uapi/linux/rtnetlink.h @@ -178,13 +178,6 @@ enum { RTM_GETVLAN, #define RTM_GETVLAN RTM_GETVLAN - RTM_NEWNEXTHOPBUCKET = 116, -#define RTM_NEWNEXTHOPBUCKET RTM_NEWNEXTHOPBUCKET - RTM_DELNEXTHOPBUCKET, -#define RTM_DELNEXTHOPBUCKET RTM_DELNEXTHOPBUCKET - RTM_GETNEXTHOPBUCKET, -#define RTM_GETNEXTHOPBUCKET RTM_GETNEXTHOPBUCKET - __RTM_MAX, #define RTM_MAX (((__RTM_MAX + 3) & ~3) - 1) }; @@ -290,7 +283,6 @@ enum { #define RTPROT_MROUTED 17 /* Multicast daemon */ #define RTPROT_KEEPALIVED 18 /* Keepalived daemon */ #define RTPROT_BABEL 42 /* Babel daemon */ -#define RTPROT_OPENR 99 /* Open Routing (Open/R) Routes */ #define RTPROT_BGP 186 /* BGP Routes */ #define RTPROT_ISIS 187 /* ISIS Routes */ #define RTPROT_OSPF 188 /* OSPF Routes */ @@ -754,8 +746,6 @@ enum rtnetlink_groups { #define RTNLGRP_NEXTHOP RTNLGRP_NEXTHOP RTNLGRP_BRVLAN, #define RTNLGRP_BRVLAN RTNLGRP_BRVLAN - RTNLGRP_MCTP_IFADDR, -#define RTNLGRP_MCTP_IFADDR RTNLGRP_MCTP_IFADDR __RTNLGRP_MAX }; #define RTNLGRP_MAX (__RTNLGRP_MAX - 1) diff --git a/original/uapi/linux/sctp.h b/original/uapi/linux/sctp.h index c4ff1eb..cb78e7a 100644 --- a/original/uapi/linux/sctp.h +++ b/original/uapi/linux/sctp.h @@ -141,7 +141,6 @@ 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 @@ -1214,11 +1213,4 @@ 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 */ diff --git a/original/uapi/linux/seccomp.h b/original/uapi/linux/seccomp.h index 7807425..6ba18b8 100644 --- a/original/uapi/linux/seccomp.h +++ b/original/uapi/linux/seccomp.h @@ -115,7 +115,6 @@ struct seccomp_notif_resp { /* valid flags for seccomp_notif_addfd */ #define SECCOMP_ADDFD_FLAG_SETFD (1UL << 0) /* Specify remote fd */ -#define SECCOMP_ADDFD_FLAG_SEND (1UL << 1) /* Addfd and return it, atomically */ /** * struct seccomp_notif_addfd diff --git a/original/uapi/linux/seg6_local.h b/original/uapi/linux/seg6_local.h index 332b18f..3b39ef1 100644 --- a/original/uapi/linux/seg6_local.h +++ b/original/uapi/linux/seg6_local.h @@ -27,7 +27,6 @@ enum { SEG6_LOCAL_OIF, SEG6_LOCAL_BPF, SEG6_LOCAL_VRFTABLE, - SEG6_LOCAL_COUNTERS, __SEG6_LOCAL_MAX, }; #define SEG6_LOCAL_MAX (__SEG6_LOCAL_MAX - 1) @@ -64,8 +63,6 @@ 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, }; @@ -81,33 +78,4 @@ enum { #define SEG6_LOCAL_BPF_PROG_MAX (__SEG6_LOCAL_BPF_PROG_MAX - 1) -/* SRv6 Behavior counters are encoded as netlink attributes guaranteeing the - * correct alignment. - * Each counter is identified by a different attribute type (i.e. - * SEG6_LOCAL_CNT_PACKETS). - * - * - SEG6_LOCAL_CNT_PACKETS: identifies a counter that counts the number of - * packets that have been CORRECTLY processed by an SRv6 Behavior instance - * (i.e., packets that generate errors or are dropped are NOT counted). - * - * - SEG6_LOCAL_CNT_BYTES: identifies a counter that counts the total amount - * of traffic in bytes of all packets that have been CORRECTLY processed by - * an SRv6 Behavior instance (i.e., packets that generate errors or are - * dropped are NOT counted). - * - * - SEG6_LOCAL_CNT_ERRORS: identifies a counter that counts the number of - * packets that have NOT been properly processed by an SRv6 Behavior instance - * (i.e., packets that generate errors or are dropped). - */ -enum { - SEG6_LOCAL_CNT_UNSPEC, - SEG6_LOCAL_CNT_PAD, /* pad for 64 bits values */ - SEG6_LOCAL_CNT_PACKETS, - SEG6_LOCAL_CNT_BYTES, - SEG6_LOCAL_CNT_ERRORS, - __SEG6_LOCAL_CNT_MAX, -}; - -#define SEG6_LOCAL_CNT_MAX (__SEG6_LOCAL_CNT_MAX - 1) - #endif diff --git a/original/uapi/linux/serial.h b/original/uapi/linux/serial.h index fa6b16e..93eb3c4 100644 --- a/original/uapi/linux/serial.h +++ b/original/uapi/linux/serial.h @@ -52,11 +52,11 @@ struct serial_struct { #define PORT_16450 2 #define PORT_16550 3 #define PORT_16550A 4 -#define PORT_CIRRUS 5 +#define PORT_CIRRUS 5 /* usurped by cyclades.c */ #define PORT_16650 6 #define PORT_16650V2 7 #define PORT_16750 8 -#define PORT_STARTECH 9 +#define PORT_STARTECH 9 /* usurped by cyclades.c */ #define PORT_16C950 10 /* Oxford Semiconductor */ #define PORT_16654 11 #define PORT_16850 12 diff --git a/original/uapi/linux/serial_reg.h b/original/uapi/linux/serial_reg.h index f51bc8f..be07b54 100644 --- a/original/uapi/linux/serial_reg.h +++ b/original/uapi/linux/serial_reg.h @@ -62,7 +62,6 @@ * ST16C654: 8 16 56 60 8 16 32 56 PORT_16654 * TI16C750: 1 16 32 56 xx xx xx xx PORT_16750 * TI16C752: 8 16 56 60 8 16 32 56 - * OX16C950: 16 32 112 120 16 32 64 112 PORT_16C950 * Tegra: 1 4 8 14 16 8 4 1 PORT_TEGRA */ #define UART_FCR_R_TRIG_00 0x00 diff --git a/original/uapi/linux/smc.h b/original/uapi/linux/smc.h index 6c2874f..3e68da0 100644 --- a/original/uapi/linux/smc.h +++ b/original/uapi/linux/smc.h @@ -38,9 +38,6 @@ enum { /* SMC PNET Table commands */ #define SMC_GENL_FAMILY_VERSION 1 #define SMC_PCI_ID_STR_LEN 16 /* Max length of pci id string */ -#define SMC_MAX_HOSTNAME_LEN 32 /* Max length of the hostname */ -#define SMC_MAX_UEID 4 /* Max number of user EIDs */ -#define SMC_MAX_EID_LEN 32 /* Max length of an EID */ /* SMC_GENL_FAMILY commands */ enum { @@ -50,15 +47,6 @@ 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_NETLINK_DUMP_UEID, - SMC_NETLINK_ADD_UEID, - SMC_NETLINK_REMOVE_UEID, - SMC_NETLINK_FLUSH_UEID, - SMC_NETLINK_DUMP_SEID, - SMC_NETLINK_ENABLE_SEID, - SMC_NETLINK_DISABLE_SEID, }; /* SMC_GENL_FAMILY top level attributes */ @@ -70,8 +58,6 @@ 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 }; @@ -84,28 +70,17 @@ enum { SMC_NLA_SYS_IS_ISM_V2, /* u8 */ SMC_NLA_SYS_LOCAL_HOST, /* string */ SMC_NLA_SYS_SEID, /* string */ - SMC_NLA_SYS_IS_SMCR_V2, /* u8 */ __SMC_NLA_SYS_MAX, SMC_NLA_SYS_MAX = __SMC_NLA_SYS_MAX - 1 }; -/* SMC_NLA_LGR_D_V2_COMMON and SMC_NLA_LGR_R_V2_COMMON nested attributes */ +/* SMC_NLA_LGR_V2 nested attributes */ enum { SMC_NLA_LGR_V2_VER, /* u8 */ SMC_NLA_LGR_V2_REL, /* u8 */ SMC_NLA_LGR_V2_OS, /* u8 */ SMC_NLA_LGR_V2_NEG_EID, /* string */ SMC_NLA_LGR_V2_PEER_HOST, /* string */ - __SMC_NLA_LGR_V2_MAX, - SMC_NLA_LGR_V2_MAX = __SMC_NLA_LGR_V2_MAX - 1 -}; - -/* SMC_NLA_LGR_R_V2 nested attributes */ -enum { - SMC_NLA_LGR_R_V2_UNSPEC, - SMC_NLA_LGR_R_V2_DIRECT, /* u8 */ - __SMC_NLA_LGR_R_V2_MAX, - SMC_NLA_LGR_R_V2_MAX = __SMC_NLA_LGR_R_V2_MAX - 1 }; /* SMC_GEN_LGR_SMCR attributes */ @@ -117,10 +92,6 @@ enum { SMC_NLA_LGR_R_PNETID, /* string */ SMC_NLA_LGR_R_VLAN_ID, /* u8 */ SMC_NLA_LGR_R_CONNS_NUM, /* u32 */ - SMC_NLA_LGR_R_V2_COMMON, /* nest */ - SMC_NLA_LGR_R_V2, /* nest */ - SMC_NLA_LGR_R_NET_COOKIE, /* u64 */ - SMC_NLA_LGR_R_PAD, /* flag */ __SMC_NLA_LGR_R_MAX, SMC_NLA_LGR_R_MAX = __SMC_NLA_LGR_R_MAX - 1 }; @@ -153,7 +124,7 @@ enum { SMC_NLA_LGR_D_PNETID, /* string */ SMC_NLA_LGR_D_CHID, /* u16 */ SMC_NLA_LGR_D_PAD, /* flag */ - SMC_NLA_LGR_D_V2_COMMON, /* nest */ + SMC_NLA_LGR_V2, /* nest */ __SMC_NLA_LGR_D_MAX, SMC_NLA_LGR_D_MAX = __SMC_NLA_LGR_D_MAX - 1 }; @@ -188,100 +159,4 @@ 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 -}; - -/* SMC_NETLINK_UEID attributes */ -enum { - SMC_NLA_EID_TABLE_UNSPEC, - SMC_NLA_EID_TABLE_ENTRY, /* string */ - __SMC_NLA_EID_TABLE_MAX, - SMC_NLA_EID_TABLE_MAX = __SMC_NLA_EID_TABLE_MAX - 1 -}; - -/* SMC_NETLINK_SEID attributes */ -enum { - SMC_NLA_SEID_UNSPEC, - SMC_NLA_SEID_ENTRY, /* string */ - SMC_NLA_SEID_ENABLED, /* u8 */ - __SMC_NLA_SEID_TABLE_MAX, - SMC_NLA_SEID_TABLE_MAX = __SMC_NLA_SEID_TABLE_MAX - 1 -}; #endif /* _UAPI_LINUX_SMC_H */ diff --git a/original/uapi/linux/snmp.h b/original/uapi/linux/snmp.h index 904909d..26fc60c 100644 --- a/original/uapi/linux/snmp.h +++ b/original/uapi/linux/snmp.h @@ -290,8 +290,6 @@ enum LINUX_MIB_TCPDUPLICATEDATAREHASH, /* TCPDuplicateDataRehash */ LINUX_MIB_TCPDSACKRECVSEGS, /* TCPDSACKRecvSegs */ LINUX_MIB_TCPDSACKIGNOREDDUBIOUS, /* TCPDSACKIgnoredDubious */ - LINUX_MIB_TCPMIGRATEREQSUCCESS, /* TCPMigrateReqSuccess */ - LINUX_MIB_TCPMIGRATEREQFAILURE, /* TCPMigrateReqFailure */ __LINUX_MIB_MAX }; diff --git a/original/uapi/linux/socket.h b/original/uapi/linux/socket.h index eb0a9a5..c3409c8 100644 --- a/original/uapi/linux/socket.h +++ b/original/uapi/linux/socket.h @@ -26,9 +26,4 @@ struct __kernel_sockaddr_storage { }; }; -#define SOCK_SNDBUF_LOCK 1 -#define SOCK_RCVBUF_LOCK 2 - -#define SOCK_BUF_LOCK_MASK (SOCK_SNDBUF_LOCK | SOCK_RCVBUF_LOCK) - #endif /* _UAPI_LINUX_SOCKET_H */ diff --git a/original/uapi/linux/soundcard.h b/original/uapi/linux/soundcard.h index ac13187..f3b21f9 100644 --- a/original/uapi/linux/soundcard.h +++ b/original/uapi/linux/soundcard.h @@ -1051,7 +1051,7 @@ typedef struct mixer_vol_table { * the GPL version of OSS-4.x and build against that version * of the header. * - * We redefine the extern keyword so that usr/include/headers_check.pl + * We redefine the extern keyword so that make headers_check * does not complain about SEQ_USE_EXTBUF. */ #define SEQ_DECLAREBUF() SEQ_USE_EXTBUF() diff --git a/original/uapi/linux/stddef.h b/original/uapi/linux/stddef.h index 3021ea2..ee8220f 100644 --- a/original/uapi/linux/stddef.h +++ b/original/uapi/linux/stddef.h @@ -4,40 +4,3 @@ #ifndef __always_inline #define __always_inline inline #endif - -/** - * __struct_group() - Create a mirrored named and anonyomous struct - * - * @TAG: The tag name for the named sub-struct (usually empty) - * @NAME: The identifier name of the mirrored sub-struct - * @ATTRS: Any struct attributes (usually empty) - * @MEMBERS: The member declarations for the mirrored structs - * - * Used to create an anonymous union of two structs with identical layout - * and size: one anonymous and one named. The former's members can be used - * normally without sub-struct naming, and the latter can be used to - * reason about the start, end, and size of the group of struct members. - * The named struct can also be explicitly tagged for layer reuse, as well - * as both having struct attributes appended. - */ -#define __struct_group(TAG, NAME, ATTRS, MEMBERS...) \ - union { \ - struct { MEMBERS } ATTRS; \ - struct TAG { MEMBERS } ATTRS NAME; \ - } - -/** - * __DECLARE_FLEX_ARRAY() - Declare a flexible array usable in a union - * - * @TYPE: The type of each flexible array element - * @NAME: The name of the flexible array member - * - * In order to have a flexible array member in a union or alone in a - * struct, it needs to be wrapped in an anonymous struct with at least 1 - * named member, but that member can be empty. - */ -#define __DECLARE_FLEX_ARRAY(TYPE, NAME) \ - struct { \ - struct { } __empty_ ## NAME; \ - TYPE NAME[]; \ - } diff --git a/original/uapi/linux/surface_aggregator/cdev.h b/original/uapi/linux/surface_aggregator/cdev.h index 08f46b6..fbcce04 100644 --- a/original/uapi/linux/surface_aggregator/cdev.h +++ b/original/uapi/linux/surface_aggregator/cdev.h @@ -6,7 +6,7 @@ * device. This device provides direct user-space access to the SSAM EC. * Intended for debugging and development. * - * Copyright (C) 2020-2021 Maximilian Luz <luzmaximilian@gmail.com> + * Copyright (C) 2020 Maximilian Luz <luzmaximilian@gmail.com> */ #ifndef _UAPI_LINUX_SURFACE_AGGREGATOR_CDEV_H @@ -73,75 +73,6 @@ struct ssam_cdev_request { } response; } __attribute__((__packed__)); -/** - * 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) +#define SSAM_CDEV_REQUEST _IOWR(0xA5, 1, struct ssam_cdev_request) #endif /* _UAPI_LINUX_SURFACE_AGGREGATOR_CDEV_H */ diff --git a/original/uapi/linux/surface_aggregator/dtx.h b/original/uapi/linux/surface_aggregator/dtx.h deleted file mode 100644 index 0833aab..0000000 --- a/original/uapi/linux/surface_aggregator/dtx.h +++ /dev/null @@ -1,146 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */ -/* - * Surface DTX (clipboard detachment system driver) user-space interface. - * - * Definitions, structs, and IOCTLs for the /dev/surface/dtx misc device. This - * device allows user-space to control the clipboard detachment process on - * Surface Book series devices. - * - * Copyright (C) 2020-2021 Maximilian Luz <luzmaximilian@gmail.com> - */ - -#ifndef _UAPI_LINUX_SURFACE_AGGREGATOR_DTX_H -#define _UAPI_LINUX_SURFACE_AGGREGATOR_DTX_H - -#include <linux/ioctl.h> -#include <linux/types.h> - -/* Status/error categories */ -#define SDTX_CATEGORY_STATUS 0x0000 -#define SDTX_CATEGORY_RUNTIME_ERROR 0x1000 -#define SDTX_CATEGORY_HARDWARE_ERROR 0x2000 -#define SDTX_CATEGORY_UNKNOWN 0xf000 - -#define SDTX_CATEGORY_MASK 0xf000 -#define SDTX_CATEGORY(value) ((value) & SDTX_CATEGORY_MASK) - -#define SDTX_STATUS(code) ((code) | SDTX_CATEGORY_STATUS) -#define SDTX_ERR_RT(code) ((code) | SDTX_CATEGORY_RUNTIME_ERROR) -#define SDTX_ERR_HW(code) ((code) | SDTX_CATEGORY_HARDWARE_ERROR) -#define SDTX_UNKNOWN(code) ((code) | SDTX_CATEGORY_UNKNOWN) - -#define SDTX_SUCCESS(value) (SDTX_CATEGORY(value) == SDTX_CATEGORY_STATUS) - -/* Latch status values */ -#define SDTX_LATCH_CLOSED SDTX_STATUS(0x00) -#define SDTX_LATCH_OPENED SDTX_STATUS(0x01) - -/* Base state values */ -#define SDTX_BASE_DETACHED SDTX_STATUS(0x00) -#define SDTX_BASE_ATTACHED SDTX_STATUS(0x01) - -/* Runtime errors (non-critical) */ -#define SDTX_DETACH_NOT_FEASIBLE SDTX_ERR_RT(0x01) -#define SDTX_DETACH_TIMEDOUT SDTX_ERR_RT(0x02) - -/* Hardware errors (critical) */ -#define SDTX_ERR_FAILED_TO_OPEN SDTX_ERR_HW(0x01) -#define SDTX_ERR_FAILED_TO_REMAIN_OPEN SDTX_ERR_HW(0x02) -#define SDTX_ERR_FAILED_TO_CLOSE SDTX_ERR_HW(0x03) - -/* Base types */ -#define SDTX_DEVICE_TYPE_HID 0x0100 -#define SDTX_DEVICE_TYPE_SSH 0x0200 - -#define SDTX_DEVICE_TYPE_MASK 0x0f00 -#define SDTX_DEVICE_TYPE(value) ((value) & SDTX_DEVICE_TYPE_MASK) - -#define SDTX_BASE_TYPE_HID(id) ((id) | SDTX_DEVICE_TYPE_HID) -#define SDTX_BASE_TYPE_SSH(id) ((id) | SDTX_DEVICE_TYPE_SSH) - -/** - * enum sdtx_device_mode - Mode describing how (and if) the clipboard is - * attached to the base of the device. - * @SDTX_DEVICE_MODE_TABLET: The clipboard is detached from the base and the - * device operates as tablet. - * @SDTX_DEVICE_MODE_LAPTOP: The clipboard is attached normally to the base - * and the device operates as laptop. - * @SDTX_DEVICE_MODE_STUDIO: The clipboard is attached to the base in reverse. - * The device operates as tablet with keyboard and - * touchpad deactivated, however, the base battery - * and, if present in the specific device model, dGPU - * are available to the system. - */ -enum sdtx_device_mode { - SDTX_DEVICE_MODE_TABLET = 0x00, - SDTX_DEVICE_MODE_LAPTOP = 0x01, - SDTX_DEVICE_MODE_STUDIO = 0x02, -}; - -/** - * struct sdtx_event - Event provided by reading from the DTX device file. - * @length: Length of the event payload, in bytes. - * @code: Event code, detailing what type of event this is. - * @data: Payload of the event, containing @length bytes. - * - * See &enum sdtx_event_code for currently valid event codes. - */ -struct sdtx_event { - __u16 length; - __u16 code; - __u8 data[]; -} __attribute__((__packed__)); - -/** - * enum sdtx_event_code - Code describing the type of an event. - * @SDTX_EVENT_REQUEST: Detachment request event type. - * @SDTX_EVENT_CANCEL: Cancel detachment process event type. - * @SDTX_EVENT_BASE_CONNECTION: Base/clipboard connection change event type. - * @SDTX_EVENT_LATCH_STATUS: Latch status change event type. - * @SDTX_EVENT_DEVICE_MODE: Device mode change event type. - * - * Used in &struct sdtx_event to describe the type of the event. Further event - * codes are reserved for future use. Any event parser should be able to - * gracefully handle unknown events, i.e. by simply skipping them. - * - * Consult the DTX user-space interface documentation for details regarding - * the individual event types. - */ -enum sdtx_event_code { - SDTX_EVENT_REQUEST = 1, - SDTX_EVENT_CANCEL = 2, - SDTX_EVENT_BASE_CONNECTION = 3, - SDTX_EVENT_LATCH_STATUS = 4, - SDTX_EVENT_DEVICE_MODE = 5, -}; - -/** - * struct sdtx_base_info - Describes if and what type of base is connected. - * @state: The state of the connection. Valid values are %SDTX_BASE_DETACHED, - * %SDTX_BASE_ATTACHED, and %SDTX_DETACH_NOT_FEASIBLE (in case a base - * is attached but low clipboard battery prevents detachment). Other - * values are currently reserved. - * @base_id: The type of base connected. Zero if no base is connected. - */ -struct sdtx_base_info { - __u16 state; - __u16 base_id; -} __attribute__((__packed__)); - -/* IOCTLs */ -#define SDTX_IOCTL_EVENTS_ENABLE _IO(0xa5, 0x21) -#define SDTX_IOCTL_EVENTS_DISABLE _IO(0xa5, 0x22) - -#define SDTX_IOCTL_LATCH_LOCK _IO(0xa5, 0x23) -#define SDTX_IOCTL_LATCH_UNLOCK _IO(0xa5, 0x24) - -#define SDTX_IOCTL_LATCH_REQUEST _IO(0xa5, 0x25) -#define SDTX_IOCTL_LATCH_CONFIRM _IO(0xa5, 0x26) -#define SDTX_IOCTL_LATCH_HEARTBEAT _IO(0xa5, 0x27) -#define SDTX_IOCTL_LATCH_CANCEL _IO(0xa5, 0x28) - -#define SDTX_IOCTL_GET_BASE_INFO _IOR(0xa5, 0x29, struct sdtx_base_info) -#define SDTX_IOCTL_GET_DEVICE_MODE _IOR(0xa5, 0x2a, __u16) -#define SDTX_IOCTL_GET_LATCH_STATUS _IOR(0xa5, 0x2b, __u16) - -#endif /* _UAPI_LINUX_SURFACE_AGGREGATOR_DTX_H */ diff --git a/original/uapi/linux/sysctl.h b/original/uapi/linux/sysctl.h index 6a3b194..1e05d3c 100644 --- a/original/uapi/linux/sysctl.h +++ b/original/uapi/linux/sysctl.h @@ -482,7 +482,6 @@ enum NET_IPV4_CONF_PROMOTE_SECONDARIES=20, NET_IPV4_CONF_ARP_ACCEPT=21, NET_IPV4_CONF_ARP_NOTIFY=22, - NET_IPV4_CONF_ARP_EVICT_NOCARRIER=23, }; /* /proc/sys/net/ipv4/netfilter */ diff --git a/original/uapi/linux/target_core_user.h b/original/uapi/linux/target_core_user.h index 27ace51..95b1597 100644 --- a/original/uapi/linux/target_core_user.h +++ b/original/uapi/linux/target_core_user.h @@ -46,7 +46,6 @@ #define TCMU_MAILBOX_FLAG_CAP_OOOC (1 << 0) /* Out-of-order completions */ #define TCMU_MAILBOX_FLAG_CAP_READ_LEN (1 << 1) /* Read data length */ #define TCMU_MAILBOX_FLAG_CAP_TMR (1 << 2) /* TMR notifications */ -#define TCMU_MAILBOX_FLAG_CAP_KEEP_BUF (1<<3) /* Keep buf after cmd completion */ struct tcmu_mailbox { __u16 version; @@ -76,7 +75,6 @@ struct tcmu_cmd_entry_hdr { __u8 kflags; #define TCMU_UFLAG_UNKNOWN_OP 0x1 #define TCMU_UFLAG_READ_LEN 0x2 -#define TCMU_UFLAG_KEEP_BUF 0x4 __u8 uflags; } __packed; diff --git a/original/uapi/linux/taskstats.h b/original/uapi/linux/taskstats.h index 12327d3..ccbd087 100644 --- a/original/uapi/linux/taskstats.h +++ b/original/uapi/linux/taskstats.h @@ -34,7 +34,7 @@ */ -#define TASKSTATS_VERSION 11 +#define TASKSTATS_VERSION 10 #define TS_COMM_LEN 32 /* should be >= TASK_COMM_LEN * in linux/sched.h */ @@ -172,10 +172,6 @@ struct taskstats { /* v10: 64-bit btime to avoid overflow */ __u64 ac_btime64; /* 64-bit begin time */ - - /* Delay waiting for memory compact */ - __u64 compact_count; - __u64 compact_delay_total; }; diff --git a/original/uapi/linux/tc_act/tc_skbmod.h b/original/uapi/linux/tc_act/tc_skbmod.h index af6ef2c..c525b35 100644 --- a/original/uapi/linux/tc_act/tc_skbmod.h +++ b/original/uapi/linux/tc_act/tc_skbmod.h @@ -17,7 +17,6 @@ #define SKBMOD_F_SMAC 0x2 #define SKBMOD_F_ETYPE 0x4 #define SKBMOD_F_SWAPMAC 0x8 -#define SKBMOD_F_ECN 0x10 struct tc_skbmod { tc_gen; diff --git a/original/uapi/linux/thermal.h b/original/uapi/linux/thermal.h index 9aa2fed..c105054 100644 --- a/original/uapi/linux/thermal.h +++ b/original/uapi/linux/thermal.h @@ -60,7 +60,7 @@ enum thermal_genl_event { THERMAL_GENL_EVENT_UNSPEC, THERMAL_GENL_EVENT_TZ_CREATE, /* Thermal zone creation */ THERMAL_GENL_EVENT_TZ_DELETE, /* Thermal zone deletion */ - THERMAL_GENL_EVENT_TZ_DISABLE, /* Thermal zone disabled */ + THERMAL_GENL_EVENT_TZ_DISABLE, /* Thermal zone disabed */ THERMAL_GENL_EVENT_TZ_ENABLE, /* Thermal zone enabled */ THERMAL_GENL_EVENT_TZ_TRIP_UP, /* Trip point crossed the way up */ THERMAL_GENL_EVENT_TZ_TRIP_DOWN, /* Trip point crossed the way down */ diff --git a/original/uapi/linux/tls.h b/original/uapi/linux/tls.h index 5f38be0..0d54bae 100644 --- a/original/uapi/linux/tls.h +++ b/original/uapi/linux/tls.h @@ -84,20 +84,6 @@ #define TLS_CIPHER_CHACHA20_POLY1305_TAG_SIZE 16 #define TLS_CIPHER_CHACHA20_POLY1305_REC_SEQ_SIZE 8 -#define TLS_CIPHER_SM4_GCM 55 -#define TLS_CIPHER_SM4_GCM_IV_SIZE 8 -#define TLS_CIPHER_SM4_GCM_KEY_SIZE 16 -#define TLS_CIPHER_SM4_GCM_SALT_SIZE 4 -#define TLS_CIPHER_SM4_GCM_TAG_SIZE 16 -#define TLS_CIPHER_SM4_GCM_REC_SEQ_SIZE 8 - -#define TLS_CIPHER_SM4_CCM 56 -#define TLS_CIPHER_SM4_CCM_IV_SIZE 8 -#define TLS_CIPHER_SM4_CCM_KEY_SIZE 16 -#define TLS_CIPHER_SM4_CCM_SALT_SIZE 4 -#define TLS_CIPHER_SM4_CCM_TAG_SIZE 16 -#define TLS_CIPHER_SM4_CCM_REC_SEQ_SIZE 8 - #define TLS_SET_RECORD_TYPE 1 #define TLS_GET_RECORD_TYPE 2 @@ -138,22 +124,6 @@ struct tls12_crypto_info_chacha20_poly1305 { unsigned char rec_seq[TLS_CIPHER_CHACHA20_POLY1305_REC_SEQ_SIZE]; }; -struct tls12_crypto_info_sm4_gcm { - struct tls_crypto_info info; - unsigned char iv[TLS_CIPHER_SM4_GCM_IV_SIZE]; - unsigned char key[TLS_CIPHER_SM4_GCM_KEY_SIZE]; - unsigned char salt[TLS_CIPHER_SM4_GCM_SALT_SIZE]; - unsigned char rec_seq[TLS_CIPHER_SM4_GCM_REC_SEQ_SIZE]; -}; - -struct tls12_crypto_info_sm4_ccm { - struct tls_crypto_info info; - unsigned char iv[TLS_CIPHER_SM4_CCM_IV_SIZE]; - unsigned char key[TLS_CIPHER_SM4_CCM_KEY_SIZE]; - unsigned char salt[TLS_CIPHER_SM4_CCM_SALT_SIZE]; - unsigned char rec_seq[TLS_CIPHER_SM4_CCM_REC_SEQ_SIZE]; -}; - enum { TLS_INFO_UNSPEC, TLS_INFO_VERSION, diff --git a/original/uapi/linux/tty.h b/original/uapi/linux/tty.h index a58deb3..376cccf 100644 --- a/original/uapi/linux/tty.h +++ b/original/uapi/linux/tty.h @@ -38,6 +38,5 @@ #define N_NCI 25 /* NFC NCI UART */ #define N_SPEAKUP 26 /* Speakup communication with synths */ #define N_NULL 27 /* Null ldisc used for error handling */ -#define N_MCTP 28 /* MCTP-over-serial */ #endif /* _UAPI_LINUX_TTY_H */ diff --git a/original/uapi/linux/tty_flags.h b/original/uapi/linux/tty_flags.h index cf25056..900a32e 100644 --- a/original/uapi/linux/tty_flags.h +++ b/original/uapi/linux/tty_flags.h @@ -39,7 +39,7 @@ * WARNING: These flags are no longer used and have been superceded by the * TTY_PORT_ flags in the iflags field (and not userspace-visible) */ -#ifndef __KERNEL__ +#ifndef _KERNEL_ #define ASYNCB_INITIALIZED 31 /* Serial port was initialized */ #define ASYNCB_SUSPENDED 30 /* Serial port is suspended */ #define ASYNCB_NORMAL_ACTIVE 29 /* Normal device is active */ @@ -73,15 +73,15 @@ #define ASYNC_MAGIC_MULTIPLIER (1U << ASYNCB_MAGIC_MULTIPLIER) #define ASYNC_FLAGS ((1U << (ASYNCB_LAST_USER + 1)) - 1) -#define ASYNC_DEPRECATED (ASYNC_SPLIT_TERMIOS | ASYNC_SESSION_LOCKOUT | \ - ASYNC_PGRP_LOCKOUT | ASYNC_CALLOUT_NOHUP | ASYNC_AUTOPROBE) +#define ASYNC_DEPRECATED (ASYNC_SESSION_LOCKOUT | ASYNC_PGRP_LOCKOUT | \ + ASYNC_CALLOUT_NOHUP | ASYNC_AUTOPROBE) #define ASYNC_USR_MASK (ASYNC_SPD_MASK|ASYNC_CALLOUT_NOHUP| \ ASYNC_LOW_LATENCY) #define ASYNC_SPD_CUST (ASYNC_SPD_HI|ASYNC_SPD_VHI) #define ASYNC_SPD_WARP (ASYNC_SPD_HI|ASYNC_SPD_SHI) #define ASYNC_SPD_MASK (ASYNC_SPD_HI|ASYNC_SPD_VHI|ASYNC_SPD_SHI) -#ifndef __KERNEL__ +#ifndef _KERNEL_ /* These flags are no longer used (and were always masked from userspace) */ #define ASYNC_INITIALIZED (1U << ASYNCB_INITIALIZED) #define ASYNC_NORMAL_ACTIVE (1U << ASYNCB_NORMAL_ACTIVE) diff --git a/original/uapi/linux/usb/video.h b/original/uapi/linux/usb/video.h index bfdae12..d854cb1 100644 --- a/original/uapi/linux/usb/video.h +++ b/original/uapi/linux/usb/video.h @@ -302,10 +302,9 @@ struct uvc_processing_unit_descriptor { __u8 bControlSize; __u8 bmControls[2]; __u8 iProcessing; - __u8 bmVideoStandards; } __attribute__((__packed__)); -#define UVC_DT_PROCESSING_UNIT_SIZE(n) (10+(n)) +#define UVC_DT_PROCESSING_UNIT_SIZE(n) (9+(n)) /* 3.7.2.6. Extension Unit Descriptor */ struct uvc_extension_unit_descriptor { diff --git a/original/uapi/linux/userfaultfd.h b/original/uapi/linux/userfaultfd.h index 05b31d6..5f2d882 100644 --- a/original/uapi/linux/userfaultfd.h +++ b/original/uapi/linux/userfaultfd.h @@ -19,20 +19,15 @@ * means the userland is reading). */ #define UFFD_API ((__u64)0xAA) -#define UFFD_API_REGISTER_MODES (UFFDIO_REGISTER_MODE_MISSING | \ - UFFDIO_REGISTER_MODE_WP | \ - UFFDIO_REGISTER_MODE_MINOR) #define UFFD_API_FEATURES (UFFD_FEATURE_PAGEFAULT_FLAG_WP | \ UFFD_FEATURE_EVENT_FORK | \ UFFD_FEATURE_EVENT_REMAP | \ - UFFD_FEATURE_EVENT_REMOVE | \ + UFFD_FEATURE_EVENT_REMOVE | \ UFFD_FEATURE_EVENT_UNMAP | \ UFFD_FEATURE_MISSING_HUGETLBFS | \ UFFD_FEATURE_MISSING_SHMEM | \ UFFD_FEATURE_SIGBUS | \ - UFFD_FEATURE_THREAD_ID | \ - UFFD_FEATURE_MINOR_HUGETLBFS | \ - UFFD_FEATURE_MINOR_SHMEM) + UFFD_FEATURE_THREAD_ID) #define UFFD_API_IOCTLS \ ((__u64)1 << _UFFDIO_REGISTER | \ (__u64)1 << _UFFDIO_UNREGISTER | \ @@ -41,12 +36,10 @@ ((__u64)1 << _UFFDIO_WAKE | \ (__u64)1 << _UFFDIO_COPY | \ (__u64)1 << _UFFDIO_ZEROPAGE | \ - (__u64)1 << _UFFDIO_WRITEPROTECT | \ - (__u64)1 << _UFFDIO_CONTINUE) + (__u64)1 << _UFFDIO_WRITEPROTECT) #define UFFD_API_RANGE_IOCTLS_BASIC \ ((__u64)1 << _UFFDIO_WAKE | \ - (__u64)1 << _UFFDIO_COPY | \ - (__u64)1 << _UFFDIO_CONTINUE) + (__u64)1 << _UFFDIO_COPY) /* * Valid ioctl command number range with this API is from 0x00 to @@ -62,7 +55,6 @@ #define _UFFDIO_COPY (0x03) #define _UFFDIO_ZEROPAGE (0x04) #define _UFFDIO_WRITEPROTECT (0x06) -#define _UFFDIO_CONTINUE (0x07) #define _UFFDIO_API (0x3F) /* userfaultfd ioctl ids */ @@ -81,8 +73,6 @@ struct uffdio_zeropage) #define UFFDIO_WRITEPROTECT _IOWR(UFFDIO, _UFFDIO_WRITEPROTECT, \ struct uffdio_writeprotect) -#define UFFDIO_CONTINUE _IOWR(UFFDIO, _UFFDIO_CONTINUE, \ - struct uffdio_continue) /* read() structure */ struct uffd_msg { @@ -137,7 +127,6 @@ struct uffd_msg { /* flags for UFFD_EVENT_PAGEFAULT */ #define UFFD_PAGEFAULT_FLAG_WRITE (1<<0) /* If this was a write fault */ #define UFFD_PAGEFAULT_FLAG_WP (1<<1) /* If reason is VM_UFFD_WP */ -#define UFFD_PAGEFAULT_FLAG_MINOR (1<<2) /* If reason is VM_UFFD_MINOR */ struct uffdio_api { /* userland asks for an API number and the features to enable */ @@ -182,13 +171,6 @@ struct uffdio_api { * * UFFD_FEATURE_THREAD_ID pid of the page faulted task_struct will * be returned, if feature is not requested 0 will be returned. - * - * 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) @@ -199,8 +181,6 @@ struct uffdio_api { #define UFFD_FEATURE_EVENT_UNMAP (1<<6) #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; @@ -215,7 +195,6 @@ struct uffdio_register { struct uffdio_range range; #define UFFDIO_REGISTER_MODE_MISSING ((__u64)1<<0) #define UFFDIO_REGISTER_MODE_WP ((__u64)1<<1) -#define UFFDIO_REGISTER_MODE_MINOR ((__u64)1<<2) __u64 mode; /* @@ -278,18 +257,6 @@ struct uffdio_writeprotect { __u64 mode; }; -struct uffdio_continue { - struct uffdio_range range; -#define UFFDIO_CONTINUE_MODE_DONTWAKE ((__u64)1<<0) - __u64 mode; - - /* - * Fields below here are written by the ioctl and must be at the end: - * the copy_from_user will not read past here. - */ - __s64 mapped; -}; - /* * Flags for the userfaultfd(2) system call itself. */ diff --git a/original/uapi/linux/uuid.h b/original/uapi/linux/uuid.h index c0f4bd9..e5a7eec 100644 --- a/original/uapi/linux/uuid.h +++ b/original/uapi/linux/uuid.h @@ -1,10 +1,18 @@ /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ -/* DO NOT USE in new code! This is solely for MEI due to legacy reasons */ /* * UUID/GUID definition * * Copyright (C) 2010, Intel Corp. * Huang Ying <ying.huang@intel.com> + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License version + * 2 as published by the Free Software Foundation; + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. */ #ifndef _UAPI_LINUX_UUID_H_ diff --git a/original/uapi/linux/uvcvideo.h b/original/uapi/linux/uvcvideo.h index 8288137..f80f05b 100644 --- a/original/uapi/linux/uvcvideo.h +++ b/original/uapi/linux/uvcvideo.h @@ -76,11 +76,11 @@ struct uvc_xu_control_query { /** * struct uvc_meta_buf - metadata buffer building block - * @ns: system timestamp of the payload in nanoseconds - * @sof: USB Frame Number - * @length: length of the payload header - * @flags: payload header flags - * @buf: optional device-specific header data + * @ns - system timestamp of the payload in nanoseconds + * @sof - USB Frame Number + * @length - length of the payload header + * @flags - payload header flags + * @buf - optional device-specific header data * * UVC metadata nodes fill buffers with possibly multiple instances of this * struct. The first two fields are added by the driver, they can be used for diff --git a/original/uapi/linux/v4l2-controls.h b/original/uapi/linux/v4l2-controls.h index c8e0f84..039c0d7 100644 --- a/original/uapi/linux/v4l2-controls.h +++ b/original/uapi/linux/v4l2-controls.h @@ -50,7 +50,6 @@ #ifndef __LINUX_V4L2_CONTROLS_H #define __LINUX_V4L2_CONTROLS_H -#include <linux/const.h> #include <linux/types.h> /* Control classes */ @@ -67,7 +66,6 @@ #define V4L2_CTRL_CLASS_RF_TUNER 0x00a20000 /* RF tuner controls */ #define V4L2_CTRL_CLASS_DETECT 0x00a30000 /* Detection controls */ #define V4L2_CTRL_CLASS_CODEC_STATELESS 0x00a40000 /* Stateless codecs controls */ -#define V4L2_CTRL_CLASS_COLORIMETRY 0x00a50000 /* Colorimetry controls */ /* User-class control IDs */ @@ -128,7 +126,6 @@ enum v4l2_colorfx { V4L2_COLORFX_SOLARIZATION = 13, V4L2_COLORFX_ANTIQUE = 14, V4L2_COLORFX_SET_CBCR = 15, - V4L2_COLORFX_SET_RGB = 16, }; #define V4L2_CID_AUTOBRIGHTNESS (V4L2_CID_BASE+32) #define V4L2_CID_BAND_STOP_FILTER (V4L2_CID_BASE+33) @@ -146,10 +143,9 @@ enum v4l2_colorfx { #define V4L2_CID_ALPHA_COMPONENT (V4L2_CID_BASE+41) #define V4L2_CID_COLORFX_CBCR (V4L2_CID_BASE+42) -#define V4L2_CID_COLORFX_RGB (V4L2_CID_BASE+43) /* last CID + 1 */ -#define V4L2_CID_LASTP1 (V4L2_CID_BASE+44) +#define V4L2_CID_LASTP1 (V4L2_CID_BASE+43) /* USER-class private control IDs */ @@ -213,11 +209,6 @@ enum v4l2_colorfx { * We reserve 128 controls for this driver. */ #define V4L2_CID_USER_CCS_BASE (V4L2_CID_USER_BASE + 0x10f0) -/* - * The base for Allegro driver controls. - * We reserve 16 controls for this driver. - */ -#define V4L2_CID_USER_ALLEGRO_BASE (V4L2_CID_USER_BASE + 0x1170) /* MPEG-class control IDs */ /* The MPEG controls are applicable to all codec controls @@ -437,12 +428,6 @@ enum v4l2_mpeg_video_multi_slice_mode { #define V4L2_CID_MPEG_VIDEO_MV_V_SEARCH_RANGE (V4L2_CID_CODEC_BASE+228) #define V4L2_CID_MPEG_VIDEO_FORCE_KEY_FRAME (V4L2_CID_CODEC_BASE+229) #define V4L2_CID_MPEG_VIDEO_BASELAYER_PRIORITY_ID (V4L2_CID_CODEC_BASE+230) -#define V4L2_CID_MPEG_VIDEO_AU_DELIMITER (V4L2_CID_CODEC_BASE+231) -#define V4L2_CID_MPEG_VIDEO_LTR_COUNT (V4L2_CID_CODEC_BASE+232) -#define V4L2_CID_MPEG_VIDEO_FRAME_LTR_INDEX (V4L2_CID_CODEC_BASE+233) -#define V4L2_CID_MPEG_VIDEO_USE_LTR_FRAMES (V4L2_CID_CODEC_BASE+234) -#define V4L2_CID_MPEG_VIDEO_DEC_CONCEAL_COLOR (V4L2_CID_CODEC_BASE+235) -#define V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD (V4L2_CID_CODEC_BASE+236) /* CIDs for the MPEG-2 Part 2 (H.262) codec */ #define V4L2_CID_MPEG_VIDEO_MPEG2_LEVEL (V4L2_CID_CODEC_BASE+270) @@ -812,9 +797,6 @@ enum v4l2_mpeg_video_frame_skip_mode { #define V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_MIN_QP (V4L2_CID_CODEC_BASE + 651) #define V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_MAX_QP (V4L2_CID_CODEC_BASE + 652) -#define V4L2_CID_MPEG_VIDEO_DEC_DISPLAY_DELAY (V4L2_CID_CODEC_BASE + 653) -#define V4L2_CID_MPEG_VIDEO_DEC_DISPLAY_DELAY_ENABLE (V4L2_CID_CODEC_BASE + 654) - /* MPEG-class control IDs specific to the CX2341x driver as defined by V4L2 */ #define V4L2_CID_CODEC_CX2341X_BASE (V4L2_CTRL_CLASS_CODEC | 0x1000) #define V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE (V4L2_CID_CODEC_CX2341X_BASE+0) @@ -1125,7 +1107,6 @@ enum v4l2_jpeg_chroma_subsampling { #define V4L2_CID_TEST_PATTERN_BLUE (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 6) #define V4L2_CID_TEST_PATTERN_GREENB (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 7) #define V4L2_CID_UNIT_CELL_SIZE (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 8) -#define V4L2_CID_NOTIFY_GAINS (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 9) /* Image processing controls */ @@ -1348,7 +1329,7 @@ struct v4l2_ctrl_h264_sps { * struct v4l2_ctrl_h264_pps - H264 picture parameter set * * Except where noted, all the members on this picture parameter set - * structure match the picture parameter set syntax as specified + * structure match the sequence parameter set syntax as specified * by the H264 specification. * * In particular, V4L2_H264_PPS_FLAG_SCALING_MATRIX_PRESENT flag @@ -1612,30 +1593,30 @@ struct v4l2_ctrl_h264_decode_params { #define V4L2_FWHT_VERSION 3 /* Set if this is an interlaced format */ -#define V4L2_FWHT_FL_IS_INTERLACED _BITUL(0) +#define V4L2_FWHT_FL_IS_INTERLACED BIT(0) /* Set if this is a bottom-first (NTSC) interlaced format */ -#define V4L2_FWHT_FL_IS_BOTTOM_FIRST _BITUL(1) +#define V4L2_FWHT_FL_IS_BOTTOM_FIRST BIT(1) /* Set if each 'frame' contains just one field */ -#define V4L2_FWHT_FL_IS_ALTERNATE _BITUL(2) +#define V4L2_FWHT_FL_IS_ALTERNATE BIT(2) /* * If V4L2_FWHT_FL_IS_ALTERNATE was set, then this is set if this * 'frame' is the bottom field, else it is the top field. */ -#define V4L2_FWHT_FL_IS_BOTTOM_FIELD _BITUL(3) +#define V4L2_FWHT_FL_IS_BOTTOM_FIELD BIT(3) /* Set if the Y' plane is uncompressed */ -#define V4L2_FWHT_FL_LUMA_IS_UNCOMPRESSED _BITUL(4) +#define V4L2_FWHT_FL_LUMA_IS_UNCOMPRESSED BIT(4) /* Set if the Cb plane is uncompressed */ -#define V4L2_FWHT_FL_CB_IS_UNCOMPRESSED _BITUL(5) +#define V4L2_FWHT_FL_CB_IS_UNCOMPRESSED BIT(5) /* Set if the Cr plane is uncompressed */ -#define V4L2_FWHT_FL_CR_IS_UNCOMPRESSED _BITUL(6) +#define V4L2_FWHT_FL_CR_IS_UNCOMPRESSED BIT(6) /* Set if the chroma plane is full height, if cleared it is half height */ -#define V4L2_FWHT_FL_CHROMA_FULL_HEIGHT _BITUL(7) +#define V4L2_FWHT_FL_CHROMA_FULL_HEIGHT BIT(7) /* Set if the chroma plane is full width, if cleared it is half width */ -#define V4L2_FWHT_FL_CHROMA_FULL_WIDTH _BITUL(8) +#define V4L2_FWHT_FL_CHROMA_FULL_WIDTH BIT(8) /* Set if the alpha plane is uncompressed */ -#define V4L2_FWHT_FL_ALPHA_IS_UNCOMPRESSED _BITUL(9) +#define V4L2_FWHT_FL_ALPHA_IS_UNCOMPRESSED BIT(9) /* Set if this is an I Frame */ -#define V4L2_FWHT_FL_I_FRAME _BITUL(10) +#define V4L2_FWHT_FL_I_FRAME BIT(10) /* A 4-values flag - the number of components - 1 */ #define V4L2_FWHT_FL_COMPONENTS_NUM_MSK GENMASK(18, 16) @@ -1676,632 +1657,6 @@ struct v4l2_ctrl_fwht_params { __u32 quantization; }; -/* Stateless VP8 control */ - -#define V4L2_VP8_SEGMENT_FLAG_ENABLED 0x01 -#define V4L2_VP8_SEGMENT_FLAG_UPDATE_MAP 0x02 -#define V4L2_VP8_SEGMENT_FLAG_UPDATE_FEATURE_DATA 0x04 -#define V4L2_VP8_SEGMENT_FLAG_DELTA_VALUE_MODE 0x08 - -/** - * struct v4l2_vp8_segment - VP8 segment-based adjustments parameters - * - * @quant_update: update values for the segment quantizer. - * @lf_update: update values for the loop filter level. - * @segment_probs: branch probabilities of the segment_id decoding tree. - * @padding: padding field. Should be zeroed by applications. - * @flags: see V4L2_VP8_SEGMENT_FLAG_{}. - * - * This structure contains segment-based adjustments related parameters. - * See the 'update_segmentation()' part of the frame header syntax, - * and section '9.3. Segment-Based Adjustments' of the VP8 specification - * for more details. - */ -struct v4l2_vp8_segment { - __s8 quant_update[4]; - __s8 lf_update[4]; - __u8 segment_probs[3]; - __u8 padding; - __u32 flags; -}; - -#define V4L2_VP8_LF_ADJ_ENABLE 0x01 -#define V4L2_VP8_LF_DELTA_UPDATE 0x02 -#define V4L2_VP8_LF_FILTER_TYPE_SIMPLE 0x04 - -/** - * struct v4l2_vp8_loop_filter - VP8 loop filter parameters - * - * @ref_frm_delta: Reference frame signed delta values. - * @mb_mode_delta: MB prediction mode signed delta values. - * @sharpness_level: matches sharpness_level syntax element. - * @level: matches loop_filter_level syntax element. - * @padding: padding field. Should be zeroed by applications. - * @flags: see V4L2_VP8_LF_FLAG_{}. - * - * This structure contains loop filter related parameters. - * See the 'mb_lf_adjustments()' part of the frame header syntax, - * and section '9.4. Loop Filter Type and Levels' of the VP8 specification - * for more details. - */ -struct v4l2_vp8_loop_filter { - __s8 ref_frm_delta[4]; - __s8 mb_mode_delta[4]; - __u8 sharpness_level; - __u8 level; - __u16 padding; - __u32 flags; -}; - -/** - * struct v4l2_vp8_quantization - VP8 quantizattion indices - * - * @y_ac_qi: luma AC coefficient table index. - * @y_dc_delta: luma DC delta vaue. - * @y2_dc_delta: y2 block DC delta value. - * @y2_ac_delta: y2 block AC delta value. - * @uv_dc_delta: chroma DC delta value. - * @uv_ac_delta: chroma AC delta value. - * @padding: padding field. Should be zeroed by applications. - * - * This structure contains the quantization indices present - * in 'quant_indices()' part of the frame header syntax. - * See section '9.6. Dequantization Indices' of the VP8 specification - * for more details. - */ -struct v4l2_vp8_quantization { - __u8 y_ac_qi; - __s8 y_dc_delta; - __s8 y2_dc_delta; - __s8 y2_ac_delta; - __s8 uv_dc_delta; - __s8 uv_ac_delta; - __u16 padding; -}; - -#define V4L2_VP8_COEFF_PROB_CNT 11 -#define V4L2_VP8_MV_PROB_CNT 19 - -/** - * struct v4l2_vp8_entropy - VP8 update probabilities - * - * @coeff_probs: coefficient probability update values. - * @y_mode_probs: luma intra-prediction probabilities. - * @uv_mode_probs: chroma intra-prediction probabilities. - * @mv_probs: mv decoding probability. - * @padding: padding field. Should be zeroed by applications. - * - * This structure contains the update probabilities present in - * 'token_prob_update()' and 'mv_prob_update()' part of the frame header. - * See section '17.2. Probability Updates' of the VP8 specification - * for more details. - */ -struct v4l2_vp8_entropy { - __u8 coeff_probs[4][8][3][V4L2_VP8_COEFF_PROB_CNT]; - __u8 y_mode_probs[4]; - __u8 uv_mode_probs[3]; - __u8 mv_probs[2][V4L2_VP8_MV_PROB_CNT]; - __u8 padding[3]; -}; - -/** - * struct v4l2_vp8_entropy_coder_state - VP8 boolean coder state - * - * @range: coder state value for "Range" - * @value: coder state value for "Value" - * @bit_count: number of bits left in range "Value". - * @padding: padding field. Should be zeroed by applications. - * - * This structure contains the state for the boolean coder, as - * explained in section '7. Boolean Entropy Decoder' of the VP8 specification. - */ -struct v4l2_vp8_entropy_coder_state { - __u8 range; - __u8 value; - __u8 bit_count; - __u8 padding; -}; - -#define V4L2_VP8_FRAME_FLAG_KEY_FRAME 0x01 -#define V4L2_VP8_FRAME_FLAG_EXPERIMENTAL 0x02 -#define V4L2_VP8_FRAME_FLAG_SHOW_FRAME 0x04 -#define V4L2_VP8_FRAME_FLAG_MB_NO_SKIP_COEFF 0x08 -#define V4L2_VP8_FRAME_FLAG_SIGN_BIAS_GOLDEN 0x10 -#define V4L2_VP8_FRAME_FLAG_SIGN_BIAS_ALT 0x20 - -#define V4L2_VP8_FRAME_IS_KEY_FRAME(hdr) \ - (!!((hdr)->flags & V4L2_VP8_FRAME_FLAG_KEY_FRAME)) - -#define V4L2_CID_STATELESS_VP8_FRAME (V4L2_CID_CODEC_STATELESS_BASE + 200) -/** - * struct v4l2_ctrl_vp8_frame - VP8 frame parameters - * - * @segment: segmentation parameters. See &v4l2_vp8_segment for more details - * @lf: loop filter parameters. See &v4l2_vp8_loop_filter for more details - * @quant: quantization parameters. See &v4l2_vp8_quantization for more details - * @entropy: update probabilities. See &v4l2_vp8_entropy for more details - * @coder_state: boolean coder state. See &v4l2_vp8_entropy_coder_state for more details - * @width: frame width. - * @height: frame height. - * @horizontal_scale: horizontal scaling factor. - * @vertical_scale: vertical scaling factor. - * @version: bitstream version. - * @prob_skip_false: frame header syntax element. - * @prob_intra: frame header syntax element. - * @prob_last: frame header syntax element. - * @prob_gf: frame header syntax element. - * @num_dct_parts: number of DCT coefficients partitions. - * @first_part_size: size of the first partition, i.e. the control partition. - * @first_part_header_bits: size in bits of the first partition header portion. - * @dct_part_sizes: DCT coefficients sizes. - * @last_frame_ts: "last" reference buffer timestamp. - * The timestamp refers to the timestamp field in struct v4l2_buffer. - * Use v4l2_timeval_to_ns() to convert the struct timeval to a __u64. - * @golden_frame_ts: "golden" reference buffer timestamp. - * @alt_frame_ts: "alt" reference buffer timestamp. - * @flags: see V4L2_VP8_FRAME_FLAG_{}. - */ -struct v4l2_ctrl_vp8_frame { - struct v4l2_vp8_segment segment; - struct v4l2_vp8_loop_filter lf; - struct v4l2_vp8_quantization quant; - struct v4l2_vp8_entropy entropy; - struct v4l2_vp8_entropy_coder_state coder_state; - - __u16 width; - __u16 height; - - __u8 horizontal_scale; - __u8 vertical_scale; - - __u8 version; - __u8 prob_skip_false; - __u8 prob_intra; - __u8 prob_last; - __u8 prob_gf; - __u8 num_dct_parts; - - __u32 first_part_size; - __u32 first_part_header_bits; - __u32 dct_part_sizes[8]; - - __u64 last_frame_ts; - __u64 golden_frame_ts; - __u64 alt_frame_ts; - - __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) - -#define V4L2_CID_COLORIMETRY_HDR10_CLL_INFO (V4L2_CID_COLORIMETRY_CLASS_BASE + 0) - -struct v4l2_ctrl_hdr10_cll_info { - __u16 max_content_light_level; - __u16 max_pic_average_light_level; -}; - -#define V4L2_CID_COLORIMETRY_HDR10_MASTERING_DISPLAY (V4L2_CID_COLORIMETRY_CLASS_BASE + 1) - -#define V4L2_HDR10_MASTERING_PRIMARIES_X_LOW 5 -#define V4L2_HDR10_MASTERING_PRIMARIES_X_HIGH 37000 -#define V4L2_HDR10_MASTERING_PRIMARIES_Y_LOW 5 -#define V4L2_HDR10_MASTERING_PRIMARIES_Y_HIGH 42000 -#define V4L2_HDR10_MASTERING_WHITE_POINT_X_LOW 5 -#define V4L2_HDR10_MASTERING_WHITE_POINT_X_HIGH 37000 -#define V4L2_HDR10_MASTERING_WHITE_POINT_Y_LOW 5 -#define V4L2_HDR10_MASTERING_WHITE_POINT_Y_HIGH 42000 -#define V4L2_HDR10_MASTERING_MAX_LUMA_LOW 50000 -#define V4L2_HDR10_MASTERING_MAX_LUMA_HIGH 100000000 -#define V4L2_HDR10_MASTERING_MIN_LUMA_LOW 1 -#define V4L2_HDR10_MASTERING_MIN_LUMA_HIGH 50000 - -struct v4l2_ctrl_hdr10_mastering_display { - __u16 display_primaries_x[3]; - __u16 display_primaries_y[3]; - __u16 white_point_x; - __u16 white_point_y; - __u32 max_display_mastering_luminance; - __u32 min_display_mastering_luminance; -}; - -/* Stateless VP9 controls */ - -#define V4L2_VP9_LOOP_FILTER_FLAG_DELTA_ENABLED 0x1 -#define V4L2_VP9_LOOP_FILTER_FLAG_DELTA_UPDATE 0x2 - -/** - * struct v4l2_vp9_loop_filter - VP9 loop filter parameters - * - * @ref_deltas: contains the adjustment needed for the filter level based on the - * chosen reference frame. If this syntax element is not present in the bitstream, - * users should pass its last value. - * @mode_deltas: contains the adjustment needed for the filter level based on the - * chosen mode. If this syntax element is not present in the bitstream, users should - * pass its last value. - * @level: indicates the loop filter strength. - * @sharpness: indicates the sharpness level. - * @flags: combination of V4L2_VP9_LOOP_FILTER_FLAG_{} flags. - * @reserved: padding field. Should be zeroed by applications. - * - * This structure contains all loop filter related parameters. See sections - * '7.2.8 Loop filter semantics' of the VP9 specification for more details. - */ -struct v4l2_vp9_loop_filter { - __s8 ref_deltas[4]; - __s8 mode_deltas[2]; - __u8 level; - __u8 sharpness; - __u8 flags; - __u8 reserved[7]; -}; - -/** - * struct v4l2_vp9_quantization - VP9 quantization parameters - * - * @base_q_idx: indicates the base frame qindex. - * @delta_q_y_dc: indicates the Y DC quantizer relative to base_q_idx. - * @delta_q_uv_dc: indicates the UV DC quantizer relative to base_q_idx. - * @delta_q_uv_ac: indicates the UV AC quantizer relative to base_q_idx. - * @reserved: padding field. Should be zeroed by applications. - * - * Encodes the quantization parameters. See section '7.2.9 Quantization params - * syntax' of the VP9 specification for more details. - */ -struct v4l2_vp9_quantization { - __u8 base_q_idx; - __s8 delta_q_y_dc; - __s8 delta_q_uv_dc; - __s8 delta_q_uv_ac; - __u8 reserved[4]; -}; - -#define V4L2_VP9_SEGMENTATION_FLAG_ENABLED 0x01 -#define V4L2_VP9_SEGMENTATION_FLAG_UPDATE_MAP 0x02 -#define V4L2_VP9_SEGMENTATION_FLAG_TEMPORAL_UPDATE 0x04 -#define V4L2_VP9_SEGMENTATION_FLAG_UPDATE_DATA 0x08 -#define V4L2_VP9_SEGMENTATION_FLAG_ABS_OR_DELTA_UPDATE 0x10 - -#define V4L2_VP9_SEG_LVL_ALT_Q 0 -#define V4L2_VP9_SEG_LVL_ALT_L 1 -#define V4L2_VP9_SEG_LVL_REF_FRAME 2 -#define V4L2_VP9_SEG_LVL_SKIP 3 -#define V4L2_VP9_SEG_LVL_MAX 4 - -#define V4L2_VP9_SEGMENT_FEATURE_ENABLED(id) (1 << (id)) -#define V4L2_VP9_SEGMENT_FEATURE_ENABLED_MASK 0xf - -/** - * struct v4l2_vp9_segmentation - VP9 segmentation parameters - * - * @feature_data: data attached to each feature. Data entry is only valid if - * the feature is enabled. The array shall be indexed with segment number as - * the first dimension (0..7) and one of V4L2_VP9_SEG_{} as the second dimension. - * @feature_enabled: bitmask defining which features are enabled in each segment. - * The value for each segment is a combination of V4L2_VP9_SEGMENT_FEATURE_ENABLED(id) - * values where id is one of V4L2_VP9_SEG_LVL_{}. - * @tree_probs: specifies the probability values to be used when decoding a - * Segment-ID. See '5.15. Segmentation map' section of the VP9 specification - * for more details. - * @pred_probs: specifies the probability values to be used when decoding a - * Predicted-Segment-ID. See '6.4.14. Get segment id syntax' section of :ref:`vp9` - * for more details. - * @flags: combination of V4L2_VP9_SEGMENTATION_FLAG_{} flags. - * @reserved: padding field. Should be zeroed by applications. - * - * Encodes the quantization parameters. See section '7.2.10 Segmentation params syntax' of - * the VP9 specification for more details. - */ -struct v4l2_vp9_segmentation { - __s16 feature_data[8][4]; - __u8 feature_enabled[8]; - __u8 tree_probs[7]; - __u8 pred_probs[3]; - __u8 flags; - __u8 reserved[5]; -}; - -#define V4L2_VP9_FRAME_FLAG_KEY_FRAME 0x001 -#define V4L2_VP9_FRAME_FLAG_SHOW_FRAME 0x002 -#define V4L2_VP9_FRAME_FLAG_ERROR_RESILIENT 0x004 -#define V4L2_VP9_FRAME_FLAG_INTRA_ONLY 0x008 -#define V4L2_VP9_FRAME_FLAG_ALLOW_HIGH_PREC_MV 0x010 -#define V4L2_VP9_FRAME_FLAG_REFRESH_FRAME_CTX 0x020 -#define V4L2_VP9_FRAME_FLAG_PARALLEL_DEC_MODE 0x040 -#define V4L2_VP9_FRAME_FLAG_X_SUBSAMPLING 0x080 -#define V4L2_VP9_FRAME_FLAG_Y_SUBSAMPLING 0x100 -#define V4L2_VP9_FRAME_FLAG_COLOR_RANGE_FULL_SWING 0x200 - -#define V4L2_VP9_SIGN_BIAS_LAST 0x1 -#define V4L2_VP9_SIGN_BIAS_GOLDEN 0x2 -#define V4L2_VP9_SIGN_BIAS_ALT 0x4 - -#define V4L2_VP9_RESET_FRAME_CTX_NONE 0 -#define V4L2_VP9_RESET_FRAME_CTX_SPEC 1 -#define V4L2_VP9_RESET_FRAME_CTX_ALL 2 - -#define V4L2_VP9_INTERP_FILTER_EIGHTTAP 0 -#define V4L2_VP9_INTERP_FILTER_EIGHTTAP_SMOOTH 1 -#define V4L2_VP9_INTERP_FILTER_EIGHTTAP_SHARP 2 -#define V4L2_VP9_INTERP_FILTER_BILINEAR 3 -#define V4L2_VP9_INTERP_FILTER_SWITCHABLE 4 - -#define V4L2_VP9_REFERENCE_MODE_SINGLE_REFERENCE 0 -#define V4L2_VP9_REFERENCE_MODE_COMPOUND_REFERENCE 1 -#define V4L2_VP9_REFERENCE_MODE_SELECT 2 - -#define V4L2_VP9_PROFILE_MAX 3 - -#define V4L2_CID_STATELESS_VP9_FRAME (V4L2_CID_CODEC_STATELESS_BASE + 300) -/** - * struct v4l2_ctrl_vp9_frame - VP9 frame decoding control - * - * @lf: loop filter parameters. See &v4l2_vp9_loop_filter for more details. - * @quant: quantization parameters. See &v4l2_vp9_quantization for more details. - * @seg: segmentation parameters. See &v4l2_vp9_segmentation for more details. - * @flags: combination of V4L2_VP9_FRAME_FLAG_{} flags. - * @compressed_header_size: compressed header size in bytes. - * @uncompressed_header_size: uncompressed header size in bytes. - * @frame_width_minus_1: add 1 to it and you'll get the frame width expressed in pixels. - * @frame_height_minus_1: add 1 to it and you'll get the frame height expressed in pixels. - * @render_width_minus_1: add 1 to it and you'll get the expected render width expressed in - * pixels. This is not used during the decoding process but might be used by HW scalers - * to prepare a frame that's ready for scanout. - * @render_height_minus_1: add 1 to it and you'll get the expected render height expressed in - * pixels. This is not used during the decoding process but might be used by HW scalers - * to prepare a frame that's ready for scanout. - * @last_frame_ts: "last" reference buffer timestamp. - * The timestamp refers to the timestamp field in struct v4l2_buffer. - * Use v4l2_timeval_to_ns() to convert the struct timeval to a __u64. - * @golden_frame_ts: "golden" reference buffer timestamp. - * The timestamp refers to the timestamp field in struct v4l2_buffer. - * Use v4l2_timeval_to_ns() to convert the struct timeval to a __u64. - * @alt_frame_ts: "alt" reference buffer timestamp. - * The timestamp refers to the timestamp field in struct v4l2_buffer. - * Use v4l2_timeval_to_ns() to convert the struct timeval to a __u64. - * @ref_frame_sign_bias: a bitfield specifying whether the sign bias is set for a given - * reference frame. Either of V4L2_VP9_SIGN_BIAS_{}. - * @reset_frame_context: specifies whether the frame context should be reset to default values. - * Either of V4L2_VP9_RESET_FRAME_CTX_{}. - * @frame_context_idx: frame context that should be used/updated. - * @profile: VP9 profile. Can be 0, 1, 2 or 3. - * @bit_depth: bits per components. Can be 8, 10 or 12. Note that not all profiles support - * 10 and/or 12 bits depths. - * @interpolation_filter: specifies the filter selection used for performing inter prediction. - * Set to one of V4L2_VP9_INTERP_FILTER_{}. - * @tile_cols_log2: specifies the base 2 logarithm of the width of each tile (where the width - * is measured in units of 8x8 blocks). Shall be less than or equal to 6. - * @tile_rows_log2: specifies the base 2 logarithm of the height of each tile (where the height - * is measured in units of 8x8 blocks). - * @reference_mode: specifies the type of inter prediction to be used. - * Set to one of V4L2_VP9_REFERENCE_MODE_{}. - * @reserved: padding field. Should be zeroed by applications. - */ -struct v4l2_ctrl_vp9_frame { - struct v4l2_vp9_loop_filter lf; - struct v4l2_vp9_quantization quant; - struct v4l2_vp9_segmentation seg; - __u32 flags; - __u16 compressed_header_size; - __u16 uncompressed_header_size; - __u16 frame_width_minus_1; - __u16 frame_height_minus_1; - __u16 render_width_minus_1; - __u16 render_height_minus_1; - __u64 last_frame_ts; - __u64 golden_frame_ts; - __u64 alt_frame_ts; - __u8 ref_frame_sign_bias; - __u8 reset_frame_context; - __u8 frame_context_idx; - __u8 profile; - __u8 bit_depth; - __u8 interpolation_filter; - __u8 tile_cols_log2; - __u8 tile_rows_log2; - __u8 reference_mode; - __u8 reserved[7]; -}; - -#define V4L2_VP9_NUM_FRAME_CTX 4 - -/** - * struct v4l2_vp9_mv_probs - VP9 Motion vector probability updates - * @joint: motion vector joint probability updates. - * @sign: motion vector sign probability updates. - * @classes: motion vector class probability updates. - * @class0_bit: motion vector class0 bit probability updates. - * @bits: motion vector bits probability updates. - * @class0_fr: motion vector class0 fractional bit probability updates. - * @fr: motion vector fractional bit probability updates. - * @class0_hp: motion vector class0 high precision fractional bit probability updates. - * @hp: motion vector high precision fractional bit probability updates. - * - * This structure contains new values of motion vector probabilities. - * A value of zero in an array element means there is no update of the relevant probability. - * See `struct v4l2_vp9_prob_updates` for details. - */ -struct v4l2_vp9_mv_probs { - __u8 joint[3]; - __u8 sign[2]; - __u8 classes[2][10]; - __u8 class0_bit[2]; - __u8 bits[2][10]; - __u8 class0_fr[2][2][3]; - __u8 fr[2][3]; - __u8 class0_hp[2]; - __u8 hp[2]; -}; - -#define V4L2_CID_STATELESS_VP9_COMPRESSED_HDR (V4L2_CID_CODEC_STATELESS_BASE + 301) - -#define V4L2_VP9_TX_MODE_ONLY_4X4 0 -#define V4L2_VP9_TX_MODE_ALLOW_8X8 1 -#define V4L2_VP9_TX_MODE_ALLOW_16X16 2 -#define V4L2_VP9_TX_MODE_ALLOW_32X32 3 -#define V4L2_VP9_TX_MODE_SELECT 4 - -/** - * struct v4l2_ctrl_vp9_compressed_hdr - VP9 probability updates control - * @tx_mode: specifies the TX mode. Set to one of V4L2_VP9_TX_MODE_{}. - * @tx8: TX 8x8 probability updates. - * @tx16: TX 16x16 probability updates. - * @tx32: TX 32x32 probability updates. - * @coef: coefficient probability updates. - * @skip: skip probability updates. - * @inter_mode: inter mode probability updates. - * @interp_filter: interpolation filter probability updates. - * @is_inter: is inter-block probability updates. - * @comp_mode: compound prediction mode probability updates. - * @single_ref: single ref probability updates. - * @comp_ref: compound ref probability updates. - * @y_mode: Y prediction mode probability updates. - * @uv_mode: UV prediction mode probability updates. - * @partition: partition probability updates. - * @mv: motion vector probability updates. - * - * This structure holds the probabilities update as parsed in the compressed - * header (Spec 6.3). These values represent the value of probability update after - * being translated with inv_map_table[] (see 6.3.5). A value of zero in an array element - * means that there is no update of the relevant probability. - * - * This control is optional and needs to be used when dealing with the hardware which is - * not capable of parsing the compressed header itself. Only drivers which need it will - * implement it. - */ -struct v4l2_ctrl_vp9_compressed_hdr { - __u8 tx_mode; - __u8 tx8[2][1]; - __u8 tx16[2][2]; - __u8 tx32[2][3]; - __u8 coef[4][2][2][6][6][3]; - __u8 skip[3]; - __u8 inter_mode[7][3]; - __u8 interp_filter[4][2]; - __u8 is_inter[4]; - __u8 comp_mode[5]; - __u8 single_ref[5][2]; - __u8 comp_ref[5]; - __u8 y_mode[4][9]; - __u8 uv_mode[10][9]; - __u8 partition[16][3]; - - struct v4l2_vp9_mv_probs mv; -}; - /* MPEG-compression definitions kept for backwards compatibility */ #ifndef __KERNEL__ #define V4L2_CTRL_CLASS_MPEG V4L2_CTRL_CLASS_CODEC diff --git a/original/uapi/linux/v4l2-subdev.h b/original/uapi/linux/v4l2-subdev.h index 658106f..a38454d 100644 --- a/original/uapi/linux/v4l2-subdev.h +++ b/original/uapi/linux/v4l2-subdev.h @@ -44,7 +44,6 @@ enum v4l2_subdev_format_whence { * @which: format type (from enum v4l2_subdev_format_whence) * @pad: pad number, as reported by the media API * @format: media bus format (format code and frame size) - * @reserved: drivers and applications must zero this array */ struct v4l2_subdev_format { __u32 which; @@ -58,7 +57,6 @@ struct v4l2_subdev_format { * @which: format type (from enum v4l2_subdev_format_whence) * @pad: pad number, as reported by the media API * @rect: pad crop rectangle boundaries - * @reserved: drivers and applications must zero this array */ struct v4l2_subdev_crop { __u32 which; @@ -80,7 +78,6 @@ struct v4l2_subdev_crop { * @code: format code (MEDIA_BUS_FMT_ definitions) * @which: format type (from enum v4l2_subdev_format_whence) * @flags: flags set by the driver, (V4L2_SUBDEV_MBUS_CODE_*) - * @reserved: drivers and applications must zero this array */ struct v4l2_subdev_mbus_code_enum { __u32 pad; @@ -93,15 +90,10 @@ struct v4l2_subdev_mbus_code_enum { /** * struct v4l2_subdev_frame_size_enum - Media bus format enumeration - * @index: format index during enumeration * @pad: pad number, as reported by the media API + * @index: format index during enumeration * @code: format code (MEDIA_BUS_FMT_ definitions) - * @min_width: minimum frame width, in pixels - * @max_width: maximum frame width, in pixels - * @min_height: minimum frame height, in pixels - * @max_height: maximum frame height, in pixels * @which: format type (from enum v4l2_subdev_format_whence) - * @reserved: drivers and applications must zero this array */ struct v4l2_subdev_frame_size_enum { __u32 index; @@ -119,7 +111,6 @@ struct v4l2_subdev_frame_size_enum { * struct v4l2_subdev_frame_interval - Pad-level frame rate * @pad: pad number, as reported by the media API * @interval: frame interval in seconds - * @reserved: drivers and applications must zero this array */ struct v4l2_subdev_frame_interval { __u32 pad; @@ -136,7 +127,6 @@ struct v4l2_subdev_frame_interval { * @height: frame height in pixels * @interval: frame interval in seconds * @which: format type (from enum v4l2_subdev_format_whence) - * @reserved: drivers and applications must zero this array */ struct v4l2_subdev_frame_interval_enum { __u32 index; diff --git a/original/uapi/linux/vdpa.h b/original/uapi/linux/vdpa.h index 1061d8d..66a41e4 100644 --- a/original/uapi/linux/vdpa.h +++ b/original/uapi/linux/vdpa.h @@ -17,15 +17,11 @@ enum vdpa_command { VDPA_CMD_DEV_NEW, VDPA_CMD_DEV_DEL, VDPA_CMD_DEV_GET, /* can dump */ - VDPA_CMD_DEV_CONFIG_GET, /* can dump */ }; enum vdpa_attr { VDPA_ATTR_UNSPEC, - /* Pad attribute for 64b alignment */ - VDPA_ATTR_PAD = VDPA_ATTR_UNSPEC, - /* bus name (optional) + dev name together make the parent device handle */ VDPA_ATTR_MGMTDEV_BUS_NAME, /* string */ VDPA_ATTR_MGMTDEV_DEV_NAME, /* string */ @@ -36,16 +32,7 @@ enum vdpa_attr { VDPA_ATTR_DEV_VENDOR_ID, /* u32 */ VDPA_ATTR_DEV_MAX_VQS, /* u32 */ VDPA_ATTR_DEV_MAX_VQ_SIZE, /* u16 */ - VDPA_ATTR_DEV_MIN_VQ_SIZE, /* u16 */ - - VDPA_ATTR_DEV_NET_CFG_MACADDR, /* binary */ - VDPA_ATTR_DEV_NET_STATUS, /* u8 */ - VDPA_ATTR_DEV_NET_CFG_MAX_VQP, /* u16 */ - VDPA_ATTR_DEV_NET_CFG_MTU, /* u16 */ - VDPA_ATTR_DEV_NEGOTIATED_FEATURES, /* u64 */ - VDPA_ATTR_DEV_MGMTDEV_MAX_VQS, /* u32 */ - VDPA_ATTR_DEV_SUPPORTED_FEATURES, /* u64 */ /* new attributes must be added above here */ VDPA_ATTR_MAX, }; diff --git a/original/uapi/linux/vduse.h b/original/uapi/linux/vduse.h deleted file mode 100644 index 7cfe1c1..0000000 --- a/original/uapi/linux/vduse.h +++ /dev/null @@ -1,306 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ -#ifndef _UAPI_VDUSE_H_ -#define _UAPI_VDUSE_H_ - -#include <linux/types.h> - -#define VDUSE_BASE 0x81 - -/* The ioctls for control device (/dev/vduse/control) */ - -#define VDUSE_API_VERSION 0 - -/* - * Get the version of VDUSE API that kernel supported (VDUSE_API_VERSION). - * This is used for future extension. - */ -#define VDUSE_GET_API_VERSION _IOR(VDUSE_BASE, 0x00, __u64) - -/* Set the version of VDUSE API that userspace supported. */ -#define VDUSE_SET_API_VERSION _IOW(VDUSE_BASE, 0x01, __u64) - -/** - * struct vduse_dev_config - basic configuration of a VDUSE device - * @name: VDUSE device name, needs to be NUL terminated - * @vendor_id: virtio vendor id - * @device_id: virtio device id - * @features: virtio features - * @vq_num: the number of virtqueues - * @vq_align: the allocation alignment of virtqueue's metadata - * @reserved: for future use, needs to be initialized to zero - * @config_size: the size of the configuration space - * @config: the buffer of the configuration space - * - * Structure used by VDUSE_CREATE_DEV ioctl to create VDUSE device. - */ -struct vduse_dev_config { -#define VDUSE_NAME_MAX 256 - char name[VDUSE_NAME_MAX]; - __u32 vendor_id; - __u32 device_id; - __u64 features; - __u32 vq_num; - __u32 vq_align; - __u32 reserved[13]; - __u32 config_size; - __u8 config[]; -}; - -/* Create a VDUSE device which is represented by a char device (/dev/vduse/$NAME) */ -#define VDUSE_CREATE_DEV _IOW(VDUSE_BASE, 0x02, struct vduse_dev_config) - -/* - * Destroy a VDUSE device. Make sure there are no more references - * to the char device (/dev/vduse/$NAME). - */ -#define VDUSE_DESTROY_DEV _IOW(VDUSE_BASE, 0x03, char[VDUSE_NAME_MAX]) - -/* The ioctls for VDUSE device (/dev/vduse/$NAME) */ - -/** - * struct vduse_iotlb_entry - entry of IOTLB to describe one IOVA region [start, last] - * @offset: the mmap offset on returned file descriptor - * @start: start of the IOVA region - * @last: last of the IOVA region - * @perm: access permission of the IOVA region - * - * Structure used by VDUSE_IOTLB_GET_FD ioctl to find an overlapped IOVA region. - */ -struct vduse_iotlb_entry { - __u64 offset; - __u64 start; - __u64 last; -#define VDUSE_ACCESS_RO 0x1 -#define VDUSE_ACCESS_WO 0x2 -#define VDUSE_ACCESS_RW 0x3 - __u8 perm; -}; - -/* - * Find the first IOVA region that overlaps with the range [start, last] - * and return the corresponding file descriptor. Return -EINVAL means the - * IOVA region doesn't exist. Caller should set start and last fields. - */ -#define VDUSE_IOTLB_GET_FD _IOWR(VDUSE_BASE, 0x10, struct vduse_iotlb_entry) - -/* - * Get the negotiated virtio features. It's a subset of the features in - * struct vduse_dev_config which can be accepted by virtio driver. It's - * only valid after FEATURES_OK status bit is set. - */ -#define VDUSE_DEV_GET_FEATURES _IOR(VDUSE_BASE, 0x11, __u64) - -/** - * struct vduse_config_data - data used to update configuration space - * @offset: the offset from the beginning of configuration space - * @length: the length to write to configuration space - * @buffer: the buffer used to write from - * - * Structure used by VDUSE_DEV_SET_CONFIG ioctl to update device - * configuration space. - */ -struct vduse_config_data { - __u32 offset; - __u32 length; - __u8 buffer[]; -}; - -/* Set device configuration space */ -#define VDUSE_DEV_SET_CONFIG _IOW(VDUSE_BASE, 0x12, struct vduse_config_data) - -/* - * Inject a config interrupt. It's usually used to notify virtio driver - * that device configuration space has changed. - */ -#define VDUSE_DEV_INJECT_CONFIG_IRQ _IO(VDUSE_BASE, 0x13) - -/** - * struct vduse_vq_config - basic configuration of a virtqueue - * @index: virtqueue index - * @max_size: the max size of virtqueue - * @reserved: for future use, needs to be initialized to zero - * - * Structure used by VDUSE_VQ_SETUP ioctl to setup a virtqueue. - */ -struct vduse_vq_config { - __u32 index; - __u16 max_size; - __u16 reserved[13]; -}; - -/* - * Setup the specified virtqueue. Make sure all virtqueues have been - * configured before the device is attached to vDPA bus. - */ -#define VDUSE_VQ_SETUP _IOW(VDUSE_BASE, 0x14, struct vduse_vq_config) - -/** - * struct vduse_vq_state_split - split virtqueue state - * @avail_index: available index - */ -struct vduse_vq_state_split { - __u16 avail_index; -}; - -/** - * struct vduse_vq_state_packed - packed virtqueue state - * @last_avail_counter: last driver ring wrap counter observed by device - * @last_avail_idx: device available index - * @last_used_counter: device ring wrap counter - * @last_used_idx: used index - */ -struct vduse_vq_state_packed { - __u16 last_avail_counter; - __u16 last_avail_idx; - __u16 last_used_counter; - __u16 last_used_idx; -}; - -/** - * struct vduse_vq_info - information of a virtqueue - * @index: virtqueue index - * @num: the size of virtqueue - * @desc_addr: address of desc area - * @driver_addr: address of driver area - * @device_addr: address of device area - * @split: split virtqueue state - * @packed: packed virtqueue state - * @ready: ready status of virtqueue - * - * Structure used by VDUSE_VQ_GET_INFO ioctl to get virtqueue's information. - */ -struct vduse_vq_info { - __u32 index; - __u32 num; - __u64 desc_addr; - __u64 driver_addr; - __u64 device_addr; - union { - struct vduse_vq_state_split split; - struct vduse_vq_state_packed packed; - }; - __u8 ready; -}; - -/* Get the specified virtqueue's information. Caller should set index field. */ -#define VDUSE_VQ_GET_INFO _IOWR(VDUSE_BASE, 0x15, struct vduse_vq_info) - -/** - * struct vduse_vq_eventfd - eventfd configuration for a virtqueue - * @index: virtqueue index - * @fd: eventfd, -1 means de-assigning the eventfd - * - * Structure used by VDUSE_VQ_SETUP_KICKFD ioctl to setup kick eventfd. - */ -struct vduse_vq_eventfd { - __u32 index; -#define VDUSE_EVENTFD_DEASSIGN -1 - int fd; -}; - -/* - * Setup kick eventfd for specified virtqueue. The kick eventfd is used - * by VDUSE kernel module to notify userspace to consume the avail vring. - */ -#define VDUSE_VQ_SETUP_KICKFD _IOW(VDUSE_BASE, 0x16, struct vduse_vq_eventfd) - -/* - * Inject an interrupt for specific virtqueue. It's used to notify virtio driver - * to consume the used vring. - */ -#define VDUSE_VQ_INJECT_IRQ _IOW(VDUSE_BASE, 0x17, __u32) - -/* The control messages definition for read(2)/write(2) on /dev/vduse/$NAME */ - -/** - * enum vduse_req_type - request type - * @VDUSE_GET_VQ_STATE: get the state for specified virtqueue from userspace - * @VDUSE_SET_STATUS: set the device status - * @VDUSE_UPDATE_IOTLB: Notify userspace to update the memory mapping for - * specified IOVA range via VDUSE_IOTLB_GET_FD ioctl - */ -enum vduse_req_type { - VDUSE_GET_VQ_STATE, - VDUSE_SET_STATUS, - VDUSE_UPDATE_IOTLB, -}; - -/** - * struct vduse_vq_state - virtqueue state - * @index: virtqueue index - * @split: split virtqueue state - * @packed: packed virtqueue state - */ -struct vduse_vq_state { - __u32 index; - union { - struct vduse_vq_state_split split; - struct vduse_vq_state_packed packed; - }; -}; - -/** - * struct vduse_dev_status - device status - * @status: device status - */ -struct vduse_dev_status { - __u8 status; -}; - -/** - * struct vduse_iova_range - IOVA range [start, last] - * @start: start of the IOVA range - * @last: last of the IOVA range - */ -struct vduse_iova_range { - __u64 start; - __u64 last; -}; - -/** - * struct vduse_dev_request - control request - * @type: request type - * @request_id: request id - * @reserved: for future use - * @vq_state: virtqueue state, only index field is available - * @s: device status - * @iova: IOVA range for updating - * @padding: padding - * - * Structure used by read(2) on /dev/vduse/$NAME. - */ -struct vduse_dev_request { - __u32 type; - __u32 request_id; - __u32 reserved[4]; - union { - struct vduse_vq_state vq_state; - struct vduse_dev_status s; - struct vduse_iova_range iova; - __u32 padding[32]; - }; -}; - -/** - * struct vduse_dev_response - response to control request - * @request_id: corresponding request id - * @result: the result of request - * @reserved: for future use, needs to be initialized to zero - * @vq_state: virtqueue state - * @padding: padding - * - * Structure used by write(2) on /dev/vduse/$NAME. - */ -struct vduse_dev_response { - __u32 request_id; -#define VDUSE_REQ_RESULT_OK 0x00 -#define VDUSE_REQ_RESULT_FAILED 0x01 - __u32 result; - __u32 reserved[4]; - union { - struct vduse_vq_state vq_state; - __u32 padding[32]; - }; -}; - -#endif /* _UAPI_VDUSE_H_ */ diff --git a/original/uapi/linux/version.h b/original/uapi/linux/version.h index fb68148..535b224 100644 --- a/original/uapi/linux/version.h +++ b/original/uapi/linux/version.h @@ -1,5 +1,5 @@ -#define LINUX_VERSION_CODE 332032 +#define LINUX_VERSION_CODE 330752 #define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + ((c) > 255 ? 255 : (c))) #define LINUX_VERSION_MAJOR 5 -#define LINUX_VERSION_PATCHLEVEL 17 +#define LINUX_VERSION_PATCHLEVEL 12 #define LINUX_VERSION_SUBLEVEL 0 diff --git a/original/uapi/linux/vfio.h b/original/uapi/linux/vfio.h index ef33ea0..8ce36c1 100644 --- a/original/uapi/linux/vfio.h +++ b/original/uapi/linux/vfio.h @@ -335,8 +335,6 @@ struct vfio_region_info_cap_type { /* 10de vendor PCI sub-types */ /* * NVIDIA GPU NVlink2 RAM is coherent RAM mapped onto the host address space. - * - * Deprecated, region no longer provided */ #define VFIO_REGION_SUBTYPE_NVIDIA_NVLINK2_RAM (1) @@ -344,8 +342,6 @@ struct vfio_region_info_cap_type { /* * IBM NPU NVlink2 ATSD (Address Translation Shootdown) register of NPU * to do TLB invalidation on a GPU. - * - * Deprecated, region no longer provided */ #define VFIO_REGION_SUBTYPE_IBM_NVLINK2_ATSD (1) @@ -645,8 +641,6 @@ struct vfio_device_migration_info { * Capability with compressed real address (aka SSA - small system address) * where GPU RAM is mapped on a system bus. Used by a GPU for DMA routing * and by the userspace to associate a NVLink bridge with a GPU. - * - * Deprecated, capability no longer provided */ #define VFIO_REGION_INFO_CAP_NVLINK2_SSATGT 4 @@ -661,8 +655,6 @@ struct vfio_region_info_cap_nvlink2_ssatgt { * property in the device tree. The value is fixed in the hardware * and failing to provide the correct value results in the link * not working with no indication from the driver why. - * - * Deprecated, capability no longer provided */ #define VFIO_REGION_INFO_CAP_NVLINK2_LNKSPD 5 diff --git a/original/uapi/linux/videodev2.h b/original/uapi/linux/videodev2.h index df8b9c4..3e44b6c 100644 --- a/original/uapi/linux/videodev2.h +++ b/original/uapi/linux/videodev2.h @@ -70,7 +70,7 @@ * Common stuff for both V4L1 and V4L2 * Moved from videodev.h */ -#define VIDEO_MAX_FRAME 32 +#define VIDEO_MAX_FRAME 64 #define VIDEO_MAX_PLANES 8 /* @@ -586,7 +586,6 @@ struct v4l2_pix_format { #define V4L2_PIX_FMT_YUV444 v4l2_fourcc('Y', '4', '4', '4') /* 16 xxxxyyyy uuuuvvvv */ #define V4L2_PIX_FMT_YUV555 v4l2_fourcc('Y', 'U', 'V', 'O') /* 16 YUV-5-5-5 */ #define V4L2_PIX_FMT_YUV565 v4l2_fourcc('Y', 'U', 'V', 'P') /* 16 YUV-5-6-5 */ -#define V4L2_PIX_FMT_YUV24 v4l2_fourcc('Y', 'U', 'V', '3') /* 24 YUV-8-8-8 */ #define V4L2_PIX_FMT_YUV32 v4l2_fourcc('Y', 'U', 'V', '4') /* 32 YUV-8-8-8-8 */ #define V4L2_PIX_FMT_AYUV32 v4l2_fourcc('A', 'Y', 'U', 'V') /* 32 AYUV-8-8-8-8 */ #define V4L2_PIX_FMT_XYUV32 v4l2_fourcc('X', 'Y', 'U', 'V') /* 32 XYUV-8-8-8-8 */ @@ -601,12 +600,15 @@ struct v4l2_pix_format { #define V4L2_PIX_FMT_NV61 v4l2_fourcc('N', 'V', '6', '1') /* 16 Y/CrCb 4:2:2 */ #define V4L2_PIX_FMT_NV24 v4l2_fourcc('N', 'V', '2', '4') /* 24 Y/CbCr 4:4:4 */ #define V4L2_PIX_FMT_NV42 v4l2_fourcc('N', 'V', '4', '2') /* 24 Y/CrCb 4:4:4 */ +#define V4L2_PIX_FMT_HM12 v4l2_fourcc('H', 'M', '1', '2') /* 8 YUV 4:2:0 16x16 macroblocks */ /* two non contiguous planes - one Y, one Cr + Cb interleaved */ #define V4L2_PIX_FMT_NV12M v4l2_fourcc('N', 'M', '1', '2') /* 12 Y/CbCr 4:2:0 */ #define V4L2_PIX_FMT_NV21M v4l2_fourcc('N', 'M', '2', '1') /* 21 Y/CrCb 4:2:0 */ #define V4L2_PIX_FMT_NV16M v4l2_fourcc('N', 'M', '1', '6') /* 16 Y/CbCr 4:2:2 */ #define V4L2_PIX_FMT_NV61M v4l2_fourcc('N', 'M', '6', '1') /* 16 Y/CrCb 4:2:2 */ +#define V4L2_PIX_FMT_NV12MT v4l2_fourcc('T', 'M', '1', '2') /* 12 Y/CbCr 4:2:0 64x32 macroblocks */ +#define V4L2_PIX_FMT_NV12MT_16X16 v4l2_fourcc('V', 'M', '1', '2') /* 12 Y/CbCr 4:2:0 16x16 macroblocks */ /* three planes - Y Cb, Cr */ #define V4L2_PIX_FMT_YUV410 v4l2_fourcc('Y', 'U', 'V', '9') /* 9 YUV 4:1:0 */ @@ -624,15 +626,6 @@ struct v4l2_pix_format { #define V4L2_PIX_FMT_YUV444M v4l2_fourcc('Y', 'M', '2', '4') /* 24 YUV444 planar */ #define V4L2_PIX_FMT_YVU444M v4l2_fourcc('Y', 'M', '4', '2') /* 24 YVU444 planar */ -/* Tiled YUV formats */ -#define V4L2_PIX_FMT_NV12_4L4 v4l2_fourcc('V', 'T', '1', '2') /* 12 Y/CbCr 4:2:0 4x4 tiles */ -#define V4L2_PIX_FMT_NV12_16L16 v4l2_fourcc('H', 'M', '1', '2') /* 12 Y/CbCr 4:2:0 16x16 tiles */ -#define V4L2_PIX_FMT_NV12_32L32 v4l2_fourcc('S', 'T', '1', '2') /* 12 Y/CbCr 4:2:0 32x32 tiles */ - -/* Tiled YUV formats, non contiguous planes */ -#define V4L2_PIX_FMT_NV12MT v4l2_fourcc('T', 'M', '1', '2') /* 12 Y/CbCr 4:2:0 64x32 tiles */ -#define V4L2_PIX_FMT_NV12MT_16X16 v4l2_fourcc('V', 'M', '1', '2') /* 12 Y/CbCr 4:2:0 16x16 tiles */ - /* Bayer formats - see http://www.siliconimaging.com/RGB%20Bayer.htm */ #define V4L2_PIX_FMT_SBGGR8 v4l2_fourcc('B', 'A', '8', '1') /* 8 BGBG.. GRGR.. */ #define V4L2_PIX_FMT_SGBRG8 v4l2_fourcc('G', 'B', 'R', 'G') /* 8 GBGB.. RGRG.. */ @@ -701,9 +694,7 @@ struct v4l2_pix_format { #define V4L2_PIX_FMT_VC1_ANNEX_G v4l2_fourcc('V', 'C', '1', 'G') /* SMPTE 421M Annex G compliant stream */ #define V4L2_PIX_FMT_VC1_ANNEX_L v4l2_fourcc('V', 'C', '1', 'L') /* SMPTE 421M Annex L compliant stream */ #define V4L2_PIX_FMT_VP8 v4l2_fourcc('V', 'P', '8', '0') /* VP8 */ -#define V4L2_PIX_FMT_VP8_FRAME v4l2_fourcc('V', 'P', '8', 'F') /* VP8 parsed frame */ #define V4L2_PIX_FMT_VP9 v4l2_fourcc('V', 'P', '9', '0') /* VP9 */ -#define V4L2_PIX_FMT_VP9_FRAME v4l2_fourcc('V', 'P', '9', 'F') /* VP9 parsed frame */ #define V4L2_PIX_FMT_HEVC v4l2_fourcc('H', 'E', 'V', 'C') /* HEVC aka H.265 */ #define V4L2_PIX_FMT_FWHT v4l2_fourcc('F', 'W', 'H', 'T') /* Fast Walsh Hadamard Transform (vicodec) */ #define V4L2_PIX_FMT_FWHT_STATELESS v4l2_fourcc('S', 'F', 'W', 'H') /* Stateless FWHT (vicodec) */ @@ -740,8 +731,8 @@ struct v4l2_pix_format { #define V4L2_PIX_FMT_Y12I v4l2_fourcc('Y', '1', '2', 'I') /* Greyscale 12-bit L/R interleaved */ #define V4L2_PIX_FMT_Z16 v4l2_fourcc('Z', '1', '6', ' ') /* Depth data 16-bit */ #define V4L2_PIX_FMT_MT21C v4l2_fourcc('M', 'T', '2', '1') /* Mediatek compressed block mode */ -#define V4L2_PIX_FMT_MM21 v4l2_fourcc('M', 'M', '2', '1') /* Mediatek 8-bit block mode, two non-contiguous planes */ #define V4L2_PIX_FMT_INZI v4l2_fourcc('I', 'N', 'Z', 'I') /* Intel Planar Greyscale 10-bit and Depth 16-bit */ +#define V4L2_PIX_FMT_SUNXI_TILED_NV12 v4l2_fourcc('S', 'T', '1', '2') /* Sunxi Tiled NV12 Format */ #define V4L2_PIX_FMT_CNF4 v4l2_fourcc('C', 'N', 'F', '4') /* Intel 4-bit packed depth confidence information */ #define V4L2_PIX_FMT_HI240 v4l2_fourcc('H', 'I', '2', '4') /* BTTV 8-bit dithered RGB */ @@ -960,12 +951,9 @@ struct v4l2_requestbuffers { __u32 type; /* enum v4l2_buf_type */ __u32 memory; /* enum v4l2_memory */ __u32 capabilities; - __u8 flags; - __u8 reserved[3]; + __u32 reserved[1]; }; -#define V4L2_MEMORY_FLAG_NON_COHERENT (1 << 0) - /* capabilities for struct v4l2_requestbuffers and v4l2_create_buffers */ #define V4L2_BUF_CAP_SUPPORTS_MMAP (1 << 0) #define V4L2_BUF_CAP_SUPPORTS_USERPTR (1 << 1) @@ -987,10 +975,8 @@ struct v4l2_requestbuffers { * pointing to this plane * @fd: when memory is V4L2_MEMORY_DMABUF, a userspace file * descriptor associated with this plane - * @m: union of @mem_offset, @userptr and @fd * @data_offset: offset in the plane to the start of data; usually 0, * unless there is a header in front of the data - * @reserved: drivers and applications must zero this array * * Multi-planar buffers consist of one or more planes, e.g. an YCbCr buffer * with two planes can have one plane for Y, and another for interleaved CbCr @@ -1032,14 +1018,10 @@ struct v4l2_plane { * a userspace file descriptor associated with this buffer * @planes: for multiplanar buffers; userspace pointer to the array of plane * info structs for this buffer - * @m: union of @offset, @userptr, @planes and @fd * @length: size in bytes of the buffer (NOT its payload) for single-plane * buffers (when type != *_MPLANE); number of elements in the * planes array for multi-plane buffers - * @reserved2: drivers and applications must zero this field * @request_fd: fd of the request that this buffer should use - * @reserved: for backwards compatibility with applications that do not know - * about @request_fd * * Contains data exchanged by application and driver using one of the Streaming * I/O methods. @@ -1077,7 +1059,7 @@ struct v4l2_buffer { #ifndef __KERNEL__ /** * v4l2_timeval_to_ns - Convert timeval to nanoseconds - * @tv: pointer to the timeval variable to be converted + * @ts: pointer to the timeval variable to be converted * * Returns the scalar nanosecond representation of the timeval * parameter. @@ -1138,7 +1120,6 @@ static inline __u64 v4l2_timeval_to_ns(const struct timeval *tv) * @flags: flags for newly created file, currently only O_CLOEXEC is * supported, refer to manual of open syscall for more details * @fd: file descriptor associated with DMABUF (set by driver) - * @reserved: drivers and applications must zero this array * * Contains data used for exporting a video buffer as DMABUF file descriptor. * The buffer is identified by a 'cookie' returned by VIDIOC_QUERYBUF @@ -1756,12 +1737,6 @@ struct v4l2_ext_control { struct v4l2_ctrl_h264_slice_params __user *p_h264_slice_params; 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; - struct v4l2_ctrl_vp9_compressed_hdr __user *p_vp9_compressed_hdr_probs; - struct v4l2_ctrl_vp9_frame __user *p_vp9_frame; void __user *ptr; }; } __attribute__ ((packed)); @@ -1809,9 +1784,6 @@ enum v4l2_ctrl_type { V4L2_CTRL_TYPE_U32 = 0x0102, V4L2_CTRL_TYPE_AREA = 0x0106, - V4L2_CTRL_TYPE_HDR10_CLL_INFO = 0x0110, - V4L2_CTRL_TYPE_HDR10_MASTERING_DISPLAY = 0x0111, - V4L2_CTRL_TYPE_H264_SPS = 0x0200, V4L2_CTRL_TYPE_H264_PPS = 0x0201, V4L2_CTRL_TYPE_H264_SCALING_MATRIX = 0x0202, @@ -1820,15 +1792,6 @@ enum v4l2_ctrl_type { V4L2_CTRL_TYPE_H264_PRED_WEIGHTS = 0x0205, 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, - - V4L2_CTRL_TYPE_VP9_COMPRESSED_HDR = 0x0260, - V4L2_CTRL_TYPE_VP9_FRAME = 0x0261, }; /* Used in the VIDIOC_QUERYCTRL ioctl for querying controls */ @@ -2266,7 +2229,6 @@ struct v4l2_mpeg_vbi_fmt_ivtv { * this plane will be used * @bytesperline: distance in bytes between the leftmost pixels in two * adjacent lines - * @reserved: drivers and applications must zero this array */ struct v4l2_plane_pix_format { __u32 sizeimage; @@ -2285,10 +2247,8 @@ struct v4l2_plane_pix_format { * @num_planes: number of planes for this format * @flags: format flags (V4L2_PIX_FMT_FLAG_*) * @ycbcr_enc: enum v4l2_ycbcr_encoding, Y'CbCr encoding - * @hsv_enc: enum v4l2_hsv_encoding, HSV encoding * @quantization: enum v4l2_quantization, colorspace quantization * @xfer_func: enum v4l2_xfer_func, colorspace transfer function - * @reserved: drivers and applications must zero this array */ struct v4l2_pix_format_mplane { __u32 width; @@ -2313,7 +2273,6 @@ struct v4l2_pix_format_mplane { * struct v4l2_sdr_format - SDR format definition * @pixelformat: little endian four character code (fourcc) * @buffersize: maximum size in bytes required for data - * @reserved: drivers and applications must zero this array */ struct v4l2_sdr_format { __u32 pixelformat; @@ -2340,8 +2299,6 @@ struct v4l2_meta_format { * @vbi: raw VBI capture or output parameters * @sliced: sliced VBI capture or output parameters * @raw_data: placeholder for future extensions and custom formats - * @fmt: union of @pix, @pix_mp, @win, @vbi, @sliced, @sdr, @meta - * and @raw_data */ struct v4l2_format { __u32 type; @@ -2514,9 +2471,6 @@ struct v4l2_dbg_chip_info { * @memory: enum v4l2_memory; buffer memory type * @format: frame format, for which buffers are requested * @capabilities: capabilities of this buffer type. - * @flags: additional buffer management attributes (ignored unless the - * queue has V4L2_BUF_CAP_SUPPORTS_MMAP_CACHE_HINTS capability - * and configured for MMAP streaming I/O). * @reserved: future extensions */ struct v4l2_create_buffers { @@ -2525,8 +2479,7 @@ struct v4l2_create_buffers { __u32 memory; struct v4l2_format format; __u32 capabilities; - __u32 flags; - __u32 reserved[6]; + __u32 reserved[7]; }; /* @@ -2634,10 +2587,4 @@ struct v4l2_create_buffers { #define BASE_VIDIOC_PRIVATE 192 /* 192-255 are private */ -/* Deprecated definitions kept for backwards compatibility */ -#ifndef __KERNEL__ -#define V4L2_PIX_FMT_HM12 V4L2_PIX_FMT_NV12_16L16 -#define V4L2_PIX_FMT_SUNXI_TILED_NV12 V4L2_PIX_FMT_NV12_32L32 -#endif - #endif /* _UAPI__LINUX_VIDEODEV2_H */ diff --git a/original/uapi/linux/virtio_bt.h b/original/uapi/linux/virtio_bt.h deleted file mode 100644 index a7bd48d..0000000 --- a/original/uapi/linux/virtio_bt.h +++ /dev/null @@ -1,31 +0,0 @@ -/* SPDX-License-Identifier: BSD-3-Clause */ - -#ifndef _UAPI_LINUX_VIRTIO_BT_H -#define _UAPI_LINUX_VIRTIO_BT_H - -#include <linux/virtio_types.h> - -/* Feature bits */ -#define VIRTIO_BT_F_VND_HCI 0 /* Indicates vendor command support */ -#define VIRTIO_BT_F_MSFT_EXT 1 /* Indicates MSFT vendor support */ -#define VIRTIO_BT_F_AOSP_EXT 2 /* Indicates AOSP vendor support */ - -enum virtio_bt_config_type { - VIRTIO_BT_CONFIG_TYPE_PRIMARY = 0, - VIRTIO_BT_CONFIG_TYPE_AMP = 1, -}; - -enum virtio_bt_config_vendor { - VIRTIO_BT_CONFIG_VENDOR_NONE = 0, - VIRTIO_BT_CONFIG_VENDOR_ZEPHYR = 1, - VIRTIO_BT_CONFIG_VENDOR_INTEL = 2, - VIRTIO_BT_CONFIG_VENDOR_REALTEK = 3, -}; - -struct virtio_bt_config { - __u8 type; - __u16 vendor; - __u16 msft_opcode; -} __attribute__((packed)); - -#endif /* _UAPI_LINUX_VIRTIO_BT_H */ diff --git a/original/uapi/linux/virtio_gpio.h b/original/uapi/linux/virtio_gpio.h deleted file mode 100644 index d4b29d9..0000000 --- a/original/uapi/linux/virtio_gpio.h +++ /dev/null @@ -1,72 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ - -#ifndef _LINUX_VIRTIO_GPIO_H -#define _LINUX_VIRTIO_GPIO_H - -#include <linux/types.h> - -/* Virtio GPIO Feature bits */ -#define VIRTIO_GPIO_F_IRQ 0 - -/* Virtio GPIO request types */ -#define VIRTIO_GPIO_MSG_GET_NAMES 0x0001 -#define VIRTIO_GPIO_MSG_GET_DIRECTION 0x0002 -#define VIRTIO_GPIO_MSG_SET_DIRECTION 0x0003 -#define VIRTIO_GPIO_MSG_GET_VALUE 0x0004 -#define VIRTIO_GPIO_MSG_SET_VALUE 0x0005 -#define VIRTIO_GPIO_MSG_IRQ_TYPE 0x0006 - -/* Possible values of the status field */ -#define VIRTIO_GPIO_STATUS_OK 0x0 -#define VIRTIO_GPIO_STATUS_ERR 0x1 - -/* Direction types */ -#define VIRTIO_GPIO_DIRECTION_NONE 0x00 -#define VIRTIO_GPIO_DIRECTION_OUT 0x01 -#define VIRTIO_GPIO_DIRECTION_IN 0x02 - -/* Virtio GPIO IRQ types */ -#define VIRTIO_GPIO_IRQ_TYPE_NONE 0x00 -#define VIRTIO_GPIO_IRQ_TYPE_EDGE_RISING 0x01 -#define VIRTIO_GPIO_IRQ_TYPE_EDGE_FALLING 0x02 -#define VIRTIO_GPIO_IRQ_TYPE_EDGE_BOTH 0x03 -#define VIRTIO_GPIO_IRQ_TYPE_LEVEL_HIGH 0x04 -#define VIRTIO_GPIO_IRQ_TYPE_LEVEL_LOW 0x08 - -struct virtio_gpio_config { - __le16 ngpio; - __u8 padding[2]; - __le32 gpio_names_size; -}; - -/* Virtio GPIO Request / Response */ -struct virtio_gpio_request { - __le16 type; - __le16 gpio; - __le32 value; -}; - -struct virtio_gpio_response { - __u8 status; - __u8 value; -}; - -struct virtio_gpio_response_get_names { - __u8 status; - __u8 value[]; -}; - -/* Virtio GPIO IRQ Request / Response */ -struct virtio_gpio_irq_request { - __le16 gpio; -}; - -struct virtio_gpio_irq_response { - __u8 status; -}; - -/* Possible values of the interrupt status field */ -#define VIRTIO_GPIO_IRQ_STATUS_INVALID 0x0 -#define VIRTIO_GPIO_IRQ_STATUS_VALID 0x1 - -#endif /* _LINUX_VIRTIO_GPIO_H */ diff --git a/original/uapi/linux/virtio_gpu.h b/original/uapi/linux/virtio_gpu.h index f556fde..97523a9 100644 --- a/original/uapi/linux/virtio_gpu.h +++ b/original/uapi/linux/virtio_gpu.h @@ -59,11 +59,6 @@ * VIRTIO_GPU_CMD_RESOURCE_CREATE_BLOB */ #define VIRTIO_GPU_F_RESOURCE_BLOB 3 -/* - * VIRTIO_GPU_CMD_CREATE_CONTEXT with - * context_init and multiple timelines - */ -#define VIRTIO_GPU_F_CONTEXT_INIT 4 enum virtio_gpu_ctrl_type { VIRTIO_GPU_UNDEFINED = 0, @@ -127,20 +122,14 @@ enum virtio_gpu_shm_id { VIRTIO_GPU_SHM_ID_HOST_VISIBLE = 1 }; -#define VIRTIO_GPU_FLAG_FENCE (1 << 0) -/* - * If the following flag is set, then ring_idx contains the index - * of the command ring that needs to used when creating the fence - */ -#define VIRTIO_GPU_FLAG_INFO_RING_IDX (1 << 1) +#define VIRTIO_GPU_FLAG_FENCE (1 << 0) struct virtio_gpu_ctrl_hdr { __le32 type; __le32 flags; __le64 fence_id; __le32 ctx_id; - __u8 ring_idx; - __u8 padding[3]; + __le32 padding; }; /* data passed in the cursor vq */ @@ -280,11 +269,10 @@ struct virtio_gpu_resource_create_3d { }; /* VIRTIO_GPU_CMD_CTX_CREATE */ -#define VIRTIO_GPU_CONTEXT_INIT_CAPSET_ID_MASK 0x000000ff struct virtio_gpu_ctx_create { struct virtio_gpu_ctrl_hdr hdr; __le32 nlen; - __le32 context_init; + __le32 padding; char debug_name[64]; }; diff --git a/original/uapi/linux/virtio_i2c.h b/original/uapi/linux/virtio_i2c.h deleted file mode 100644 index acf3b60..0000000 --- a/original/uapi/linux/virtio_i2c.h +++ /dev/null @@ -1,47 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0-or-later WITH Linux-syscall-note */ -/* - * Definitions for virtio I2C Adpter - * - * Copyright (c) 2021 Intel Corporation. All rights reserved. - */ - -#ifndef _UAPI_LINUX_VIRTIO_I2C_H -#define _UAPI_LINUX_VIRTIO_I2C_H - -#include <linux/const.h> -#include <linux/types.h> - -/* Virtio I2C Feature bits */ -#define VIRTIO_I2C_F_ZERO_LENGTH_REQUEST 0 - -/* The bit 0 of the @virtio_i2c_out_hdr.@flags, used to group the requests */ -#define VIRTIO_I2C_FLAGS_FAIL_NEXT _BITUL(0) - -/* The bit 1 of the @virtio_i2c_out_hdr.@flags, used to mark a buffer as read */ -#define VIRTIO_I2C_FLAGS_M_RD _BITUL(1) - -/** - * struct virtio_i2c_out_hdr - the virtio I2C message OUT header - * @addr: the controlled device address - * @padding: used to pad to full dword - * @flags: used for feature extensibility - */ -struct virtio_i2c_out_hdr { - __le16 addr; - __le16 padding; - __le32 flags; -}; - -/** - * struct virtio_i2c_in_hdr - the virtio I2C message IN header - * @status: the processing result from the backend - */ -struct virtio_i2c_in_hdr { - __u8 status; -}; - -/* The final status written by the device */ -#define VIRTIO_I2C_MSG_OK 0 -#define VIRTIO_I2C_MSG_ERR 1 - -#endif /* _UAPI_LINUX_VIRTIO_I2C_H */ diff --git a/original/uapi/linux/virtio_ids.h b/original/uapi/linux/virtio_ids.h index 80d76b7..bc1c062 100644 --- a/original/uapi/linux/virtio_ids.h +++ b/original/uapi/linux/virtio_ids.h @@ -51,34 +51,8 @@ #define VIRTIO_ID_PSTORE 22 /* virtio pstore device */ #define VIRTIO_ID_IOMMU 23 /* virtio IOMMU */ #define VIRTIO_ID_MEM 24 /* virtio mem */ -#define VIRTIO_ID_SOUND 25 /* virtio sound */ #define VIRTIO_ID_FS 26 /* virtio filesystem */ #define VIRTIO_ID_PMEM 27 /* virtio pmem */ -#define VIRTIO_ID_RPMB 28 /* virtio rpmb */ #define VIRTIO_ID_MAC80211_HWSIM 29 /* virtio mac80211-hwsim */ -#define VIRTIO_ID_VIDEO_ENCODER 30 /* virtio video encoder */ -#define VIRTIO_ID_VIDEO_DECODER 31 /* virtio video decoder */ -#define VIRTIO_ID_SCMI 32 /* virtio SCMI */ -#define VIRTIO_ID_NITRO_SEC_MOD 33 /* virtio nitro secure module*/ -#define VIRTIO_ID_I2C_ADAPTER 34 /* virtio i2c adapter */ -#define VIRTIO_ID_WATCHDOG 35 /* virtio watchdog */ -#define VIRTIO_ID_CAN 36 /* virtio can */ -#define VIRTIO_ID_DMABUF 37 /* virtio dmabuf */ -#define VIRTIO_ID_PARAM_SERV 38 /* virtio parameter server */ -#define VIRTIO_ID_AUDIO_POLICY 39 /* virtio audio policy */ -#define VIRTIO_ID_BT 40 /* virtio bluetooth */ -#define VIRTIO_ID_GPIO 41 /* virtio gpio */ - -/* - * 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 */ diff --git a/original/uapi/linux/virtio_iommu.h b/original/uapi/linux/virtio_iommu.h index 1ff357f..237e36a 100644 --- a/original/uapi/linux/virtio_iommu.h +++ b/original/uapi/linux/virtio_iommu.h @@ -16,7 +16,6 @@ #define VIRTIO_IOMMU_F_BYPASS 3 #define VIRTIO_IOMMU_F_PROBE 4 #define VIRTIO_IOMMU_F_MMIO 5 -#define VIRTIO_IOMMU_F_BYPASS_CONFIG 6 struct virtio_iommu_range_64 { __le64 start; @@ -37,8 +36,6 @@ struct virtio_iommu_config { struct virtio_iommu_range_32 domain_range; /* Probe buffer size */ __le32 probe_size; - __u8 bypass; - __u8 reserved[3]; }; /* Request types */ @@ -69,14 +66,11 @@ struct virtio_iommu_req_tail { __u8 reserved[3]; }; -#define VIRTIO_IOMMU_ATTACH_F_BYPASS (1 << 0) - struct virtio_iommu_req_attach { struct virtio_iommu_req_head head; __le32 domain; __le32 endpoint; - __le32 flags; - __u8 reserved[4]; + __u8 reserved[8]; struct virtio_iommu_req_tail tail; }; diff --git a/original/uapi/linux/virtio_mem.h b/original/uapi/linux/virtio_mem.h index e9122f1..70e01c6 100644 --- a/original/uapi/linux/virtio_mem.h +++ b/original/uapi/linux/virtio_mem.h @@ -68,10 +68,9 @@ * explicitly triggered (VIRTIO_MEM_REQ_UNPLUG). * * There are no guarantees what will happen if unplugged memory is - * read/written. In general, unplugged memory should not be touched, because - * the resulting action is undefined. There is one exception: without - * VIRTIO_MEM_F_UNPLUGGED_INACCESSIBLE, unplugged memory inside the usable - * region can be read, to simplify creation of memory dumps. + * read/written. Such memory should, in general, not be touched. E.g., + * even writing might succeed, but the values will simply be discarded at + * random points in time. * * It can happen that the device cannot process a request, because it is * busy. The device driver has to retry later. @@ -88,8 +87,6 @@ /* node_id is an ACPI PXM and is valid */ #define VIRTIO_MEM_F_ACPI_PXM 0 -/* unplugged memory must not be accessed */ -#define VIRTIO_MEM_F_UNPLUGGED_INACCESSIBLE 1 /* --- virtio-mem: guest -> host requests --- */ diff --git a/original/uapi/linux/virtio_pcidev.h b/original/uapi/linux/virtio_pcidev.h deleted file mode 100644 index 668b07c..0000000 --- a/original/uapi/linux/virtio_pcidev.h +++ /dev/null @@ -1,65 +0,0 @@ -/* 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_RESERVED: reserved to catch errors - * @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_MMIO_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_MMIO_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 */ diff --git a/original/uapi/linux/virtio_scmi.h b/original/uapi/linux/virtio_scmi.h deleted file mode 100644 index f8ddd04..0000000 --- a/original/uapi/linux/virtio_scmi.h +++ /dev/null @@ -1,24 +0,0 @@ -/* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) */ -/* - * Copyright (C) 2020-2021 OpenSynergy GmbH - * Copyright (C) 2021 ARM Ltd. - */ - -#ifndef _UAPI_LINUX_VIRTIO_SCMI_H -#define _UAPI_LINUX_VIRTIO_SCMI_H - -#include <linux/virtio_types.h> - -/* Device implements some SCMI notifications, or delayed responses. */ -#define VIRTIO_SCMI_F_P2A_CHANNELS 0 - -/* Device implements any SCMI statistics shared memory region */ -#define VIRTIO_SCMI_F_SHARED_MEMORY 1 - -/* Virtqueues */ - -#define VIRTIO_SCMI_VQ_TX 0 /* cmdq */ -#define VIRTIO_SCMI_VQ_RX 1 /* eventq */ -#define VIRTIO_SCMI_VQ_MAX_CNT 2 - -#endif /* _UAPI_LINUX_VIRTIO_SCMI_H */ diff --git a/original/uapi/linux/virtio_snd.h b/original/uapi/linux/virtio_snd.h deleted file mode 100644 index dfe4954..0000000 --- a/original/uapi/linux/virtio_snd.h +++ /dev/null @@ -1,334 +0,0 @@ -/* SPDX-License-Identifier: BSD-3-Clause */ -/* - * Copyright (C) 2021 OpenSynergy GmbH - */ -#ifndef VIRTIO_SND_IF_H -#define VIRTIO_SND_IF_H - -#include <linux/virtio_types.h> - -/******************************************************************************* - * CONFIGURATION SPACE - */ -struct virtio_snd_config { - /* # of available physical jacks */ - __le32 jacks; - /* # of available PCM streams */ - __le32 streams; - /* # of available channel maps */ - __le32 chmaps; -}; - -enum { - /* device virtqueue indexes */ - VIRTIO_SND_VQ_CONTROL = 0, - VIRTIO_SND_VQ_EVENT, - VIRTIO_SND_VQ_TX, - VIRTIO_SND_VQ_RX, - /* # of device virtqueues */ - VIRTIO_SND_VQ_MAX -}; - -/******************************************************************************* - * COMMON DEFINITIONS - */ - -/* supported dataflow directions */ -enum { - VIRTIO_SND_D_OUTPUT = 0, - VIRTIO_SND_D_INPUT -}; - -enum { - /* jack control request types */ - VIRTIO_SND_R_JACK_INFO = 1, - VIRTIO_SND_R_JACK_REMAP, - - /* PCM control request types */ - VIRTIO_SND_R_PCM_INFO = 0x0100, - VIRTIO_SND_R_PCM_SET_PARAMS, - VIRTIO_SND_R_PCM_PREPARE, - VIRTIO_SND_R_PCM_RELEASE, - VIRTIO_SND_R_PCM_START, - VIRTIO_SND_R_PCM_STOP, - - /* channel map control request types */ - VIRTIO_SND_R_CHMAP_INFO = 0x0200, - - /* jack event types */ - VIRTIO_SND_EVT_JACK_CONNECTED = 0x1000, - VIRTIO_SND_EVT_JACK_DISCONNECTED, - - /* PCM event types */ - VIRTIO_SND_EVT_PCM_PERIOD_ELAPSED = 0x1100, - VIRTIO_SND_EVT_PCM_XRUN, - - /* common status codes */ - VIRTIO_SND_S_OK = 0x8000, - VIRTIO_SND_S_BAD_MSG, - VIRTIO_SND_S_NOT_SUPP, - VIRTIO_SND_S_IO_ERR -}; - -/* common header */ -struct virtio_snd_hdr { - __le32 code; -}; - -/* event notification */ -struct virtio_snd_event { - /* VIRTIO_SND_EVT_XXX */ - struct virtio_snd_hdr hdr; - /* optional event data */ - __le32 data; -}; - -/* common control request to query an item information */ -struct virtio_snd_query_info { - /* VIRTIO_SND_R_XXX_INFO */ - struct virtio_snd_hdr hdr; - /* item start identifier */ - __le32 start_id; - /* item count to query */ - __le32 count; - /* item information size in bytes */ - __le32 size; -}; - -/* common item information header */ -struct virtio_snd_info { - /* function group node id (High Definition Audio Specification 7.1.2) */ - __le32 hda_fn_nid; -}; - -/******************************************************************************* - * JACK CONTROL MESSAGES - */ -struct virtio_snd_jack_hdr { - /* VIRTIO_SND_R_JACK_XXX */ - struct virtio_snd_hdr hdr; - /* 0 ... virtio_snd_config::jacks - 1 */ - __le32 jack_id; -}; - -/* supported jack features */ -enum { - VIRTIO_SND_JACK_F_REMAP = 0 -}; - -struct virtio_snd_jack_info { - /* common header */ - struct virtio_snd_info hdr; - /* supported feature bit map (1 << VIRTIO_SND_JACK_F_XXX) */ - __le32 features; - /* pin configuration (High Definition Audio Specification 7.3.3.31) */ - __le32 hda_reg_defconf; - /* pin capabilities (High Definition Audio Specification 7.3.4.9) */ - __le32 hda_reg_caps; - /* current jack connection status (0: disconnected, 1: connected) */ - __u8 connected; - - __u8 padding[7]; -}; - -/* jack remapping control request */ -struct virtio_snd_jack_remap { - /* .code = VIRTIO_SND_R_JACK_REMAP */ - struct virtio_snd_jack_hdr hdr; - /* selected association number */ - __le32 association; - /* selected sequence number */ - __le32 sequence; -}; - -/******************************************************************************* - * PCM CONTROL MESSAGES - */ -struct virtio_snd_pcm_hdr { - /* VIRTIO_SND_R_PCM_XXX */ - struct virtio_snd_hdr hdr; - /* 0 ... virtio_snd_config::streams - 1 */ - __le32 stream_id; -}; - -/* supported PCM stream features */ -enum { - VIRTIO_SND_PCM_F_SHMEM_HOST = 0, - VIRTIO_SND_PCM_F_SHMEM_GUEST, - VIRTIO_SND_PCM_F_MSG_POLLING, - VIRTIO_SND_PCM_F_EVT_SHMEM_PERIODS, - VIRTIO_SND_PCM_F_EVT_XRUNS -}; - -/* supported PCM sample formats */ -enum { - /* analog formats (width / physical width) */ - VIRTIO_SND_PCM_FMT_IMA_ADPCM = 0, /* 4 / 4 bits */ - VIRTIO_SND_PCM_FMT_MU_LAW, /* 8 / 8 bits */ - VIRTIO_SND_PCM_FMT_A_LAW, /* 8 / 8 bits */ - VIRTIO_SND_PCM_FMT_S8, /* 8 / 8 bits */ - VIRTIO_SND_PCM_FMT_U8, /* 8 / 8 bits */ - VIRTIO_SND_PCM_FMT_S16, /* 16 / 16 bits */ - VIRTIO_SND_PCM_FMT_U16, /* 16 / 16 bits */ - VIRTIO_SND_PCM_FMT_S18_3, /* 18 / 24 bits */ - VIRTIO_SND_PCM_FMT_U18_3, /* 18 / 24 bits */ - VIRTIO_SND_PCM_FMT_S20_3, /* 20 / 24 bits */ - VIRTIO_SND_PCM_FMT_U20_3, /* 20 / 24 bits */ - VIRTIO_SND_PCM_FMT_S24_3, /* 24 / 24 bits */ - VIRTIO_SND_PCM_FMT_U24_3, /* 24 / 24 bits */ - VIRTIO_SND_PCM_FMT_S20, /* 20 / 32 bits */ - VIRTIO_SND_PCM_FMT_U20, /* 20 / 32 bits */ - VIRTIO_SND_PCM_FMT_S24, /* 24 / 32 bits */ - VIRTIO_SND_PCM_FMT_U24, /* 24 / 32 bits */ - VIRTIO_SND_PCM_FMT_S32, /* 32 / 32 bits */ - VIRTIO_SND_PCM_FMT_U32, /* 32 / 32 bits */ - VIRTIO_SND_PCM_FMT_FLOAT, /* 32 / 32 bits */ - VIRTIO_SND_PCM_FMT_FLOAT64, /* 64 / 64 bits */ - /* digital formats (width / physical width) */ - VIRTIO_SND_PCM_FMT_DSD_U8, /* 8 / 8 bits */ - VIRTIO_SND_PCM_FMT_DSD_U16, /* 16 / 16 bits */ - VIRTIO_SND_PCM_FMT_DSD_U32, /* 32 / 32 bits */ - VIRTIO_SND_PCM_FMT_IEC958_SUBFRAME /* 32 / 32 bits */ -}; - -/* supported PCM frame rates */ -enum { - VIRTIO_SND_PCM_RATE_5512 = 0, - VIRTIO_SND_PCM_RATE_8000, - VIRTIO_SND_PCM_RATE_11025, - VIRTIO_SND_PCM_RATE_16000, - VIRTIO_SND_PCM_RATE_22050, - VIRTIO_SND_PCM_RATE_32000, - VIRTIO_SND_PCM_RATE_44100, - VIRTIO_SND_PCM_RATE_48000, - VIRTIO_SND_PCM_RATE_64000, - VIRTIO_SND_PCM_RATE_88200, - VIRTIO_SND_PCM_RATE_96000, - VIRTIO_SND_PCM_RATE_176400, - VIRTIO_SND_PCM_RATE_192000, - VIRTIO_SND_PCM_RATE_384000 -}; - -struct virtio_snd_pcm_info { - /* common header */ - struct virtio_snd_info hdr; - /* supported feature bit map (1 << VIRTIO_SND_PCM_F_XXX) */ - __le32 features; - /* supported sample format bit map (1 << VIRTIO_SND_PCM_FMT_XXX) */ - __le64 formats; - /* supported frame rate bit map (1 << VIRTIO_SND_PCM_RATE_XXX) */ - __le64 rates; - /* dataflow direction (VIRTIO_SND_D_XXX) */ - __u8 direction; - /* minimum # of supported channels */ - __u8 channels_min; - /* maximum # of supported channels */ - __u8 channels_max; - - __u8 padding[5]; -}; - -/* set PCM stream format */ -struct virtio_snd_pcm_set_params { - /* .code = VIRTIO_SND_R_PCM_SET_PARAMS */ - struct virtio_snd_pcm_hdr hdr; - /* size of the hardware buffer */ - __le32 buffer_bytes; - /* size of the hardware period */ - __le32 period_bytes; - /* selected feature bit map (1 << VIRTIO_SND_PCM_F_XXX) */ - __le32 features; - /* selected # of channels */ - __u8 channels; - /* selected sample format (VIRTIO_SND_PCM_FMT_XXX) */ - __u8 format; - /* selected frame rate (VIRTIO_SND_PCM_RATE_XXX) */ - __u8 rate; - - __u8 padding; -}; - -/******************************************************************************* - * PCM I/O MESSAGES - */ - -/* I/O request header */ -struct virtio_snd_pcm_xfer { - /* 0 ... virtio_snd_config::streams - 1 */ - __le32 stream_id; -}; - -/* I/O request status */ -struct virtio_snd_pcm_status { - /* VIRTIO_SND_S_XXX */ - __le32 status; - /* current device latency */ - __le32 latency_bytes; -}; - -/******************************************************************************* - * CHANNEL MAP CONTROL MESSAGES - */ -struct virtio_snd_chmap_hdr { - /* VIRTIO_SND_R_CHMAP_XXX */ - struct virtio_snd_hdr hdr; - /* 0 ... virtio_snd_config::chmaps - 1 */ - __le32 chmap_id; -}; - -/* standard channel position definition */ -enum { - VIRTIO_SND_CHMAP_NONE = 0, /* undefined */ - VIRTIO_SND_CHMAP_NA, /* silent */ - VIRTIO_SND_CHMAP_MONO, /* mono stream */ - VIRTIO_SND_CHMAP_FL, /* front left */ - VIRTIO_SND_CHMAP_FR, /* front right */ - VIRTIO_SND_CHMAP_RL, /* rear left */ - VIRTIO_SND_CHMAP_RR, /* rear right */ - VIRTIO_SND_CHMAP_FC, /* front center */ - VIRTIO_SND_CHMAP_LFE, /* low frequency (LFE) */ - VIRTIO_SND_CHMAP_SL, /* side left */ - VIRTIO_SND_CHMAP_SR, /* side right */ - VIRTIO_SND_CHMAP_RC, /* rear center */ - VIRTIO_SND_CHMAP_FLC, /* front left center */ - VIRTIO_SND_CHMAP_FRC, /* front right center */ - VIRTIO_SND_CHMAP_RLC, /* rear left center */ - VIRTIO_SND_CHMAP_RRC, /* rear right center */ - VIRTIO_SND_CHMAP_FLW, /* front left wide */ - VIRTIO_SND_CHMAP_FRW, /* front right wide */ - VIRTIO_SND_CHMAP_FLH, /* front left high */ - VIRTIO_SND_CHMAP_FCH, /* front center high */ - VIRTIO_SND_CHMAP_FRH, /* front right high */ - VIRTIO_SND_CHMAP_TC, /* top center */ - VIRTIO_SND_CHMAP_TFL, /* top front left */ - VIRTIO_SND_CHMAP_TFR, /* top front right */ - VIRTIO_SND_CHMAP_TFC, /* top front center */ - VIRTIO_SND_CHMAP_TRL, /* top rear left */ - VIRTIO_SND_CHMAP_TRR, /* top rear right */ - VIRTIO_SND_CHMAP_TRC, /* top rear center */ - VIRTIO_SND_CHMAP_TFLC, /* top front left center */ - VIRTIO_SND_CHMAP_TFRC, /* top front right center */ - VIRTIO_SND_CHMAP_TSL, /* top side left */ - VIRTIO_SND_CHMAP_TSR, /* top side right */ - VIRTIO_SND_CHMAP_LLFE, /* left LFE */ - VIRTIO_SND_CHMAP_RLFE, /* right LFE */ - VIRTIO_SND_CHMAP_BC, /* bottom center */ - VIRTIO_SND_CHMAP_BLC, /* bottom left center */ - VIRTIO_SND_CHMAP_BRC /* bottom right center */ -}; - -/* maximum possible number of channels */ -#define VIRTIO_SND_CHMAP_MAX_SIZE 18 - -struct virtio_snd_chmap_info { - /* common header */ - struct virtio_snd_info hdr; - /* dataflow direction (VIRTIO_SND_D_XXX) */ - __u8 direction; - /* # of valid channel position values */ - __u8 channels; - /* channel position values (VIRTIO_SND_CHMAP_XXX) */ - __u8 positions[VIRTIO_SND_CHMAP_MAX_SIZE]; -}; - -#endif /* VIRTIO_SND_IF_H */ diff --git a/original/uapi/linux/virtio_vsock.h b/original/uapi/linux/virtio_vsock.h index 6473883..1d57ed3 100644 --- a/original/uapi/linux/virtio_vsock.h +++ b/original/uapi/linux/virtio_vsock.h @@ -38,9 +38,6 @@ #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)); @@ -68,7 +65,6 @@ struct virtio_vsock_hdr { enum virtio_vsock_type { VIRTIO_VSOCK_TYPE_STREAM = 1, - VIRTIO_VSOCK_TYPE_SEQPACKET = 2, }; enum virtio_vsock_op { @@ -95,10 +91,4 @@ enum virtio_vsock_shutdown { VIRTIO_VSOCK_SHUTDOWN_SEND = 2, }; -/* VIRTIO_VSOCK_OP_RW flags values */ -enum virtio_vsock_rw { - VIRTIO_VSOCK_SEQ_EOM = 1, - VIRTIO_VSOCK_SEQ_EOR = 2, -}; - #endif /* _UAPI_LINUX_VIRTIO_VSOCK_H */ diff --git a/original/uapi/linux/vm_sockets.h b/original/uapi/linux/vm_sockets.h index c60ca33..46918a1 100644 --- a/original/uapi/linux/vm_sockets.h +++ b/original/uapi/linux/vm_sockets.h @@ -64,7 +64,7 @@ * timeout for a STREAM socket. */ -#define SO_VM_SOCKETS_CONNECT_TIMEOUT_OLD 6 +#define SO_VM_SOCKETS_CONNECT_TIMEOUT 6 /* Option name for using non-blocking send/receive. Use as the option name * for setsockopt(3) or getsockopt(3) to set or get the non-blocking @@ -81,17 +81,6 @@ #define SO_VM_SOCKETS_NONBLOCK_TXRX 7 -#define SO_VM_SOCKETS_CONNECT_TIMEOUT_NEW 8 - -#if !defined(__KERNEL__) -#if __BITS_PER_LONG == 64 || (defined(__x86_64__) && defined(__ILP32__)) -#define SO_VM_SOCKETS_CONNECT_TIMEOUT SO_VM_SOCKETS_CONNECT_TIMEOUT_OLD -#else -#define SO_VM_SOCKETS_CONNECT_TIMEOUT \ - (sizeof(time_t) == sizeof(__kernel_long_t) ? SO_VM_SOCKETS_CONNECT_TIMEOUT_OLD : SO_VM_SOCKETS_CONNECT_TIMEOUT_NEW) -#endif -#endif - /* The vSocket equivalent of INADDR_ANY. This works for the svm_cid field of * sockaddr_vm and indicates the context ID of the current endpoint. */ diff --git a/original/uapi/linux/wwan.h b/original/uapi/linux/wwan.h deleted file mode 100644 index 32a2720..0000000 --- a/original/uapi/linux/wwan.h +++ /dev/null @@ -1,16 +0,0 @@ -/* 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_ */ diff --git a/original/uapi/linux/xfrm.h b/original/uapi/linux/xfrm.h index 65e13a0..ffc6a53 100644 --- a/original/uapi/linux/xfrm.h +++ b/original/uapi/linux/xfrm.h @@ -215,11 +215,6 @@ enum { XFRM_MSG_MAPPING, #define XFRM_MSG_MAPPING XFRM_MSG_MAPPING - - XFRM_MSG_SETDEFAULT, -#define XFRM_MSG_SETDEFAULT XFRM_MSG_SETDEFAULT - XFRM_MSG_GETDEFAULT, -#define XFRM_MSG_GETDEFAULT XFRM_MSG_GETDEFAULT __XFRM_MSG_MAX }; #define XFRM_MSG_MAX (__XFRM_MSG_MAX - 1) @@ -313,7 +308,6 @@ enum xfrm_attr_type_t { XFRMA_SET_MARK, /* __u32 */ XFRMA_SET_MARK_MASK, /* __u32 */ XFRMA_IF_ID, /* __u32 */ - XFRMA_MTIMER_THRESH, /* __u32 in seconds for input SA */ __XFRMA_MAX #define XFRMA_OUTPUT_MARK XFRMA_SET_MARK /* Compatibility */ @@ -511,24 +505,9 @@ struct xfrm_user_offload { int ifindex; __u8 flags; }; -/* This flag was exposed without any kernel code that supporting it. - * Unfortunately, strongswan has the code that uses sets this flag, - * which makes impossible to reuse this bit. - * - * So leave it here to make sure that it won't be reused by mistake. - */ #define XFRM_OFFLOAD_IPV6 1 #define XFRM_OFFLOAD_INBOUND 2 -struct xfrm_userpolicy_default { -#define XFRM_USERPOLICY_UNSPEC 0 -#define XFRM_USERPOLICY_BLOCK 1 -#define XFRM_USERPOLICY_ACCEPT 2 - __u8 in; - __u8 fwd; - __u8 out; -}; - #ifndef __KERNEL__ /* backwards compatibility for userspace */ #define XFRMGRP_ACQUIRE 1 diff --git a/original/uapi/misc/habanalabs.h b/original/uapi/misc/habanalabs.h index 371dfc4..5a86b52 100644 --- a/original/uapi/misc/habanalabs.h +++ b/original/uapi/misc/habanalabs.h @@ -239,64 +239,11 @@ enum gaudi_engine_id { GAUDI_ENGINE_ID_SIZE }; -/* - * ASIC specific PLL index - * - * Used to retrieve in frequency info of different IPs via - * HL_INFO_PLL_FREQUENCY under HL_IOCTL_INFO IOCTL. The enums need to be - * used as an index in struct hl_pll_frequency_info - */ - -enum hl_goya_pll_index { - HL_GOYA_CPU_PLL = 0, - HL_GOYA_IC_PLL, - HL_GOYA_MC_PLL, - HL_GOYA_MME_PLL, - HL_GOYA_PCI_PLL, - HL_GOYA_EMMC_PLL, - HL_GOYA_TPC_PLL, - HL_GOYA_PLL_MAX -}; - -enum hl_gaudi_pll_index { - HL_GAUDI_CPU_PLL = 0, - HL_GAUDI_PCI_PLL, - HL_GAUDI_SRAM_PLL, - HL_GAUDI_HBM_PLL, - HL_GAUDI_NIC_PLL, - HL_GAUDI_DMA_PLL, - HL_GAUDI_MESH_PLL, - HL_GAUDI_MME_PLL, - HL_GAUDI_TPC_PLL, - HL_GAUDI_IF_PLL, - HL_GAUDI_PLL_MAX -}; - -/** - * enum hl_device_status - Device status information. - * @HL_DEVICE_STATUS_OPERATIONAL: Device is operational. - * @HL_DEVICE_STATUS_IN_RESET: Device is currently during reset. - * @HL_DEVICE_STATUS_MALFUNCTION: Device is unusable. - * @HL_DEVICE_STATUS_NEEDS_RESET: Device needs reset because auto reset was disabled. - * @HL_DEVICE_STATUS_IN_DEVICE_CREATION: Device is operational but its creation is still in - * progress. - * @HL_DEVICE_STATUS_LAST: Last status. - */ enum hl_device_status { HL_DEVICE_STATUS_OPERATIONAL, HL_DEVICE_STATUS_IN_RESET, HL_DEVICE_STATUS_MALFUNCTION, - HL_DEVICE_STATUS_NEEDS_RESET, - HL_DEVICE_STATUS_IN_DEVICE_CREATION, - HL_DEVICE_STATUS_LAST = HL_DEVICE_STATUS_IN_DEVICE_CREATION -}; - -enum hl_server_type { - HL_SERVER_TYPE_UNKNOWN = 0, - HL_SERVER_GAUDI_HLS1 = 1, - HL_SERVER_GAUDI_HLS1H = 2, - HL_SERVER_GAUDI_TYPE1 = 3, - HL_SERVER_GAUDI_TYPE2 = 4 + HL_DEVICE_STATUS_NEEDS_RESET }; /* Opcode for management ioctl @@ -333,18 +280,6 @@ enum hl_server_type { * HL_INFO_SYNC_MANAGER - Retrieve sync manager info per dcore * HL_INFO_TOTAL_ENERGY - Retrieve total energy consumption * HL_INFO_PLL_FREQUENCY - Retrieve PLL frequency - * HL_INFO_POWER - Retrieve power information - * HL_INFO_OPEN_STATS - Retrieve info regarding recent device open calls - * HL_INFO_DRAM_REPLACED_ROWS - Retrieve DRAM replaced rows info - * HL_INFO_DRAM_PENDING_ROWS - Retrieve DRAM pending rows num - * HL_INFO_LAST_ERR_OPEN_DEV_TIME - Retrieve timestamp of the last time the device was opened - * and CS timeout or razwi error occurred. - * HL_INFO_CS_TIMEOUT_EVENT - Retrieve CS timeout timestamp and its related CS sequence number. - * HL_INFO_RAZWI_EVENT - Retrieve parameters of razwi: - * Timestamp of razwi. - * The address which accessing it caused the razwi. - * Razwi initiator. - * Razwi cause, was it a page fault or MMU access error. */ #define HL_INFO_HW_IP_INFO 0 #define HL_INFO_HW_EVENTS 1 @@ -362,60 +297,21 @@ enum hl_server_type { #define HL_INFO_SYNC_MANAGER 14 #define HL_INFO_TOTAL_ENERGY 15 #define HL_INFO_PLL_FREQUENCY 16 -#define HL_INFO_POWER 17 -#define HL_INFO_OPEN_STATS 18 -#define HL_INFO_DRAM_REPLACED_ROWS 21 -#define HL_INFO_DRAM_PENDING_ROWS 22 -#define HL_INFO_LAST_ERR_OPEN_DEV_TIME 23 -#define HL_INFO_CS_TIMEOUT_EVENT 24 -#define HL_INFO_RAZWI_EVENT 25 - -#define HL_INFO_VERSION_MAX_LEN 128 + +#define HL_INFO_VERSION_MAX_LEN 128 #define HL_INFO_CARD_NAME_MAX_LEN 16 -/** - * struct hl_info_hw_ip_info - hardware information on various IPs in the ASIC - * @sram_base_address: The first SRAM physical base address that is free to be - * used by the user. - * @dram_base_address: The first DRAM virtual or physical base address that is - * free to be used by the user. - * @dram_size: The DRAM size that is available to the user. - * @sram_size: The SRAM size that is available to the user. - * @num_of_events: The number of events that can be received from the f/w. This - * is needed so the user can what is the size of the h/w events - * array he needs to pass to the kernel when he wants to fetch - * the event counters. - * @device_id: PCI device ID of the ASIC. - * @module_id: Module ID of the ASIC for mezzanine cards in servers - * (From OCP spec). - * @first_available_interrupt_id: The first available interrupt ID for the user - * to be used when it works with user interrupts. - * @server_type: Server type that the Gaudi ASIC is currently installed in. - * The value is according to enum hl_server_type - * @cpld_version: CPLD version on the board. - * @psoc_pci_pll_nr: PCI PLL NR value. Needed by the profiler in some ASICs. - * @psoc_pci_pll_nf: PCI PLL NF value. Needed by the profiler in some ASICs. - * @psoc_pci_pll_od: PCI PLL OD value. Needed by the profiler in some ASICs. - * @psoc_pci_pll_div_factor: PCI PLL DIV factor value. Needed by the profiler - * in some ASICs. - * @tpc_enabled_mask: Bit-mask that represents which TPCs are enabled. Relevant - * for Goya/Gaudi only. - * @dram_enabled: Whether the DRAM is enabled. - * @cpucp_version: The CPUCP f/w version. - * @card_name: The card name as passed by the f/w. - * @dram_page_size: The DRAM physical page size. - */ struct hl_info_hw_ip_info { __u64 sram_base_address; __u64 dram_base_address; __u64 dram_size; __u32 sram_size; __u32 num_of_events; - __u32 device_id; - __u32 module_id; + __u32 device_id; /* PCI Device ID */ + __u32 module_id; /* For mezzanine cards in servers (From OCP spec.) */ __u32 reserved; __u16 first_available_interrupt_id; - __u16 server_type; + __u16 reserved2; __u32 cpld_version; __u32 psoc_pci_pll_nr; __u32 psoc_pci_pll_nf; @@ -426,7 +322,7 @@ struct hl_info_hw_ip_info { __u8 pad[2]; __u8 cpucp_version[HL_INFO_VERSION_MAX_LEN]; __u8 card_name[HL_INFO_CARD_NAME_MAX_LEN]; - __u64 reserved2; + __u64 reserved3; __u64 dram_page_size; }; @@ -489,27 +385,15 @@ struct hl_info_pci_counters { __u64 replay_cnt; }; -enum hl_clk_throttling_type { - HL_CLK_THROTTLE_TYPE_POWER, - HL_CLK_THROTTLE_TYPE_THERMAL, - HL_CLK_THROTTLE_TYPE_MAX -}; - -/* clk_throttling_reason masks */ -#define HL_CLK_THROTTLE_POWER (1 << HL_CLK_THROTTLE_TYPE_POWER) -#define HL_CLK_THROTTLE_THERMAL (1 << HL_CLK_THROTTLE_TYPE_THERMAL) +#define HL_CLK_THROTTLE_POWER 0x1 +#define HL_CLK_THROTTLE_THERMAL 0x2 /** * struct hl_info_clk_throttle - clock throttling reason * @clk_throttling_reason: each bit represents a clk throttling reason - * @clk_throttling_timestamp_us: represents CPU timestamp in microseconds of the start-event - * @clk_throttling_duration_ns: the clock throttle time in nanosec */ struct hl_info_clk_throttle { __u32 clk_throttling_reason; - __u32 pad; - __u64 clk_throttling_timestamp_us[HL_CLK_THROTTLE_TYPE_MAX]; - __u64 clk_throttling_duration_ns[HL_CLK_THROTTLE_TYPE_MAX]; }; /** @@ -527,24 +411,6 @@ struct hl_pll_frequency_info { }; /** - * struct hl_open_stats_info - device open statistics information - * @open_counter: ever growing counter, increased on each successful dev open - * @last_open_period_ms: duration (ms) device was open last time - */ -struct hl_open_stats_info { - __u64 open_counter; - __u64 last_open_period_ms; -}; - -/** - * struct hl_power_info - power information - * @power: power consumption - */ -struct hl_power_info { - __u64 power; -}; - -/** * struct hl_info_sync_manager - sync manager information * @first_available_sync_object: first available sob * @first_available_monitor: first available monitor @@ -587,51 +453,6 @@ struct hl_info_cs_counters { __u64 ctx_validation_drop_cnt; }; -/** - * struct hl_info_last_err_open_dev_time - last error boot information. - * @timestamp: timestamp of last time the device was opened and error occurred. - */ -struct hl_info_last_err_open_dev_time { - __s64 timestamp; -}; - -/** - * struct hl_info_cs_timeout_event - last CS timeout information. - * @timestamp: timestamp when last CS timeout event occurred. - * @seq: sequence number of last CS timeout event. - */ -struct hl_info_cs_timeout_event { - __s64 timestamp; - __u64 seq; -}; - -#define HL_RAZWI_PAGE_FAULT 0 -#define HL_RAZWI_MMU_ACCESS_ERROR 1 - -/** - * struct hl_info_razwi_event - razwi information. - * @timestamp: timestamp of razwi. - * @addr: address which accessing it caused razwi. - * @engine_id_1: engine id of the razwi initiator, if it was initiated by engine that does not - * have engine id it will be set to U16_MAX. - * @engine_id_2: second engine id of razwi initiator. Might happen that razwi have 2 possible - * engines which one them caused the razwi. In that case, it will contain the - * second possible engine id, otherwise it will be set to U16_MAX. - * @no_engine_id: if razwi initiator does not have engine id, this field will be set to 1, - * otherwise 0. - * @error_type: cause of razwi, page fault or access error, otherwise it will be set to U8_MAX. - * @pad: padding to 64 bit. - */ -struct hl_info_razwi_event { - __s64 timestamp; - __u64 addr; - __u16 engine_id_1; - __u16 engine_id_2; - __u8 no_engine_id; - __u8 error_type; - __u8 pad[2]; -}; - enum gaudi_dcores { HL_GAUDI_WS_DCORE, HL_GAUDI_WN_DCORE, @@ -639,30 +460,33 @@ enum gaudi_dcores { HL_GAUDI_ES_DCORE }; -/** - * struct hl_info_args - Main structure to retrieve device related information. - * @return_pointer: User space address of the relevant structure related to HL_INFO_* operation - * mentioned in @op. - * @return_size: Size of the structure used in @return_pointer, just like "size" in "snprintf", it - * limits how many bytes the kernel can write. For hw_events array, the size should be - * hl_info_hw_ip_info.num_of_events * sizeof(__u32). - * @op: Defines which type of information to be retrieved. Refer HL_INFO_* for details. - * @dcore_id: DCORE id for which the information is relevant (for Gaudi refer to enum gaudi_dcores). - * @ctx_id: Context ID of the user. Currently not in use. - * @period_ms: Period value, in milliseconds, for utilization rate in range 100ms - 1000ms in 100 ms - * resolution. Currently not in use. - * @pll_index: Index as defined in hl_<asic type>_pll_index enumeration. - * @pad: Padding to 64 bit. - */ struct hl_info_args { + /* Location of relevant struct in userspace */ __u64 return_pointer; + /* + * The size of the return value. Just like "size" in "snprintf", + * it limits how many bytes the kernel can write + * + * For hw_events array, the size should be + * hl_info_hw_ip_info.num_of_events * sizeof(__u32) + */ __u32 return_size; + + /* HL_INFO_* */ __u32 op; union { + /* Dcore id for which the information is relevant. + * For Gaudi refer to 'enum gaudi_dcores' + */ __u32 dcore_id; + /* Context ID - Currently not in use */ __u32 ctx_id; + /* Period value for utilization rate (100ms - 1000ms, in 100ms + * resolution. + */ __u32 period_ms; + /* PLL frequency retrieval */ __u32 pll_index; }; @@ -680,10 +504,7 @@ struct hl_info_args { #define HL_MAX_CB_SIZE (0x200000 - 32) /* Indicates whether the command buffer should be mapped to the device's MMU */ -#define HL_CB_FLAGS_MAP 0x1 - -/* Used with HL_CB_OP_INFO opcode to get the device va address for kernel mapped CB */ -#define HL_CB_FLAGS_GET_DEVICE_VA 0x2 +#define HL_CB_FLAGS_MAP 0x1 struct hl_cb_in { /* Handle of CB or 0 if we want to create one */ @@ -705,16 +526,11 @@ struct hl_cb_out { /* Handle of CB */ __u64 cb_handle; - union { - /* Information about CB */ - struct { - /* Usage count of CB */ - __u32 usage_cnt; - __u32 pad; - }; - - /* CB mapped address to device MMU */ - __u64 device_va; + /* Information about CB */ + struct { + /* Usage count of CB */ + __u32 usage_cnt; + __u32 pad; }; }; }; @@ -758,21 +574,12 @@ struct hl_cs_chunk { __u64 cb_handle; /* Relevant only when HL_CS_FLAGS_WAIT or - * HL_CS_FLAGS_COLLECTIVE_WAIT is set + * HL_CS_FLAGS_COLLECTIVE_WAIT is set. * This holds address of array of u64 values that contain - * signal CS sequence numbers. The wait described by - * this job will listen on all those signals - * (wait event per signal) + * signal CS sequence numbers. The wait described by this job + * will listen on all those signals (wait event per signal) */ __u64 signal_seq_arr; - - /* - * Relevant only when HL_CS_FLAGS_WAIT or - * HL_CS_FLAGS_COLLECTIVE_WAIT is set - * along with HL_CS_FLAGS_ENCAP_SIGNALS. - * This is the CS sequence which has the encapsulated signals. - */ - __u64 encaps_signal_seq; }; /* Index of queue to put the CB on */ @@ -790,17 +597,6 @@ struct hl_cs_chunk { * Number of entries in signal_seq_arr */ __u32 num_signal_seq_arr; - - /* Relevant only when HL_CS_FLAGS_WAIT or - * HL_CS_FLAGS_COLLECTIVE_WAIT is set along - * with HL_CS_FLAGS_ENCAP_SIGNALS - * This set the signals range that the user want to wait for - * out of the whole reserved signals range. - * e.g if the signals range is 20, and user don't want - * to wait for signal 8, so he set this offset to 7, then - * he call the API again with 9 and so on till 20. - */ - __u32 encaps_signal_offset; }; /* HL_CS_CHUNK_FLAGS_* */ @@ -825,30 +621,6 @@ struct hl_cs_chunk { #define HL_CS_FLAGS_STAGED_SUBMISSION 0x40 #define HL_CS_FLAGS_STAGED_SUBMISSION_FIRST 0x80 #define HL_CS_FLAGS_STAGED_SUBMISSION_LAST 0x100 -#define HL_CS_FLAGS_CUSTOM_TIMEOUT 0x200 -#define HL_CS_FLAGS_SKIP_RESET_ON_TIMEOUT 0x400 - -/* - * The encapsulated signals CS is merged into the existing CS ioctls. - * In order to use this feature need to follow the below procedure: - * 1. Reserve signals, set the CS type to HL_CS_FLAGS_RESERVE_SIGNALS_ONLY - * the output of this API will be the SOB offset from CFG_BASE. - * this address will be used to patch CB cmds to do the signaling for this - * SOB by incrementing it's value. - * for reverting the reservation use HL_CS_FLAGS_UNRESERVE_SIGNALS_ONLY - * CS type, note that this might fail if out-of-sync happened to the SOB - * value, in case other signaling request to the same SOB occurred between - * reserve-unreserve calls. - * 2. Use the staged CS to do the encapsulated signaling jobs. - * use HL_CS_FLAGS_STAGED_SUBMISSION and HL_CS_FLAGS_STAGED_SUBMISSION_FIRST - * along with HL_CS_FLAGS_ENCAP_SIGNALS flag, and set encaps_signal_offset - * field. This offset allows app to wait on part of the reserved signals. - * 3. Use WAIT/COLLECTIVE WAIT CS along with HL_CS_FLAGS_ENCAP_SIGNALS flag - * to wait for the encapsulated signals. - */ -#define HL_CS_FLAGS_ENCAP_SIGNALS 0x800 -#define HL_CS_FLAGS_RESERVE_SIGNALS_ONLY 0x1000 -#define HL_CS_FLAGS_UNRESERVE_SIGNALS_ONLY 0x2000 #define HL_CS_STATUS_SUCCESS 0 @@ -863,33 +635,15 @@ struct hl_cs_in { __u64 chunks_execute; union { - /* - * Sequence number of a staged submission CS - * valid only if HL_CS_FLAGS_STAGED_SUBMISSION is set and - * HL_CS_FLAGS_STAGED_SUBMISSION_FIRST is unset. + /* this holds address of array of hl_cs_chunk for store phase - + * Currently not in use */ - __u64 seq; + __u64 chunks_store; - /* - * Encapsulated signals handle id - * Valid for two flows: - * 1. CS with encapsulated signals: - * when HL_CS_FLAGS_STAGED_SUBMISSION and - * HL_CS_FLAGS_STAGED_SUBMISSION_FIRST - * and HL_CS_FLAGS_ENCAP_SIGNALS are set. - * 2. unreserve signals: - * valid when HL_CS_FLAGS_UNRESERVE_SIGNALS_ONLY is set. + /* Sequence number of a staged submission CS + * valid only if HL_CS_FLAGS_STAGED_SUBMISSION is set */ - __u32 encaps_sig_handle_id; - - /* Valid only when HL_CS_FLAGS_RESERVE_SIGNALS_ONLY is set */ - struct { - /* Encapsulated signals number */ - __u32 encaps_signals_count; - - /* Encapsulated signals queue index (stream) */ - __u32 encaps_signals_q_idx; - }; + __u64 seq; }; /* Number of chunks in restore phase array. Maximum number is @@ -902,10 +656,8 @@ struct hl_cs_in { */ __u32 num_chunks_execute; - /* timeout in seconds - valid only if HL_CS_FLAGS_CUSTOM_TIMEOUT - * is set - */ - __u32 timeout; + /* Number of chunks in restore phase array - Currently not in use */ + __u32 num_chunks_store; /* HL_CS_FLAGS_* */ __u32 cs_flags; @@ -915,39 +667,14 @@ struct hl_cs_in { }; struct hl_cs_out { - union { - /* - * seq holds the sequence number of the CS to pass to wait - * ioctl. All values are valid except for 0 and ULLONG_MAX - */ - __u64 seq; - - /* Valid only when HL_CS_FLAGS_RESERVE_SIGNALS_ONLY is set */ - struct { - /* This is the resereved signal handle id */ - __u32 handle_id; - - /* This is the signals count */ - __u32 count; - }; - }; - - /* HL_CS_STATUS */ - __u32 status; - - /* - * SOB base address offset - * Valid only when HL_CS_FLAGS_RESERVE_SIGNALS_ONLY or HL_CS_FLAGS_SIGNAL is set - */ - __u32 sob_base_addr_offset; - /* - * Count of completed signals in SOB before current signal submission. - * Valid only when (HL_CS_FLAGS_ENCAP_SIGNALS & HL_CS_FLAGS_STAGED_SUBMISSION) - * or HL_CS_FLAGS_SIGNAL is set + * seq holds the sequence number of the CS to pass to wait ioctl. All + * values are valid except for 0 and ULLONG_MAX */ - __u16 sob_count_before_submission; - __u16 pad[3]; + __u64 seq; + /* HL_CS_STATUS_* */ + __u32 status; + __u32 pad; }; union hl_cs_args { @@ -955,88 +682,21 @@ union hl_cs_args { struct hl_cs_out out; }; -#define HL_WAIT_CS_FLAGS_INTERRUPT 0x2 -#define HL_WAIT_CS_FLAGS_INTERRUPT_MASK 0xFFF00000 -#define HL_WAIT_CS_FLAGS_MULTI_CS 0x4 -#define HL_WAIT_CS_FLAGS_INTERRUPT_KERNEL_CQ 0x10 - -#define HL_WAIT_MULTI_CS_LIST_MAX_LEN 32 - struct hl_wait_cs_in { - union { - struct { - /* - * In case of wait_cs holds the CS sequence number. - * In case of wait for multi CS hold a user pointer to - * an array of CS sequence numbers - */ - __u64 seq; - /* Absolute timeout to wait for command submission - * in microseconds - */ - __u64 timeout_us; - }; - - struct { - union { - /* User address for completion comparison. - * upon interrupt, driver will compare the value pointed - * by this address with the supplied target value. - * in order not to perform any comparison, set address - * to all 1s. - * Relevant only when HL_WAIT_CS_FLAGS_INTERRUPT is set - */ - __u64 addr; - - /* cq_counters_handle to a kernel mapped cb which contains - * cq counters. - * Relevant only when HL_WAIT_CS_FLAGS_INTERRUPT_KERNEL_CQ is set - */ - __u64 cq_counters_handle; - }; - - /* Target value for completion comparison */ - __u64 target; - }; - }; - + /* Command submission sequence number */ + __u64 seq; + /* Absolute timeout to wait in microseconds */ + __u64 timeout_us; /* Context ID - Currently not in use */ __u32 ctx_id; - - /* HL_WAIT_CS_FLAGS_* - * If HL_WAIT_CS_FLAGS_INTERRUPT is set, this field should include - * interrupt id according to HL_WAIT_CS_FLAGS_INTERRUPT_MASK, in order - * not to specify an interrupt id ,set mask to all 1s. - */ - __u32 flags; - - union { - struct { - /* Multi CS API info- valid entries in multi-CS array */ - __u8 seq_arr_len; - __u8 pad[7]; - }; - - /* Absolute timeout to wait for an interrupt in microseconds. - * Relevant only when HL_WAIT_CS_FLAGS_INTERRUPT is set - */ - __u64 interrupt_timeout_us; - }; - - /* - * cq counter offset inside the counters cb pointed by cq_counters_handle above. - * upon interrupt, driver will compare the value pointed - * by this address (cq_counters_handle + cq_counters_offset) - * with the supplied target value. - * relevant only when HL_WAIT_CS_FLAGS_INTERRUPT_KERNEL_CQ is set - */ - __u64 cq_counters_offset; + __u32 pad; }; #define HL_WAIT_CS_STATUS_COMPLETED 0 #define HL_WAIT_CS_STATUS_BUSY 1 #define HL_WAIT_CS_STATUS_TIMEDOUT 2 #define HL_WAIT_CS_STATUS_ABORTED 3 +#define HL_WAIT_CS_STATUS_INTERRUPTED 4 #define HL_WAIT_CS_STATUS_FLAG_GONE 0x1 #define HL_WAIT_CS_STATUS_FLAG_TIMESTAMP_VLD 0x2 @@ -1046,15 +706,8 @@ struct hl_wait_cs_out { __u32 status; /* HL_WAIT_CS_STATUS_FLAG* */ __u32 flags; - /* - * valid only if HL_WAIT_CS_STATUS_FLAG_TIMESTAMP_VLD is set - * for wait_cs: timestamp of CS completion - * for wait_multi_cs: timestamp of FIRST CS completion - */ + /* valid only if HL_WAIT_CS_STATUS_FLAG_TIMESTAMP_VLD is set */ __s64 timestamp_nsec; - /* multi CS completion bitmap */ - __u32 cs_completion_map; - __u32 pad; }; union hl_wait_cs_args { @@ -1072,16 +725,11 @@ union hl_wait_cs_args { #define HL_MEM_OP_UNMAP 3 /* Opcode to map a hw block */ #define HL_MEM_OP_MAP_BLOCK 4 -/* Opcode to create DMA-BUF object for an existing device memory allocation - * and to export an FD of that DMA-BUF back to the caller - */ -#define HL_MEM_OP_EXPORT_DMABUF_FD 5 /* Memory flags */ #define HL_MEM_CONTIGUOUS 0x1 #define HL_MEM_SHARED 0x2 #define HL_MEM_USERPTR 0x4 -#define HL_MEM_FORCE_HINT 0x8 struct hl_mem_in { union { @@ -1147,26 +795,11 @@ struct hl_mem_in { /* Virtual address returned from HL_MEM_OP_MAP */ __u64 device_virt_addr; } unmap; - - /* HL_MEM_OP_EXPORT_DMABUF_FD */ - struct { - /* Handle returned from HL_MEM_OP_ALLOC. In Gaudi, - * where we don't have MMU for the device memory, the - * driver expects a physical address (instead of - * a handle) in the device memory space. - */ - __u64 handle; - /* Size of memory allocation. Relevant only for GAUDI */ - __u64 mem_size; - } export_dmabuf_fd; }; /* HL_MEM_OP_* */ __u32 op; - /* HL_MEM_* flags. - * For the HL_MEM_OP_EXPORT_DMABUF_FD opcode, this field holds the - * DMA-BUF file/FD flags. - */ + /* HL_MEM_* flags */ __u32 flags; /* Context ID - Currently not in use */ __u32 ctx_id; @@ -1203,13 +836,6 @@ struct hl_mem_out { __u32 pad; }; - - /* Returned in HL_MEM_OP_EXPORT_DMABUF_FD. Represents the - * DMA-BUF object that was created to describe a memory - * allocation on the device's memory space. The FD should be - * passed to the importer driver - */ - __s32 fd; }; }; @@ -1373,8 +999,8 @@ struct hl_debug_args { * Each JOB will be enqueued on a specific queue, according to the user's input. * There can be more then one JOB per queue. * - * The CS IOCTL will receive two sets of JOBS. One set is for "restore" phase - * and a second set is for "execution" phase. + * The CS IOCTL will receive three sets of JOBS. One set is for "restore" phase, + * a second set is for "execution" phase and a third set is for "store" phase. * The JOBS on the "restore" phase are enqueued only after context-switch * (or if its the first CS for this context). The user can also order the * driver to run the "restore" phase explicitly @@ -1431,8 +1057,7 @@ struct hl_debug_args { * EIO - The CS was aborted (usually because the device was reset) * ENODEV - The device wants to do hard-reset (so user need to close FD) * - * The driver also returns a custom define in case the IOCTL call returned 0. - * The define can be one of the following: + * The driver also returns a custom define inside the IOCTL which can be: * * HL_WAIT_CS_STATUS_COMPLETED - The CS has been completed successfully (0) * HL_WAIT_CS_STATUS_BUSY - The CS is still executing (0) @@ -1440,6 +1065,8 @@ struct hl_debug_args { * (ETIMEDOUT) * HL_WAIT_CS_STATUS_ABORTED - The CS was aborted, usually because the * device was reset (EIO) + * HL_WAIT_CS_STATUS_INTERRUPTED - Waiting for the CS was interrupted (EINTR) + * */ #define HL_IOCTL_WAIT_CS \ diff --git a/original/uapi/misc/uacce/hisi_qm.h b/original/uapi/misc/uacce/hisi_qm.h index 1faef5f..6435f0b 100644 --- a/original/uapi/misc/uacce/hisi_qm.h +++ b/original/uapi/misc/uacce/hisi_qm.h @@ -16,7 +16,6 @@ struct hisi_qp_ctx { #define HISI_QM_API_VER_BASE "hisi_qm_v1" #define HISI_QM_API_VER2_BASE "hisi_qm_v2" -#define HISI_QM_API_VER3_BASE "hisi_qm_v3" /* UACCE_CMD_QM_SET_QP_CTX: Set qp algorithm type */ #define UACCE_CMD_QM_SET_QP_CTX _IOWR('H', 10, struct hisi_qp_ctx) diff --git a/original/uapi/mtd/mtd-abi.h b/original/uapi/mtd/mtd-abi.h index b869990..65b9db9 100644 --- a/original/uapi/mtd/mtd-abi.h +++ b/original/uapi/mtd/mtd-abi.h @@ -205,8 +205,6 @@ struct otp_info { * without OOB, e.g., NOR flash. */ #define MEMWRITE _IOWR('M', 24, struct mtd_write_req) -/* Erase a given range of user data (must be in mode %MTD_FILE_MODE_OTP_USER) */ -#define OTPERASE _IOW('M', 25, struct otp_info) /* * Obsolete legacy interface. Keep it in order not to break userspace diff --git a/original/uapi/rdma/bnxt_re-abi.h b/original/uapi/rdma/bnxt_re-abi.h index b1de99b..dc52e3c 100644 --- a/original/uapi/rdma/bnxt_re-abi.h +++ b/original/uapi/rdma/bnxt_re-abi.h @@ -49,14 +49,7 @@ #define BNXT_RE_CHIP_ID0_CHIP_MET_SFT 0x18 enum { - BNXT_RE_UCNTX_CMASK_HAVE_CCTX = 0x1ULL, - BNXT_RE_UCNTX_CMASK_HAVE_MODE = 0x02ULL, -}; - -enum bnxt_re_wqe_mode { - BNXT_QPLIB_WQE_MODE_STATIC = 0x00, - BNXT_QPLIB_WQE_MODE_VARIABLE = 0x01, - BNXT_QPLIB_WQE_MODE_INVALID = 0x02, + BNXT_RE_UCNTX_CMASK_HAVE_CCTX = 0x1ULL }; struct bnxt_re_uctx_resp { @@ -69,8 +62,6 @@ struct bnxt_re_uctx_resp { __aligned_u64 comp_mask; __u32 chip_id0; __u32 chip_id1; - __u32 mode; - __u32 rsvd1; /* padding */ }; /* diff --git a/original/uapi/rdma/efa-abi.h b/original/uapi/rdma/efa-abi.h index 08035cc..f89fbb5 100644 --- a/original/uapi/rdma/efa-abi.h +++ b/original/uapi/rdma/efa-abi.h @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-2-Clause) */ /* - * Copyright 2018-2021 Amazon.com, Inc. or its affiliates. All rights reserved. + * Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All rights reserved. */ #ifndef EFA_ABI_USER_H @@ -52,20 +52,11 @@ struct efa_ibv_alloc_pd_resp { __u8 reserved_30[2]; }; -enum { - EFA_CREATE_CQ_WITH_COMPLETION_CHANNEL = 1 << 0, -}; - struct efa_ibv_create_cq { __u32 comp_mask; __u32 cq_entry_size; __u16 num_sub_cqs; - __u8 flags; - __u8 reserved_58[5]; -}; - -enum { - EFA_CREATE_CQ_RESP_DB_OFF = 1 << 0, + __u8 reserved_50[6]; }; struct efa_ibv_create_cq_resp { @@ -74,9 +65,7 @@ struct efa_ibv_create_cq_resp { __aligned_u64 q_mmap_key; __aligned_u64 q_mmap_size; __u16 cq_idx; - __u8 reserved_d0[2]; - __u32 db_off; - __aligned_u64 db_mmap_key; + __u8 reserved_d0[6]; }; enum { @@ -117,7 +106,6 @@ struct efa_ibv_create_ah_resp { enum { EFA_QUERY_DEVICE_CAPS_RDMA_READ = 1 << 0, EFA_QUERY_DEVICE_CAPS_RNR_RETRY = 1 << 1, - EFA_QUERY_DEVICE_CAPS_CQ_NOTIFICATIONS = 1 << 2, }; struct efa_ibv_ex_query_device_resp { diff --git a/original/uapi/rdma/hns-abi.h b/original/uapi/rdma/hns-abi.h index f6fde06..90b739d 100644 --- a/original/uapi/rdma/hns-abi.h +++ b/original/uapi/rdma/hns-abi.h @@ -77,19 +77,15 @@ enum hns_roce_qp_cap_flags { HNS_ROCE_QP_CAP_RQ_RECORD_DB = 1 << 0, HNS_ROCE_QP_CAP_SQ_RECORD_DB = 1 << 1, HNS_ROCE_QP_CAP_OWNER_DB = 1 << 2, - HNS_ROCE_QP_CAP_DIRECT_WQE = 1 << 5, }; struct hns_roce_ib_create_qp_resp { __aligned_u64 cap_flags; - __aligned_u64 dwqe_mmap_key; }; struct hns_roce_ib_alloc_ucontext_resp { __u32 qp_tab_size; __u32 cqe_size; - __u32 srq_tab_size; - __u32 reserved; }; struct hns_roce_ib_alloc_pd_resp { diff --git a/original/uapi/rdma/i40iw-abi.h b/original/uapi/rdma/i40iw-abi.h new file mode 100644 index 0000000..79890ba --- /dev/null +++ b/original/uapi/rdma/i40iw-abi.h @@ -0,0 +1,107 @@ +/* + * Copyright (c) 2006 - 2016 Intel Corporation. All rights reserved. + * Copyright (c) 2005 Topspin Communications. All rights reserved. + * Copyright (c) 2005 Cisco Systems. All rights reserved. + * Copyright (c) 2005 Open Grid Computing, Inc. All rights reserved. + * + * This software is available to you under a choice of one of two + * licenses. You may choose to be licensed under the terms of the GNU + * General Public License (GPL) Version 2, available from the file + * COPYING in the main directory of this source tree, or the + * OpenIB.org BSD license below: + * + * Redistribution and use in source and binary forms, with or + * without modification, are permitted provided that the following + * conditions are met: + * + * - Redistributions of source code must retain the above + * copyright notice, this list of conditions and the following + * disclaimer. + * + * - Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + */ + +#ifndef I40IW_ABI_H +#define I40IW_ABI_H + +#include <linux/types.h> + +#define I40IW_ABI_VER 5 + +struct i40iw_alloc_ucontext_req { + __u32 reserved32; + __u8 userspace_ver; + __u8 reserved8[3]; +}; + +struct i40iw_alloc_ucontext_resp { + __u32 max_pds; /* maximum pds allowed for this user process */ + __u32 max_qps; /* maximum qps allowed for this user process */ + __u32 wq_size; /* size of the WQs (sq+rq) allocated to the mmaped area */ + __u8 kernel_ver; + __u8 reserved[3]; +}; + +struct i40iw_alloc_pd_resp { + __u32 pd_id; + __u8 reserved[4]; +}; + +struct i40iw_create_cq_req { + __aligned_u64 user_cq_buffer; + __aligned_u64 user_shadow_area; +}; + +struct i40iw_create_qp_req { + __aligned_u64 user_wqe_buffers; + __aligned_u64 user_compl_ctx; + + /* UDA QP PHB */ + __aligned_u64 user_sq_phb; /* place for VA of the sq phb buff */ + __aligned_u64 user_rq_phb; /* place for VA of the rq phb buff */ +}; + +enum i40iw_memreg_type { + IW_MEMREG_TYPE_MEM = 0x0000, + IW_MEMREG_TYPE_QP = 0x0001, + IW_MEMREG_TYPE_CQ = 0x0002, +}; + +struct i40iw_mem_reg_req { + __u16 reg_type; /* Memory, QP or CQ */ + __u16 cq_pages; + __u16 rq_pages; + __u16 sq_pages; +}; + +struct i40iw_create_cq_resp { + __u32 cq_id; + __u32 cq_size; + __u32 mmap_db_index; + __u32 reserved; +}; + +struct i40iw_create_qp_resp { + __u32 qp_id; + __u32 actual_sq_size; + __u32 actual_rq_size; + __u32 i40iw_drv_opt; + __u16 push_idx; + __u8 lsmm; + __u8 rsvd2; +}; + +#endif diff --git a/original/uapi/rdma/ib_user_ioctl_verbs.h b/original/uapi/rdma/ib_user_ioctl_verbs.h index 3072e5d..2248379 100644 --- a/original/uapi/rdma/ib_user_ioctl_verbs.h +++ b/original/uapi/rdma/ib_user_ioctl_verbs.h @@ -240,7 +240,6 @@ enum rdma_driver_id { RDMA_DRIVER_OCRDMA, RDMA_DRIVER_NES, RDMA_DRIVER_I40IW, - RDMA_DRIVER_IRDMA = RDMA_DRIVER_I40IW, RDMA_DRIVER_VMW_PVRDMA, RDMA_DRIVER_QEDR, RDMA_DRIVER_HNS, diff --git a/original/uapi/rdma/ib_user_mad.h b/original/uapi/rdma/ib_user_mad.h index 10b5f6a..90c0cf2 100644 --- a/original/uapi/rdma/ib_user_mad.h +++ b/original/uapi/rdma/ib_user_mad.h @@ -143,7 +143,7 @@ struct ib_user_mad_hdr { */ struct ib_user_mad { struct ib_user_mad_hdr hdr; - __aligned_u64 data[]; + __aligned_u64 data[0]; }; /* diff --git a/original/uapi/rdma/irdma-abi.h b/original/uapi/rdma/irdma-abi.h deleted file mode 100644 index a7085e0..0000000 --- a/original/uapi/rdma/irdma-abi.h +++ /dev/null @@ -1,111 +0,0 @@ -/* SPDX-License-Identifier: (GPL-2.0 WITH Linux-syscall-note) OR Linux-OpenIB */ -/* - * Copyright (c) 2006 - 2021 Intel Corporation. All rights reserved. - * Copyright (c) 2005 Topspin Communications. All rights reserved. - * Copyright (c) 2005 Cisco Systems. All rights reserved. - * Copyright (c) 2005 Open Grid Computing, Inc. All rights reserved. - */ - -#ifndef IRDMA_ABI_H -#define IRDMA_ABI_H - -#include <linux/types.h> - -/* irdma must support legacy GEN_1 i40iw kernel - * and user-space whose last ABI ver is 5 - */ -#define IRDMA_ABI_VER 5 - -enum irdma_memreg_type { - IRDMA_MEMREG_TYPE_MEM = 0, - IRDMA_MEMREG_TYPE_QP = 1, - IRDMA_MEMREG_TYPE_CQ = 2, -}; - -struct irdma_alloc_ucontext_req { - __u32 rsvd32; - __u8 userspace_ver; - __u8 rsvd8[3]; -}; - -struct irdma_alloc_ucontext_resp { - __u32 max_pds; - __u32 max_qps; - __u32 wq_size; /* size of the WQs (SQ+RQ) in the mmaped area */ - __u8 kernel_ver; - __u8 rsvd[3]; - __aligned_u64 feature_flags; - __aligned_u64 db_mmap_key; - __u32 max_hw_wq_frags; - __u32 max_hw_read_sges; - __u32 max_hw_inline; - __u32 max_hw_rq_quanta; - __u32 max_hw_wq_quanta; - __u32 min_hw_cq_size; - __u32 max_hw_cq_size; - __u16 max_hw_sq_chunk; - __u8 hw_rev; - __u8 rsvd2; -}; - -struct irdma_alloc_pd_resp { - __u32 pd_id; - __u8 rsvd[4]; -}; - -struct irdma_resize_cq_req { - __aligned_u64 user_cq_buffer; -}; - -struct irdma_create_cq_req { - __aligned_u64 user_cq_buf; - __aligned_u64 user_shadow_area; -}; - -struct irdma_create_qp_req { - __aligned_u64 user_wqe_bufs; - __aligned_u64 user_compl_ctx; -}; - -struct irdma_mem_reg_req { - __u16 reg_type; /* enum irdma_memreg_type */ - __u16 cq_pages; - __u16 rq_pages; - __u16 sq_pages; -}; - -struct irdma_modify_qp_req { - __u8 sq_flush; - __u8 rq_flush; - __u8 rsvd[6]; -}; - -struct irdma_create_cq_resp { - __u32 cq_id; - __u32 cq_size; -}; - -struct irdma_create_qp_resp { - __u32 qp_id; - __u32 actual_sq_size; - __u32 actual_rq_size; - __u32 irdma_drv_opt; - __u16 push_idx; - __u8 lsmm; - __u8 rsvd; - __u32 qp_caps; -}; - -struct irdma_modify_qp_resp { - __aligned_u64 push_wqe_mmap_key; - __aligned_u64 push_db_mmap_key; - __u16 push_offset; - __u8 push_valid; - __u8 rsvd[5]; -}; - -struct irdma_create_ah_resp { - __u32 ah_id; - __u8 rsvd[4]; -}; -#endif /* IRDMA_ABI_H */ diff --git a/original/uapi/rdma/mlx5-abi.h b/original/uapi/rdma/mlx5-abi.h index 86be4a9..27905a0 100644 --- a/original/uapi/rdma/mlx5-abi.h +++ b/original/uapi/rdma/mlx5-abi.h @@ -50,7 +50,6 @@ enum { MLX5_QP_FLAG_ALLOW_SCATTER_CQE = 1 << 8, MLX5_QP_FLAG_PACKET_BASED_CREDIT_MODE = 1 << 9, MLX5_QP_FLAG_UAR_PAGE_INDEX = 1 << 10, - MLX5_QP_FLAG_DCI_STREAM = 1 << 11, }; enum { @@ -102,8 +101,6 @@ enum mlx5_ib_alloc_ucontext_resp_mask { MLX5_IB_ALLOC_UCONTEXT_RESP_MASK_CORE_CLOCK_OFFSET = 1UL << 0, MLX5_IB_ALLOC_UCONTEXT_RESP_MASK_DUMP_FILL_MKEY = 1UL << 1, MLX5_IB_ALLOC_UCONTEXT_RESP_MASK_ECE = 1UL << 2, - MLX5_IB_ALLOC_UCONTEXT_RESP_MASK_SQD2RTS = 1UL << 3, - MLX5_IB_ALLOC_UCONTEXT_RESP_MASK_REAL_TIME_TS = 1UL << 4, }; enum mlx5_user_cmds_supp_uhw { @@ -239,11 +236,6 @@ struct mlx5_ib_striding_rq_caps { __u32 reserved; }; -struct mlx5_ib_dci_streams_caps { - __u8 max_log_num_concurent; - __u8 max_log_num_errored; -}; - enum mlx5_ib_query_dev_resp_flags { /* Support 128B CQE compression */ MLX5_IB_QUERY_DEV_RESP_FLAGS_CQE_128B_COMP = 1 << 0, @@ -272,14 +264,12 @@ struct mlx5_ib_query_device_resp { struct mlx5_ib_sw_parsing_caps sw_parsing_caps; struct mlx5_ib_striding_rq_caps striding_rq_caps; __u32 tunnel_offloads_caps; /* enum mlx5_ib_tunnel_offloads */ - struct mlx5_ib_dci_streams_caps dci_streams_caps; - __u16 reserved; + __u32 reserved; }; enum mlx5_ib_create_cq_flags { MLX5_IB_CREATE_CQ_FLAGS_CQE_128B_PAD = 1 << 0, MLX5_IB_CREATE_CQ_FLAGS_UAR_PAGE_INDEX = 1 << 1, - MLX5_IB_CREATE_CQ_FLAGS_REAL_TIME_TS = 1 << 2, }; struct mlx5_ib_create_cq { @@ -320,11 +310,6 @@ struct mlx5_ib_create_srq_resp { __u32 reserved; }; -struct mlx5_ib_create_qp_dci_streams { - __u8 log_num_concurent; - __u8 log_num_errored; -}; - struct mlx5_ib_create_qp { __aligned_u64 buf_addr; __aligned_u64 db_addr; @@ -339,8 +324,7 @@ struct mlx5_ib_create_qp { __aligned_u64 access_key; }; __u32 ece_options; - struct mlx5_ib_create_qp_dci_streams dci_streams; - __u16 reserved; + __u32 reserved; }; /* RX Hash function flags */ diff --git a/original/uapi/rdma/mlx5_user_ioctl_cmds.h b/original/uapi/rdma/mlx5_user_ioctl_cmds.h index e539c84..3fd9b38 100644 --- a/original/uapi/rdma/mlx5_user_ioctl_cmds.h +++ b/original/uapi/rdma/mlx5_user_ioctl_cmds.h @@ -41,25 +41,6 @@ enum mlx5_ib_create_flow_action_attrs { MLX5_IB_ATTR_CREATE_FLOW_ACTION_FLAGS = (1U << UVERBS_ID_NS_SHIFT), }; -enum mlx5_ib_dm_methods { - MLX5_IB_METHOD_DM_MAP_OP_ADDR = (1U << UVERBS_ID_NS_SHIFT), - MLX5_IB_METHOD_DM_QUERY, -}; - -enum mlx5_ib_dm_map_op_addr_attrs { - MLX5_IB_ATTR_DM_MAP_OP_ADDR_REQ_HANDLE = (1U << UVERBS_ID_NS_SHIFT), - MLX5_IB_ATTR_DM_MAP_OP_ADDR_REQ_OP, - MLX5_IB_ATTR_DM_MAP_OP_ADDR_RESP_START_OFFSET, - MLX5_IB_ATTR_DM_MAP_OP_ADDR_RESP_PAGE_INDEX, -}; - -enum mlx5_ib_query_dm_attrs { - MLX5_IB_ATTR_QUERY_DM_REQ_HANDLE = (1U << UVERBS_ID_NS_SHIFT), - MLX5_IB_ATTR_QUERY_DM_RESP_START_OFFSET, - MLX5_IB_ATTR_QUERY_DM_RESP_PAGE_INDEX, - MLX5_IB_ATTR_QUERY_DM_RESP_LENGTH, -}; - enum mlx5_ib_alloc_dm_attrs { MLX5_IB_ATTR_ALLOC_DM_RESP_START_OFFSET = (1U << UVERBS_ID_NS_SHIFT), MLX5_IB_ATTR_ALLOC_DM_RESP_PAGE_INDEX, @@ -173,7 +154,6 @@ enum mlx5_ib_devx_umem_reg_attrs { MLX5_IB_ATTR_DEVX_UMEM_REG_LEN, MLX5_IB_ATTR_DEVX_UMEM_REG_ACCESS, MLX5_IB_ATTR_DEVX_UMEM_REG_OUT_ID, - MLX5_IB_ATTR_DEVX_UMEM_REG_PGSZ_BITMAP, }; enum mlx5_ib_devx_umem_dereg_attrs { @@ -252,7 +232,7 @@ enum mlx5_ib_device_query_context_attrs { MLX5_IB_ATTR_QUERY_CONTEXT_RESP_UCTX = (1U << UVERBS_ID_NS_SHIFT), }; -#define MLX5_IB_DW_MATCH_PARAM 0xA0 +#define MLX5_IB_DW_MATCH_PARAM 0x90 struct mlx5_ib_match_params { __u32 match_params[MLX5_IB_DW_MATCH_PARAM]; @@ -320,13 +300,4 @@ enum mlx5_ib_pd_methods { }; -enum mlx5_ib_device_methods { - MLX5_IB_METHOD_QUERY_PORT = (1U << UVERBS_ID_NS_SHIFT), -}; - -enum mlx5_ib_query_port_attrs { - MLX5_IB_ATTR_QUERY_PORT_PORT_NUM = (1U << UVERBS_ID_NS_SHIFT), - MLX5_IB_ATTR_QUERY_PORT, -}; - #endif diff --git a/original/uapi/rdma/mlx5_user_ioctl_verbs.h b/original/uapi/rdma/mlx5_user_ioctl_verbs.h index a21ca8e..56b26ea 100644 --- a/original/uapi/rdma/mlx5_user_ioctl_verbs.h +++ b/original/uapi/rdma/mlx5_user_ioctl_verbs.h @@ -83,30 +83,5 @@ enum mlx5_ib_uapi_uar_alloc_type { MLX5_IB_UAPI_UAR_ALLOC_TYPE_NC = 0x1, }; -enum mlx5_ib_uapi_query_port_flags { - MLX5_IB_UAPI_QUERY_PORT_VPORT = 1 << 0, - MLX5_IB_UAPI_QUERY_PORT_VPORT_VHCA_ID = 1 << 1, - MLX5_IB_UAPI_QUERY_PORT_VPORT_STEERING_ICM_RX = 1 << 2, - MLX5_IB_UAPI_QUERY_PORT_VPORT_STEERING_ICM_TX = 1 << 3, - MLX5_IB_UAPI_QUERY_PORT_VPORT_REG_C0 = 1 << 4, - MLX5_IB_UAPI_QUERY_PORT_ESW_OWNER_VHCA_ID = 1 << 5, -}; - -struct mlx5_ib_uapi_reg { - __u32 value; - __u32 mask; -}; - -struct mlx5_ib_uapi_query_port { - __aligned_u64 flags; - __u16 vport; - __u16 vport_vhca_id; - __u16 esw_owner_vhca_id; - __u16 rsvd0; - __aligned_u64 vport_steering_icm_rx; - __aligned_u64 vport_steering_icm_tx; - struct mlx5_ib_uapi_reg reg_c0; -}; - #endif diff --git a/original/uapi/rdma/rdma_netlink.h b/original/uapi/rdma/rdma_netlink.h index e50c357..d2f5b83 100644 --- a/original/uapi/rdma/rdma_netlink.h +++ b/original/uapi/rdma/rdma_netlink.h @@ -293,12 +293,6 @@ enum rdma_nldev_command { RDMA_NLDEV_CMD_RES_MR_GET_RAW, - RDMA_NLDEV_CMD_RES_CTX_GET, /* can dump */ - - RDMA_NLDEV_CMD_RES_SRQ_GET, /* can dump */ - - RDMA_NLDEV_CMD_STAT_GET_STATUS, - RDMA_NLDEV_NUM_OPS }; @@ -539,21 +533,6 @@ enum rdma_nldev_attr { RDMA_NLDEV_ATTR_RES_RAW, /* binary */ - RDMA_NLDEV_ATTR_RES_CTX, /* nested table */ - RDMA_NLDEV_ATTR_RES_CTX_ENTRY, /* nested table */ - - RDMA_NLDEV_ATTR_RES_SRQ, /* nested table */ - RDMA_NLDEV_ATTR_RES_SRQ_ENTRY, /* nested table */ - RDMA_NLDEV_ATTR_RES_SRQN, /* u32 */ - - RDMA_NLDEV_ATTR_MIN_RANGE, /* u32 */ - RDMA_NLDEV_ATTR_MAX_RANGE, /* u32 */ - - RDMA_NLDEV_SYS_ATTR_COPY_ON_FORK, /* u8 */ - - RDMA_NLDEV_ATTR_STAT_HWCOUNTER_INDEX, /* u32 */ - RDMA_NLDEV_ATTR_STAT_HWCOUNTER_DYNAMIC, /* u8 */ - /* * Always the end */ diff --git a/original/uapi/rdma/rdma_user_rxe.h b/original/uapi/rdma/rdma_user_rxe.h index f09c5c9..068433e 100644 --- a/original/uapi/rdma/rdma_user_rxe.h +++ b/original/uapi/rdma/rdma_user_rxe.h @@ -98,21 +98,8 @@ struct rxe_send_wr { __u32 remote_qpn; __u32 remote_qkey; __u16 pkey_index; - __u16 reserved; - __u32 ah_num; - __u32 pad[4]; - struct rxe_av av; } ud; - struct { - __aligned_u64 addr; - __aligned_u64 length; - __u32 mr_lkey; - __u32 mw_rkey; - __u32 rkey; - __u32 access; - } mw; /* reg is only used by the kernel and is not part of the uapi */ -#ifdef __KERNEL__ struct { union { struct ib_mr *mr; @@ -121,7 +108,6 @@ struct rxe_send_wr { __u32 key; __u32 access; } reg; -#endif } wr; }; @@ -145,13 +131,14 @@ struct rxe_dma_info { __u32 sge_offset; __u32 reserved; union { - __DECLARE_FLEX_ARRAY(__u8, inline_data); - __DECLARE_FLEX_ARRAY(struct rxe_sge, sge); + __u8 inline_data[0]; + struct rxe_sge sge[0]; }; }; struct rxe_send_wqe { struct rxe_send_wr wr; + struct rxe_av av; __u32 status; __u32 state; __aligned_u64 iova; @@ -171,11 +158,6 @@ struct rxe_recv_wqe { struct rxe_dma_info dma; }; -struct rxe_create_ah_resp { - __u32 ah_num; - __u32 reserved; -}; - struct rxe_create_cq_resp { struct mminfo mi; }; diff --git a/original/uapi/scsi/fc/fc_els.h b/original/uapi/scsi/fc/fc_els.h index c9812c5..91d4be9 100644 --- a/original/uapi/scsi/fc/fc_els.h +++ b/original/uapi/scsi/fc/fc_els.h @@ -41,7 +41,6 @@ enum fc_els_cmd { ELS_REC = 0x13, /* read exchange concise */ ELS_SRR = 0x14, /* sequence retransmission request */ ELS_FPIN = 0x16, /* Fabric Performance Impact Notification */ - ELS_EDC = 0x17, /* Exchange Diagnostic Capabilities */ ELS_RDP = 0x18, /* Read Diagnostic Parameters */ ELS_RDF = 0x19, /* Register Diagnostic Functions */ ELS_PRLI = 0x20, /* process login */ @@ -112,7 +111,6 @@ enum fc_els_cmd { [ELS_REC] = "REC", \ [ELS_SRR] = "SRR", \ [ELS_FPIN] = "FPIN", \ - [ELS_EDC] = "EDC", \ [ELS_RDP] = "RDP", \ [ELS_RDF] = "RDF", \ [ELS_PRLI] = "PRLI", \ @@ -220,10 +218,6 @@ enum fc_els_rjt_explan { enum fc_ls_tlv_dtag { ELS_DTAG_LS_REQ_INFO = 0x00000001, /* Link Service Request Information Descriptor */ - ELS_DTAG_LNK_FAULT_CAP = 0x0001000D, - /* Link Fault Capability Descriptor */ - ELS_DTAG_CG_SIGNAL_CAP = 0x0001000F, - /* Congestion Signaling Capability Descriptor */ ELS_DTAG_LNK_INTEGRITY = 0x00020001, /* Link Integrity Notification Descriptor */ ELS_DTAG_DELIVERY = 0x00020002, @@ -242,8 +236,6 @@ enum fc_ls_tlv_dtag { */ #define FC_LS_TLV_DTAG_INIT { \ { ELS_DTAG_LS_REQ_INFO, "Link Service Request Information" }, \ - { ELS_DTAG_LNK_FAULT_CAP, "Link Fault Capability" }, \ - { ELS_DTAG_CG_SIGNAL_CAP, "Congestion Signaling Capability" }, \ { ELS_DTAG_LNK_INTEGRITY, "Link Integrity Notification" }, \ { ELS_DTAG_DELIVERY, "Delivery Notification Present" }, \ { ELS_DTAG_PEER_CONGEST, "Peer Congestion Notification" }, \ @@ -1152,102 +1144,4 @@ struct fc_els_rdf_resp { }; -/* - * Diagnostic Capability Descriptors for EDC ELS - */ - -/* - * Diagnostic: Link Fault Capability Descriptor - */ -struct fc_diag_lnkflt_desc { - __be32 desc_tag; /* Descriptor Tag (0x0001000D) */ - __be32 desc_len; /* Length of Descriptor (in bytes). - * Size of descriptor excluding - * desc_tag and desc_len fields. - * 12 bytes - */ - __be32 degrade_activate_threshold; - __be32 degrade_deactivate_threshold; - __be32 fec_degrade_interval; -}; - -enum fc_edc_cg_signal_cap_types { - /* Note: Capability: bits 31:4 Rsvd; bits 3:0 are capabilities */ - EDC_CG_SIG_NOTSUPPORTED = 0x00, /* neither supported */ - EDC_CG_SIG_WARN_ONLY = 0x01, - EDC_CG_SIG_WARN_ALARM = 0x02, /* both supported */ -}; - -/* - * Initializer useful for decoding table. - * Please keep this in sync with the above definitions. - */ -#define FC_EDC_CG_SIGNAL_CAP_TYPES_INIT { \ - { EDC_CG_SIG_NOTSUPPORTED, "Signaling Not Supported" }, \ - { EDC_CG_SIG_WARN_ONLY, "Warning Signal" }, \ - { EDC_CG_SIG_WARN_ALARM, "Warning and Alarm Signals" }, \ -} - -enum fc_diag_cg_sig_freq_types { - EDC_CG_SIGFREQ_CNT_MIN = 1, /* Min Frequency Count */ - EDC_CG_SIGFREQ_CNT_MAX = 999, /* Max Frequency Count */ - - EDC_CG_SIGFREQ_SEC = 0x1, /* Units: seconds */ - EDC_CG_SIGFREQ_MSEC = 0x2, /* Units: milliseconds */ -}; - -struct fc_diag_cg_sig_freq { - __be16 count; /* Time between signals - * note: upper 6 bits rsvd - */ - __be16 units; /* Time unit for count - * note: upper 12 bits rsvd - */ -}; - -/* - * Diagnostic: Congestion Signaling Capability Descriptor - */ -struct fc_diag_cg_sig_desc { - __be32 desc_tag; /* Descriptor Tag (0x0001000F) */ - __be32 desc_len; /* Length of Descriptor (in bytes). - * Size of descriptor excluding - * desc_tag and desc_len fields. - * 16 bytes - */ - __be32 xmt_signal_capability; - struct fc_diag_cg_sig_freq xmt_signal_frequency; - __be32 rcv_signal_capability; - struct fc_diag_cg_sig_freq rcv_signal_frequency; -}; - -/* - * ELS_EDC - Exchange Diagnostic Capabilities - */ -struct fc_els_edc { - __u8 edc_cmd; /* command (0x17) */ - __u8 edc_zero[3]; /* specified as zero - part of cmd */ - __be32 desc_len; /* Length of Descriptor List (in bytes). - * Size of ELS excluding edc_cmd, - * edc_zero and desc_len fields. - */ - struct fc_tlv_desc desc[0]; - /* Diagnostic Descriptor list */ -}; - -/* - * ELS EDC LS_ACC Response. - */ -struct fc_els_edc_resp { - struct fc_els_ls_acc acc_hdr; - __be32 desc_list_len; /* Length of response (in - * bytes). Excludes acc_hdr - * and desc_list_len fields. - */ - struct fc_els_lsri_desc lsri; - struct fc_tlv_desc desc[0]; - /* Supported Diagnostic Descriptor list */ -}; - - #endif /* _FC_ELS_H_ */ diff --git a/original/uapi/sound/asoc.h b/original/uapi/sound/asoc.h index 0539492..da61398 100644 --- a/original/uapi/sound/asoc.h +++ b/original/uapi/sound/asoc.h @@ -240,8 +240,8 @@ struct snd_soc_tplg_vendor_array { struct snd_soc_tplg_private { __le32 size; /* in bytes of private data */ union { - __DECLARE_FLEX_ARRAY(char, data); - __DECLARE_FLEX_ARRAY(struct snd_soc_tplg_vendor_array, array); + char data[0]; + struct snd_soc_tplg_vendor_array array[0]; }; } __attribute__((packed)); diff --git a/original/uapi/sound/asound.h b/original/uapi/sound/asound.h index 2d3e5df..535a722 100644 --- a/original/uapi/sound/asound.h +++ b/original/uapi/sound/asound.h @@ -56,10 +56,8 @@ * * ****************************************************************************/ -#define AES_IEC958_STATUS_SIZE 24 - struct snd_aes_iec958 { - unsigned char status[AES_IEC958_STATUS_SIZE]; /* AES/IEC958 channel status bits */ + unsigned char status[24]; /* AES/IEC958 channel status bits */ unsigned char subcode[147]; /* AES/IEC958 subcode bits */ unsigned char pad; /* nothing */ unsigned char dig_subframe[4]; /* AES/IEC958 subframe bits */ @@ -204,11 +202,6 @@ typedef int __bitwise snd_pcm_format_t; #define SNDRV_PCM_FORMAT_S24_BE ((__force snd_pcm_format_t) 7) /* low three bytes */ #define SNDRV_PCM_FORMAT_U24_LE ((__force snd_pcm_format_t) 8) /* low three bytes */ #define SNDRV_PCM_FORMAT_U24_BE ((__force snd_pcm_format_t) 9) /* low three bytes */ -/* - * For S32/U32 formats, 'msbits' hardware parameter is often used to deliver information about the - * available bit count in most significant bit. It's for the case of so-called 'left-justified' or - * `right-padding` sample which has less width than 32 bit. - */ #define SNDRV_PCM_FORMAT_S32_LE ((__force snd_pcm_format_t) 10) #define SNDRV_PCM_FORMAT_S32_BE ((__force snd_pcm_format_t) 11) #define SNDRV_PCM_FORMAT_U32_LE ((__force snd_pcm_format_t) 12) @@ -306,8 +299,7 @@ typedef int __bitwise snd_pcm_subformat_t; #define SNDRV_PCM_INFO_HAS_LINK_ABSOLUTE_ATIME 0x02000000 /* report absolute hardware link audio time, not reset on startup */ #define SNDRV_PCM_INFO_HAS_LINK_ESTIMATED_ATIME 0x04000000 /* report estimated link audio time */ #define SNDRV_PCM_INFO_HAS_LINK_SYNCHRONIZED_ATIME 0x08000000 /* report synchronized audio/system time */ -#define SNDRV_PCM_INFO_EXPLICIT_SYNC 0x10000000 /* needs explicit sync of pointers and data */ -#define SNDRV_PCM_INFO_NO_REWINDS 0x20000000 /* hardware can only support monotonic changes of appl_ptr */ + #define SNDRV_PCM_INFO_DRAIN_TRIGGER 0x40000000 /* internal kernel flag - trigger in drain */ #define SNDRV_PCM_INFO_FIFO_IN_FRAMES 0x80000000 /* internal kernel flag - FIFO size is in frames */ @@ -718,7 +710,7 @@ enum { * Raw MIDI section - /dev/snd/midi?? */ -#define SNDRV_RAWMIDI_VERSION SNDRV_PROTOCOL_VERSION(2, 0, 2) +#define SNDRV_RAWMIDI_VERSION SNDRV_PROTOCOL_VERSION(2, 0, 1) enum { SNDRV_RAWMIDI_STREAM_OUTPUT = 0, @@ -744,38 +736,12 @@ struct snd_rawmidi_info { unsigned char reserved[64]; /* reserved for future use */ }; -#define SNDRV_RAWMIDI_MODE_FRAMING_MASK (7<<0) -#define SNDRV_RAWMIDI_MODE_FRAMING_SHIFT 0 -#define SNDRV_RAWMIDI_MODE_FRAMING_NONE (0<<0) -#define SNDRV_RAWMIDI_MODE_FRAMING_TSTAMP (1<<0) -#define SNDRV_RAWMIDI_MODE_CLOCK_MASK (7<<3) -#define SNDRV_RAWMIDI_MODE_CLOCK_SHIFT 3 -#define SNDRV_RAWMIDI_MODE_CLOCK_NONE (0<<3) -#define SNDRV_RAWMIDI_MODE_CLOCK_REALTIME (1<<3) -#define SNDRV_RAWMIDI_MODE_CLOCK_MONOTONIC (2<<3) -#define SNDRV_RAWMIDI_MODE_CLOCK_MONOTONIC_RAW (3<<3) - -#define SNDRV_RAWMIDI_FRAMING_DATA_LENGTH 16 - -struct snd_rawmidi_framing_tstamp { - /* For now, frame_type is always 0. Midi 2.0 is expected to add new - * types here. Applications are expected to skip unknown frame types. - */ - __u8 frame_type; - __u8 length; /* number of valid bytes in data field */ - __u8 reserved[2]; - __u32 tv_nsec; /* nanoseconds */ - __u64 tv_sec; /* seconds */ - __u8 data[SNDRV_RAWMIDI_FRAMING_DATA_LENGTH]; -} __packed; - struct snd_rawmidi_params { int stream; size_t buffer_size; /* queue size in bytes */ size_t avail_min; /* minimum avail bytes for wakeup */ unsigned int no_active_sensing: 1; /* do not send active sensing byte in close() */ - unsigned int mode; /* For input data only, frame incoming data */ - unsigned char reserved[12]; /* reserved for future use */ + unsigned char reserved[16]; /* reserved for future use */ }; #ifndef __KERNEL__ @@ -791,7 +757,6 @@ struct snd_rawmidi_status { #define SNDRV_RAWMIDI_IOCTL_PVERSION _IOR('W', 0x00, int) #define SNDRV_RAWMIDI_IOCTL_INFO _IOR('W', 0x01, struct snd_rawmidi_info) -#define SNDRV_RAWMIDI_IOCTL_USER_PVERSION _IOW('W', 0x02, int) #define SNDRV_RAWMIDI_IOCTL_PARAMS _IOWR('W', 0x10, struct snd_rawmidi_params) #define SNDRV_RAWMIDI_IOCTL_STATUS _IOWR('W', 0x20, struct snd_rawmidi_status) #define SNDRV_RAWMIDI_IOCTL_DROP _IOW('W', 0x30, int) @@ -1009,7 +974,7 @@ typedef int __bitwise snd_ctl_elem_iface_t; #define SNDRV_CTL_ELEM_ACCESS_WRITE (1<<1) #define SNDRV_CTL_ELEM_ACCESS_READWRITE (SNDRV_CTL_ELEM_ACCESS_READ|SNDRV_CTL_ELEM_ACCESS_WRITE) #define SNDRV_CTL_ELEM_ACCESS_VOLATILE (1<<2) /* control value may be changed without a notification */ -/* (1 << 3) is unused. */ +// (1 << 3) is unused. #define SNDRV_CTL_ELEM_ACCESS_TLV_READ (1<<4) /* TLV read is possible */ #define SNDRV_CTL_ELEM_ACCESS_TLV_WRITE (1<<5) /* TLV write is possible */ #define SNDRV_CTL_ELEM_ACCESS_TLV_READWRITE (SNDRV_CTL_ELEM_ACCESS_TLV_READ|SNDRV_CTL_ELEM_ACCESS_TLV_WRITE) diff --git a/original/uapi/sound/firewire.h b/original/uapi/sound/firewire.h index 39cf6eb..ae12826 100644 --- a/original/uapi/sound/firewire.h +++ b/original/uapi/sound/firewire.h @@ -13,7 +13,6 @@ #define SNDRV_FIREWIRE_EVENT_DIGI00X_MESSAGE 0x746e736c #define SNDRV_FIREWIRE_EVENT_MOTU_NOTIFICATION 0x64776479 #define SNDRV_FIREWIRE_EVENT_TASCAM_CONTROL 0x7473636d -#define SNDRV_FIREWIRE_EVENT_MOTU_REGISTER_DSP_CHANGE 0x4d545244 struct snd_firewire_event_common { unsigned int type; /* SNDRV_FIREWIRE_EVENT_xxx */ @@ -66,12 +65,6 @@ struct snd_firewire_event_tascam_control { struct snd_firewire_tascam_change changes[0]; }; -struct snd_firewire_event_motu_register_dsp_change { - unsigned int type; - __u32 count; /* The number of changes. */ - __u32 changes[]; /* Encoded event for change of register DSP. */ -}; - union snd_firewire_event { struct snd_firewire_event_common common; struct snd_firewire_event_lock_status lock_status; @@ -80,7 +73,6 @@ union snd_firewire_event { struct snd_firewire_event_digi00x_message digi00x_message; struct snd_firewire_event_tascam_control tascam_control; struct snd_firewire_event_motu_notification motu_notification; - struct snd_firewire_event_motu_register_dsp_change motu_register_dsp_change; }; @@ -88,9 +80,6 @@ union snd_firewire_event { #define SNDRV_FIREWIRE_IOCTL_LOCK _IO('H', 0xf9) #define SNDRV_FIREWIRE_IOCTL_UNLOCK _IO('H', 0xfa) #define SNDRV_FIREWIRE_IOCTL_TASCAM_STATE _IOR('H', 0xfb, struct snd_firewire_tascam_state) -#define SNDRV_FIREWIRE_IOCTL_MOTU_REGISTER_DSP_METER _IOR('H', 0xfc, struct snd_firewire_motu_register_dsp_meter) -#define SNDRV_FIREWIRE_IOCTL_MOTU_COMMAND_DSP_METER _IOR('H', 0xfd, struct snd_firewire_motu_command_dsp_meter) -#define SNDRV_FIREWIRE_IOCTL_MOTU_REGISTER_DSP_PARAMETER _IOR('H', 0xfe, struct snd_firewire_motu_register_dsp_parameter) #define SNDRV_FIREWIRE_TYPE_DICE 1 #define SNDRV_FIREWIRE_TYPE_FIREWORKS 2 @@ -119,143 +108,4 @@ struct snd_firewire_tascam_state { __be32 data[SNDRV_FIREWIRE_TASCAM_STATE_COUNT]; }; -/* - * In below MOTU models, software is allowed to control their DSP by accessing to registers. - * - 828mk2 - * - 896hd - * - Traveler - * - 8 pre - * - Ultralite - * - 4 pre - * - Audio Express - * - * On the other hand, the status of DSP is split into specific messages included in the sequence of - * isochronous packet. ALSA firewire-motu driver gathers the messages and allow userspace applications - * to read it via ioctl. In 828mk2, 896hd, and Traveler, hardware meter for all of physical inputs - * are put into the message, while one pair of physical outputs is selected. The selection is done by - * LSB one byte in asynchronous write quadlet transaction to 0x'ffff'f000'0b2c. - * - * I note that V3HD/V4HD uses asynchronous transaction for the purpose. The destination address is - * registered to 0x'ffff'f000'0b38 and '0b3c by asynchronous write quadlet request. The size of - * message differs between 23 and 51 quadlets. For the case, the number of mixer bus can be extended - * up to 12. - */ - -#define SNDRV_FIREWIRE_MOTU_REGISTER_DSP_METER_INPUT_COUNT 24 -#define SNDRV_FIREWIRE_MOTU_REGISTER_DSP_METER_OUTPUT_COUNT 24 -#define SNDRV_FIREWIRE_MOTU_REGISTER_DSP_METER_COUNT \ - (SNDRV_FIREWIRE_MOTU_REGISTER_DSP_METER_INPUT_COUNT + SNDRV_FIREWIRE_MOTU_REGISTER_DSP_METER_OUTPUT_COUNT) - -/** - * struct snd_firewire_motu_register_dsp_meter - the container for meter information in DSP - * controlled by register access - * @data: Signal level meters. The mapping between position and input/output channel is - * model-dependent. - * - * The structure expresses the part of DSP status for hardware meter. The u8 storage includes linear - * value for audio signal level between 0x00 and 0x7f. - */ -struct snd_firewire_motu_register_dsp_meter { - __u8 data[SNDRV_FIREWIRE_MOTU_REGISTER_DSP_METER_COUNT]; -}; - -#define SNDRV_FIREWIRE_MOTU_REGISTER_DSP_MIXER_COUNT 4 -#define SNDRV_FIREWIRE_MOTU_REGISTER_DSP_MIXER_SRC_COUNT 20 -#define SNDRV_FIREWIRE_MOTU_REGISTER_DSP_INPUT_COUNT 10 -#define SNDRV_FIREWIRE_MOTU_REGISTER_DSP_ALIGNED_INPUT_COUNT (SNDRV_FIREWIRE_MOTU_REGISTER_DSP_INPUT_COUNT + 2) - -/** - * snd_firewire_motu_register_dsp_parameter - the container for parameters of DSP controlled - * by register access. - * @mixer.source.gain: The gain of source to mixer. - * @mixer.source.pan: The L/R balance of source to mixer. - * @mixer.source.flag: The flag of source to mixer, including mute, solo. - * @mixer.source.paired_balance: The L/R balance of paired source to mixer, only for 4 pre and - * Audio Express. - * @mixer.source.paired_width: The width of paired source to mixer, only for 4 pre and - * Audio Express. - * @mixer.output.paired_volume: The volume of paired output from mixer. - * @mixer.output.paired_flag: The flag of paired output from mixer. - * @output.main_paired_volume: The volume of paired main output. - * @output.hp_paired_volume: The volume of paired hp output. - * @output.hp_paired_assignment: The source assigned to paired hp output. - * @output.reserved: Padding for 32 bit alignment for future extension. - * @line_input.boost_flag: The flags of boost for line inputs, only for 828mk2 and Traveler. - * @line_input.nominal_level_flag: The flags of nominal level for line inputs, only for 828mk2 and - * Traveler. - * @line_input.reserved: Padding for 32 bit alignment for future extension. - * @input.gain_and_invert: The value including gain and invert for input, only for Ultralite, 4 pre - * and Audio Express. - * @input.flag: The flag of input; e.g. jack detection, phantom power, and pad, only for Ultralite, - * 4 pre and Audio express. - * @reserved: Padding so that the size of structure is kept to 512 byte, but for future extension. - * - * The structure expresses the set of parameters for DSP controlled by register access. - */ -struct snd_firewire_motu_register_dsp_parameter { - struct { - struct { - __u8 gain[SNDRV_FIREWIRE_MOTU_REGISTER_DSP_MIXER_SRC_COUNT]; - __u8 pan[SNDRV_FIREWIRE_MOTU_REGISTER_DSP_MIXER_SRC_COUNT]; - __u8 flag[SNDRV_FIREWIRE_MOTU_REGISTER_DSP_MIXER_SRC_COUNT]; - __u8 paired_balance[SNDRV_FIREWIRE_MOTU_REGISTER_DSP_MIXER_SRC_COUNT]; - __u8 paired_width[SNDRV_FIREWIRE_MOTU_REGISTER_DSP_MIXER_SRC_COUNT]; - } source[SNDRV_FIREWIRE_MOTU_REGISTER_DSP_MIXER_COUNT]; - struct { - __u8 paired_volume[SNDRV_FIREWIRE_MOTU_REGISTER_DSP_MIXER_COUNT]; - __u8 paired_flag[SNDRV_FIREWIRE_MOTU_REGISTER_DSP_MIXER_COUNT]; - } output; - } mixer; - struct { - __u8 main_paired_volume; - __u8 hp_paired_volume; - __u8 hp_paired_assignment; - __u8 reserved[5]; - } output; - struct { - __u8 boost_flag; - __u8 nominal_level_flag; - __u8 reserved[6]; - } line_input; - struct { - __u8 gain_and_invert[SNDRV_FIREWIRE_MOTU_REGISTER_DSP_ALIGNED_INPUT_COUNT]; - __u8 flag[SNDRV_FIREWIRE_MOTU_REGISTER_DSP_ALIGNED_INPUT_COUNT]; - } input; - __u8 reserved[64]; -}; - -/* - * In below MOTU models, software is allowed to control their DSP by command in frame of - * asynchronous transaction to 0x'ffff'0001'0000: - * - * - 828 mk3 (FireWire only and Hybrid) - * - 896 mk3 (FireWire only and Hybrid) - * - Ultralite mk3 (FireWire only and Hybrid) - * - Traveler mk3 - * - Track 16 - * - * On the other hand, the states of hardware meter is split into specific messages included in the - * sequence of isochronous packet. ALSA firewire-motu driver gathers the message and allow userspace - * application to read it via ioctl. - */ - -#define SNDRV_FIREWIRE_MOTU_COMMAND_DSP_METER_COUNT 400 - -/** - * struct snd_firewire_motu_command_dsp_meter - the container for meter information in DSP - * controlled by command - * @data: Signal level meters. The mapping between position and signal channel is model-dependent. - * - * The structure expresses the part of DSP status for hardware meter. The 32 bit storage is - * estimated to include IEEE 764 32 bit single precision floating point (binary32) value. It is - * expected to be linear value (not logarithm) for audio signal level between 0.0 and +1.0. - */ -struct snd_firewire_motu_command_dsp_meter { -#ifdef __KERNEL__ - __u32 data[SNDRV_FIREWIRE_MOTU_COMMAND_DSP_METER_COUNT]; -#else - float data[SNDRV_FIREWIRE_MOTU_COMMAND_DSP_METER_COUNT]; -#endif -}; - #endif /* _UAPI_SOUND_FIREWIRE_H_INCLUDED */ diff --git a/original/uapi/sound/snd_ar_tokens.h b/original/uapi/sound/snd_ar_tokens.h deleted file mode 100644 index 440c072..0000000 --- a/original/uapi/sound/snd_ar_tokens.h +++ /dev/null @@ -1,208 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ - -#ifndef __SND_AR_TOKENS_H__ -#define __SND_AR_TOKENS_H__ - -#define APM_SUB_GRAPH_PERF_MODE_LOW_POWER 0x1 -#define APM_SUB_GRAPH_PERF_MODE_LOW_LATENCY 0x2 - -#define APM_SUB_GRAPH_DIRECTION_TX 0x1 -#define APM_SUB_GRAPH_DIRECTION_RX 0x2 - -/** Scenario ID Audio Playback */ -#define APM_SUB_GRAPH_SID_AUDIO_PLAYBACK 0x1 -/* Scenario ID Audio Record */ -#define APM_SUB_GRAPH_SID_AUDIO_RECORD 0x2 -/* Scenario ID Voice call. */ -#define APM_SUB_GRAPH_SID_VOICE_CALL 0x3 - -/* container capability ID Pre/Post Processing (PP) */ -#define APM_CONTAINER_CAP_ID_PP 0x1 -/* container capability ID Compression/Decompression (CD) */ -#define APM_CONTAINER_CAP_ID_CD 0x2 -/* container capability ID End Point(EP) */ -#define APM_CONTAINER_CAP_ID_EP 0x3 -/* container capability ID Offload (OLC) */ -#define APM_CONTAINER_CAP_ID_OLC 0x4 - -/* container graph position Stream */ -#define APM_CONT_GRAPH_POS_STREAM 0x1 -/* container graph position Per Stream Per Device*/ -#define APM_CONT_GRAPH_POS_PER_STR_PER_DEV 0x2 -/* container graph position Stream-Device */ -#define APM_CONT_GRAPH_POS_STR_DEV 0x3 -/* container graph position Global Device */ -#define APM_CONT_GRAPH_POS_GLOBAL_DEV 0x4 - -#define APM_PROC_DOMAIN_ID_MDSP 0x1 -#define APM_PROC_DOMAIN_ID_ADSP 0x2 -#define APM_PROC_DOMAIN_ID_SDSP 0x4 -#define APM_PROC_DOMAIN_ID_CDSP 0x5 - -#define PCM_INTERLEAVED 1 -#define PCM_DEINTERLEAVED_PACKED 2 -#define PCM_DEINTERLEAVED_UNPACKED 3 -#define AR_I2S_WS_SRC_EXTERNAL 0 -#define AR_I2S_WS_SRC_INTERNAL 1 - -enum ar_event_types { - AR_EVENT_NONE = 0, - AR_PGA_DAPM_EVENT -}; - -/* - * Kcontrol IDs - */ -#define SND_SOC_AR_TPLG_FE_BE_GRAPH_CTL_MIX 256 -#define SND_SOC_AR_TPLG_VOL_CTL 257 - -/** - * %AR_TKN_U32_SUB_GRAPH_INSTANCE_ID: Sub Graph Instance Id - * - * %AR_TKN_U32_SUB_GRAPH_PERF_MODE: Performance mode of subgraph - * APM_SUB_GRAPH_PERF_MODE_LOW_POWER = 1, - * APM_SUB_GRAPH_PERF_MODE_LOW_LATENCY = 2 - * - * %AR_TKN_U32_SUB_GRAPH_DIRECTION: Direction of subgraph - * APM_SUB_GRAPH_DIRECTION_TX = 1, - * APM_SUB_GRAPH_DIRECTION_RX = 2 - * - * %AR_TKN_U32_SUB_GRAPH_SCENARIO_ID: Scenario ID for subgraph - * APM_SUB_GRAPH_SID_AUDIO_PLAYBACK = 1, - * APM_SUB_GRAPH_SID_AUDIO_RECORD = 2, - * APM_SUB_GRAPH_SID_VOICE_CALL = 3 - * - * %AR_TKN_U32_CONTAINER_INSTANCE_ID: Container Instance ID - * - * %AR_TKN_U32_CONTAINER_CAPABILITY_ID: Container capability ID - * APM_CONTAINER_CAP_ID_PP = 1, - * APM_CONTAINER_CAP_ID_CD = 2, - * APM_CONTAINER_CAP_ID_EP = 3, - * APM_CONTAINER_CAP_ID_OLC = 4 - * - * %AR_TKN_U32_CONTAINER_STACK_SIZE: Stack size in the container. - * - * %AR_TKN_U32_CONTAINER_GRAPH_POS: Graph Position - * APM_CONT_GRAPH_POS_STREAM = 1, - * APM_CONT_GRAPH_POS_PER_STR_PER_DEV = 2, - * APM_CONT_GRAPH_POS_STR_DEV = 3, - * APM_CONT_GRAPH_POS_GLOBAL_DEV = 4 - * - * %AR_TKN_U32_CONTAINER_PROC_DOMAIN: Processor domain of container - * APM_PROC_DOMAIN_ID_MDSP = 1, - * APM_PROC_DOMAIN_ID_ADSP = 2, - * APM_PROC_DOMAIN_ID_SDSP = 4, - * APM_PROC_DOMAIN_ID_CDSP = 5 - * - * %AR_TKN_U32_MODULE_ID: Module ID - * - * %AR_TKN_U32_MODULE_INSTANCE_ID: Module Instance ID. - * - * %AR_TKN_U32_MODULE_MAX_IP_PORTS: Module maximum input ports - * - * %AR_TKN_U32_MODULE_MAX_OP_PORTS: Module maximum output ports. - * - * %AR_TKN_U32_MODULE_IN_PORTS: Number of in ports - * - * %AR_TKN_U32_MODULE_OUT_PORTS: Number of out ports. - * - * %AR_TKN_U32_MODULE_SRC_OP_PORT_ID: Source module output port ID - * - * %AR_TKN_U32_MODULE_DST_IN_PORT_ID: Destination module input port ID - * - * %AR_TKN_U32_MODULE_HW_IF_IDX: Interface index types for I2S/LPAIF - * - * %AR_TKN_U32_MODULE_HW_IF_TYPE: Interface type - * LPAIF = 0, - * LPAIF_RXTX = 1, - * LPAIF_WSA = 2, - * LPAIF_VA = 3, - * LPAIF_AXI = 4 - * - * %AR_TKN_U32_MODULE_FMT_INTERLEAVE: PCM Interleaving - * PCM_INTERLEAVED = 1, - * PCM_DEINTERLEAVED_PACKED = 2, - * PCM_DEINTERLEAVED_UNPACKED = 3 - * - * %AR_TKN_U32_MODULE_FMT_DATA: data format - * FIXED POINT = 1, - * IEC60958 PACKETIZED = 3, - * IEC60958 PACKETIZED NON LINEAR = 8, - * COMPR OVER PCM PACKETIZED = 7, - * IEC61937 PACKETIZED = 2, - * GENERIC COMPRESSED = 5 - * - * %AR_TKN_U32_MODULE_FMT_SAMPLE_RATE: sample rate - * - * %AR_TKN_U32_MODULE_FMT_BIT_DEPTH: bit depth - * - * %AR_TKN_U32_MODULE_SD_LINE_IDX: I2S serial data line idx - * I2S_SD0 = 1, - * I2S_SD1 = 2, - * I2S_SD2 = 3, - * I2S_SD3 = 4, - * I2S_QUAD01 = 5, - * I2S_QUAD23 = 6, - * I2S_6CHS = 7, - * I2S_8CHS = 8 - * - * %AR_TKN_U32_MODULE_WS_SRC: Word Select Source - * AR_I2S_WS_SRC_EXTERNAL = 0, - * AR_I2S_WS_SRC_INTERNAL = 1, - * - * %AR_TKN_U32_MODULE_FRAME_SZ_FACTOR: Frame size factor - * - * %AR_TKN_U32_MODULE_LOG_CODE: Log Module Code - * - * %AR_TKN_U32_MODULE_LOG_TAP_POINT_ID: logging tap point of this module - * - * %AR_TKN_U32_MODULE_LOG_MODE: logging mode - * LOG_WAIT = 0, - * LOG_IMMEDIATELY = 1 - * - * %AR_TKN_DAI_INDEX: dai index - * - */ - -/* DAI Tokens */ -#define AR_TKN_DAI_INDEX 1 -/* SUB GRAPH Tokens */ -#define AR_TKN_U32_SUB_GRAPH_INSTANCE_ID 2 -#define AR_TKN_U32_SUB_GRAPH_PERF_MODE 3 -#define AR_TKN_U32_SUB_GRAPH_DIRECTION 4 -#define AR_TKN_U32_SUB_GRAPH_SCENARIO_ID 5 - -/* Container Tokens */ -#define AR_TKN_U32_CONTAINER_INSTANCE_ID 100 -#define AR_TKN_U32_CONTAINER_CAPABILITY_ID 101 -#define AR_TKN_U32_CONTAINER_STACK_SIZE 102 -#define AR_TKN_U32_CONTAINER_GRAPH_POS 103 -#define AR_TKN_U32_CONTAINER_PROC_DOMAIN 104 - -/* Module Tokens */ -#define AR_TKN_U32_MODULE_ID 200 -#define AR_TKN_U32_MODULE_INSTANCE_ID 201 -#define AR_TKN_U32_MODULE_MAX_IP_PORTS 202 -#define AR_TKN_U32_MODULE_MAX_OP_PORTS 203 -#define AR_TKN_U32_MODULE_IN_PORTS 204 -#define AR_TKN_U32_MODULE_OUT_PORTS 205 -#define AR_TKN_U32_MODULE_SRC_OP_PORT_ID 206 -#define AR_TKN_U32_MODULE_DST_IN_PORT_ID 207 -#define AR_TKN_U32_MODULE_SRC_INSTANCE_ID 208 -#define AR_TKN_U32_MODULE_DST_INSTANCE_ID 209 - - -#define AR_TKN_U32_MODULE_HW_IF_IDX 250 -#define AR_TKN_U32_MODULE_HW_IF_TYPE 251 -#define AR_TKN_U32_MODULE_FMT_INTERLEAVE 252 -#define AR_TKN_U32_MODULE_FMT_DATA 253 -#define AR_TKN_U32_MODULE_FMT_SAMPLE_RATE 254 -#define AR_TKN_U32_MODULE_FMT_BIT_DEPTH 255 -#define AR_TKN_U32_MODULE_SD_LINE_IDX 256 -#define AR_TKN_U32_MODULE_WS_SRC 257 -#define AR_TKN_U32_MODULE_FRAME_SZ_FACTOR 258 -#define AR_TKN_U32_MODULE_LOG_CODE 259 -#define AR_TKN_U32_MODULE_LOG_TAP_POINT_ID 260 -#define AR_TKN_U32_MODULE_LOG_MODE 261 - -#endif /* __SND_AR_TOKENS_H__ */ diff --git a/original/uapi/sound/snd_sst_tokens.h b/original/uapi/sound/snd_sst_tokens.h index ff3748e..8ba0112 100644 --- a/original/uapi/sound/snd_sst_tokens.h +++ b/original/uapi/sound/snd_sst_tokens.h @@ -233,8 +233,6 @@ * * %SKL_TKN_U32_ASTATE_CLK_SRC: Clock source for A-State entry * - * %SKL_TKN_U32_FMT_CFG_IDX: Format config index - * * module_id and loadable flags dont have tokens as these values will be * read from the DSP FW manifest * @@ -326,9 +324,7 @@ enum SKL_TKNS { SKL_TKN_U32_ASTATE_COUNT, SKL_TKN_U32_ASTATE_KCPS, SKL_TKN_U32_ASTATE_CLK_SRC, - - SKL_TKN_U32_FMT_CFG_IDX = 96, - SKL_TKN_MAX = SKL_TKN_U32_FMT_CFG_IDX, + SKL_TKN_MAX = SKL_TKN_U32_ASTATE_CLK_SRC, }; #endif diff --git a/original/uapi/sound/sof/tokens.h b/original/uapi/sound/sof/tokens.h index b72fa38..a642bf3 100644 --- a/original/uapi/sound/sof/tokens.h +++ b/original/uapi/sound/sof/tokens.h @@ -51,7 +51,6 @@ #define SOF_TKN_SCHED_CORE 203 #define SOF_TKN_SCHED_FRAMES 204 #define SOF_TKN_SCHED_TIME_DOMAIN 205 -#define SOF_TKN_SCHED_DYNAMIC_PIPELINE 206 /* volume */ #define SOF_TKN_VOLUME_RAMP_STEP_TYPE 250 @@ -140,9 +139,4 @@ #define SOF_TKN_INTEL_HDA_RATE 1500 #define SOF_TKN_INTEL_HDA_CH 1501 -/* AFE */ -#define SOF_TKN_MEDIATEK_AFE_RATE 1600 -#define SOF_TKN_MEDIATEK_AFE_CH 1601 -#define SOF_TKN_MEDIATEK_AFE_FORMAT 1602 - #endif diff --git a/original/uapi/xen/gntdev.h b/original/uapi/xen/gntdev.h index 7a71453..9ac5515 100644 --- a/original/uapi/xen/gntdev.h +++ b/original/uapi/xen/gntdev.h @@ -47,13 +47,7 @@ struct ioctl_gntdev_grant_ref { /* * Inserts the grant references into the mapping table of an instance * of gntdev. N.B. This does not perform the mapping, which is deferred - * until mmap() is called with @index as the offset. @index should be - * considered opaque to userspace, with one exception: if no grant - * references have ever been inserted into the mapping table of this - * instance, @index will be set to 0. This is necessary to use gntdev - * with userspace APIs that expect a file descriptor that can be - * mmap()'d at offset 0, such as Wayland. If @count is set to 0, this - * ioctl will fail. + * until mmap() is called with @index as the offset. */ #define IOCTL_GNTDEV_MAP_GRANT_REF \ _IOC(_IOC_NONE, 'G', 0, sizeof(struct ioctl_gntdev_map_grant_ref)) |