# SPDX-License-Identifier: GPL-2.0

# Try to include uAPI headers from the kernel uapi/ path.
# Most code under tools/ requires the respective kernel uAPI headers
# to be copied to tools/include. The duplication is annoying.
# All the family headers should be self-contained. We avoid the copying
# by selectively including just the uAPI header of the family directly
# from the kernel sources.

UAPI_PATH:=../../../../include/uapi/

# scripts/headers_install.sh strips "_UAPI" from header guards so we
# need the explicit -D matching what's in /usr, to avoid multiple definitions.

get_hdr_inc=-D$(1) -include $(UAPI_PATH)/linux/$(2)

CFLAGS_devlink:=$(call get_hdr_inc,_LINUX_DEVLINK_H_,devlink.h)
CFLAGS_dpll:=$(call get_hdr_inc,_LINUX_DPLL_H,dpll.h)
CFLAGS_ethtool:=$(call get_hdr_inc,_LINUX_ETHTOOL_NETLINK_H_,ethtool_netlink.h)
CFLAGS_handshake:=$(call get_hdr_inc,_LINUX_HANDSHAKE_H,handshake.h)
CFLAGS_mptcp_pm:=$(call get_hdr_inc,_LINUX_MPTCP_PM_H,mptcp_pm.h)
CFLAGS_netdev:=$(call get_hdr_inc,_LINUX_NETDEV_H,netdev.h)
CFLAGS_nlctrl:=$(call get_hdr_inc,__LINUX_GENERIC_NETLINK_H,genetlink.h)
CFLAGS_nfsd:=$(call get_hdr_inc,_LINUX_NFSD_NETLINK_H,nfsd_netlink.h)
CFLAGS_ovs_datapath:=$(call get_hdr_inc,__LINUX_OPENVSWITCH_H,openvswitch.h)
CFLAGS_ovs_flow:=$(call get_hdr_inc,__LINUX_OPENVSWITCH_H,openvswitch.h)
CFLAGS_ovs_vport:=$(call get_hdr_inc,__LINUX_OPENVSWITCH_H,openvswitch.h)
