Jintao 50c46e6857 Add LingYao
Change-Id: Iae6634ce565940904ee320c678d0f77473bebb90
2025-01-03 16:08:55 +08:00

269 lines
9.1 KiB
C

/* SPDX-License-Identifier: GPL-2.0-only */
#ifndef _KCOMPAT_STD_DEFS_H_
#define _KCOMPAT_STD_DEFS_H_
/* This file contains the definitions for what kernel features need backports
* for a given kernel. It targets only the standard stable kernel releases.
* It must check only LINUX_VERSION_CODE and assume the kernel is a standard
* release, and not a custom distribution.
*
* It must define HAVE_<FLAG> and NEED_<FLAG> for features. It must not
* implement any backports, instead leaving the implementation to the
* kcompat_impl.h header.
*
* If a feature can be easily implemented as a replacement macro or fully
* backported, use a NEED_<FLAG> to indicate that the feature needs
* a backport. (If NEED_<FLAG> is undefined, then no backport for that feature
* is needed).
*
* If a feature cannot be easily implemented in kcompat directly, but
* requires drivers to make specific changes such as stripping out an entire
* feature or modifying a function pointer prototype, use a HAVE_<FLAG>.
*/
#ifndef LINUX_VERSION_CODE
#error "LINUX_VERSION_CODE is undefined"
#endif
#ifndef KERNEL_VERSION
#error "KERNEL_VERSION is undefined"
#endif
/*****************************************************************************/
#if (LINUX_VERSION_CODE < KERNEL_VERSION(4,8,0))
#else /* >= 4,8,0 */
#define HAVE_TCF_EXTS_TO_LIST
#define HAVE_PCI_ALLOC_IRQ
#endif /* 4,8,0 */
/*****************************************************************************/
#if (LINUX_VERSION_CODE < KERNEL_VERSION(4,9,0))
#define NEED_JIFFIES_64_TIME_IS_MACROS
#else /* >= 4,9,0 */
#define HAVE_KTHREAD_DELAYED_API
#define HAVE_NDO_OFFLOAD_STATS
#define HAVE_INCLUDE_BITFIELD
#endif /* 4,9,0 */
/*****************************************************************************/
#if (LINUX_VERSION_CODE < KERNEL_VERSION(4,9,62))
#define NEED_IN_TASK
#else /* >= 4,9,62 */
#endif /* 4,9,62 */
/*****************************************************************************/
#if (LINUX_VERSION_CODE < KERNEL_VERSION(4,12,0))
#else /* >= 4,12,0 */
#define HAVE_NAPI_BUSY_LOOP
#endif /* 4,12,0 */
/*****************************************************************************/
#if (LINUX_VERSION_CODE < KERNEL_VERSION(4,13,0))
#else /* >= 4,13,0 */
#define HAVE_FLOW_DISSECTOR_KEY_IP
#endif /* 4,13,0 */
/*****************************************************************************/
#if (LINUX_VERSION_CODE < KERNEL_VERSION(4,15,0))
#define NEED_TC_SETUP_QDISC_MQPRIO
#define NEED_NETDEV_XDP_STRUCT
#else /* >= 4,15,0 */
#define HAVE_TC_CB_AND_SETUP_QDISC_MQPRIO
#define HAVE_NDO_BPF
#endif /* 4,15,0 */
/*****************************************************************************/
#if (LINUX_VERSION_CODE < KERNEL_VERSION(4,16,0))
#define NEED_TC_CLS_CAN_OFFLOAD_AND_CHAIN0
#else /* >= 4,16,0 */
#define HAVE_XDP_BUFF_RXQ
#define HAVE_XDP_RXQ_INFO_REG_3_PARAMS
#endif /* 4,16,0 */
/*****************************************************************************/
#if (LINUX_VERSION_CODE < KERNEL_VERSION(4,17,0))
#define NEED_CONVERT_ART_NS_TO_TSC
#else /* >= 4,17,0 */
#endif /* 4,17,0 */
/*****************************************************************************/
#if (LINUX_VERSION_CODE < KERNEL_VERSION(4,18,0))
#define NEED_MACVLAN_ACCEL_PRIV
#define NEED_MACVLAN_RELEASE_L2FW_OFFLOAD
#define NEED_MACVLAN_SUPPORTS_DEST_FILTER
#else /* >= 4,18,0 */
#define HAVE_DEVLINK_PORT_ATTRS_SET_PORT_FLAVOUR
#endif /* 4,18,0 */
/*****************************************************************************/
#if (LINUX_VERSION_CODE < KERNEL_VERSION(4,19,0))
#define NEED_IDA_ALLOC_MIN_MAX_RANGE_FREE
#else /* >= 4,19,0 */
#undef HAVE_TCF_EXTS_TO_LIST
#define HAVE_TCF_EXTS_FOR_EACH_ACTION
#define HAVE_TC_ETF_QOPT_OFFLOAD
#define HAVE_FLOW_DISSECTOR_KEY_ENC_IP
#endif /* 4,19,0 */
/*****************************************************************************/
#if (LINUX_VERSION_CODE < KERNEL_VERSION(4,20,0))
#define NEED_NETDEV_TX_SENT_QUEUE
#else /* >= 4.20.0 */
#define HAVE_VXLAN_TYPE
#define HAVE_LINKMODE
#endif /* 4.20.0 */
/*****************************************************************************/
#if (LINUX_VERSION_CODE < KERNEL_VERSION(5,0,0))
#define NEED_INDIRECT_CALL_WRAPPER_MACROS
#else /* >= 5.0.0 */
#define HAVE_GRETAP_TYPE
#define HAVE_GENEVE_TYPE
#define HAVE_INDIRECT_CALL_WRAPPER_HEADER
#endif /* 5.0.0 */
/*****************************************************************************/
#if (LINUX_VERSION_CODE < KERNEL_VERSION(5,1,0))
#define NEED_FLOW_MATCH
#else /* >= 5.1.0 */
#define HAVE_ETHTOOL_200G_BITS
#define HAVE_ETHTOOL_NEW_100G_BITS
#endif /* 5.1.0 */
/*****************************************************************************/
#if (LINUX_VERSION_CODE < KERNEL_VERSION(5,2,0))
#else /* >= 5.2.0 */
#define HAVE_DEVLINK_PORT_ATTRS_SET_SWITCH_ID
#endif /* 5.2.0 */
/*****************************************************************************/
#if (LINUX_VERSION_CODE < KERNEL_VERSION(5,3,0))
#define NEED_DEVLINK_FLASH_UPDATE_STATUS_NOTIFY
#else /* >= 5.3.0 */
#endif /* 5.3.0 */
/*****************************************************************************/
#if (LINUX_VERSION_CODE < KERNEL_VERSION(5,4,0))
#define NEED_SKB_FRAG_OFF_ADD
#define NEED_SKB_FRAG_OFF
#if (LINUX_VERSION_CODE > KERNEL_VERSION(4,14,241) && \
LINUX_VERSION_CODE < KERNEL_VERSION(4,15,0))
#undef NEED_SKB_FRAG_OFF
#endif /* > 4.14.241 && < 4.15.0 */
#if (LINUX_VERSION_CODE > KERNEL_VERSION(4,19,200) && \
LINUX_VERSION_CODE < KERNEL_VERSION(4,20,0))
#undef NEED_SKB_FRAG_OFF
#endif /* > 4.19.200 && < 4.20.0 */
#define NEED_FLOW_INDR_BLOCK_CB_REGISTER
#else /* >= 5.4.0 */
#define HAVE_FLOW_INDR_BLOCK_LOCK
#define HAVE_XSK_UNALIGNED_CHUNK_PLACEMENT
#endif /* 5.4.0 */
/*****************************************************************************/
#if (LINUX_VERSION_CODE < KERNEL_VERSION(5,7,0))
#define NEED_DEVLINK_REGION_CREATE_OPS
#define NEED_CPU_LATENCY_QOS_RENAME
#else /* >= 5.7.0 */
#define HAVE_PTP_FIND_PIN_UNLOCKED
#endif /* 5.7.0 */
/*****************************************************************************/
#if (LINUX_VERSION_CODE < KERNEL_VERSION(5,8,0))
#define NEED_XSK_UMEM_GET_RX_FRAME_SIZE
#else /* >= 5.8.0 */
#undef HAVE_XSK_UNALIGNED_CHUNK_PLACEMENT
#define HAVE_RT_IRQ_SCHED_FIX
#endif /* 5.8.0 */
/*****************************************************************************/
#if (LINUX_VERSION_CODE < KERNEL_VERSION(5,9,0))
#define NEED_DEVLINK_PORT_ATTRS_SET_STRUCT
#define HAVE_XDP_QUERY_PROG
#define NEED_INDIRECT_CALL_3_AND_4
#else /* >= 5.9.0 */
#define HAVE_TASKLET_SETUP
#endif /* 5.9.0 */
/*****************************************************************************/
#if (LINUX_VERSION_CODE < KERNEL_VERSION(5,10,0))
#define NEED_DEVLINK_FLASH_UPDATE_TIMEOUT_NOTIFY
#define NEED_XSK_BUFF_DMA_SYNC_FOR_CPU
#define NEED_XSK_BUFF_POOL_RENAME
#else /* >= 5.10.0 */
#define HAVE_UDP_TUNNEL_NIC_SHARED
#define HAVE_NETDEV_BPF_XSK_POOL
#endif /* 5.10.0 */
/*****************************************************************************/
#if (LINUX_VERSION_CODE < KERNEL_VERSION(5,11,0))
#else /* >= 5.11.0 */
#define HAVE_XSK_BATCHED_DESCRIPTOR_INTERFACES
#define HAVE_PASID_SUPPORT
#undef HAVE_XDP_RXQ_INFO_REG_3_PARAMS
#define HAVE_XSK_TX_PEEK_RELEASE_DESC_BATCH_3_PARAMS
#endif /* 5.11.0 */
/*****************************************************************************/
#if (LINUX_VERSION_CODE < KERNEL_VERSION(5,12,0))
#define NEED_EXPORT_INDIRECT_CALLABLE
#else /* >= 5.12.0 */
#define HAVE_DEVLINK_OPS_CREATE_DEL
#endif /* 5.12.0 */
/*****************************************************************************/
#if (LINUX_VERSION_CODE < KERNEL_VERSION(5,13,0))
/* HAVE_KOBJ_IN_MDEV_PARENT_OPS_CREATE
*
* create api changed as part of the commit c2ef2f50ad0c( vfio/mdev: Remove
* kobj from mdev_parent_ops->create())
*
* if flag is defined use the old API else new API
*/
#define HAVE_KOBJ_IN_MDEV_PARENT_OPS_CREATE
#define HAVE_DEV_IN_MDEV_API
#else /* >= 5.13.0 */
#define HAVE_XPS_MAP_TYPE
#endif /* 5.13.0 */
/*****************************************************************************/
#if (LINUX_VERSION_CODE < KERNEL_VERSION(5,14,0))
#else /* >= 5.14.0 */
#define HAVE_TTY_WRITE_ROOM_UINT
#endif /* 5.14.0 */
/*****************************************************************************/
#if (LINUX_VERSION_CODE < KERNEL_VERSION(5,15,0))
#define NEED_DEVLINK_ALLOC_SETS_DEV
#else /* >= 5.15.0 */
#define HAVE_DEVICE_IN_MDEV_PARENT_OPS
#define NEED_PCI_IOV_VF_ID
#define HAVE_DEVLINK_SET_STATE_3_PARAM
#endif /* 5.15.0 */
/*****************************************************************************/
#if (LINUX_VERSION_CODE < KERNEL_VERSION(5,16,0))
#else /* >= 5.16.0 */
#undef HAVE_PASID_SUPPORT
#define HAVE_XSK_BATCHED_RX_ALLOC
#endif /* 5.16.0 */
/*****************************************************************************/
#if (LINUX_VERSION_CODE < KERNEL_VERSION(5,18,0))
#else /* >=5.18.0*/
#undef NEED_PCI_IOV_VF_ID
#define HAVE_GTP_SUPPORT
#undef HAVE_XSK_TX_PEEK_RELEASE_DESC_BATCH_3_PARAMS
#endif /* 5.18.0 */
/*****************************************************************************/
#if (LINUX_VERSION_CODE < KERNEL_VERSION(6,1,0))
#else /* >=6.1.0 */
#define HAVE_FLOW_DISSECTOR_KEY_L2TPV3
#define HAVE_TTY_TERMIOS_CONST_STRUCT
#endif /* 6.1.0 */
#endif /* _KCOMPAT_STD_DEFS_H_ */