root/usr/src/uts/common/io/iwn/if_iwncompat.h
/*
 * This file and its contents are supplied under the terms of the
 * Common Development and Distribution License ("CDDL"), version 1.0.
 * You may only use this file in accordance with the terms of version
 * 1.0 of the CDDL.
 *
 * A full copy of the text of the CDDL should have accompanied this
 * source.  A copy of the CDDL is also available via the Internet at
 * http://www.illumos.org/license/CDDL.
 */

/*
 * Copyright 2016 Hans Rosenfeld <rosenfeld@grumpf.hope-2000.org>
 */

#ifndef _IF_IWNCOMPAT_H
#define _IF_IWNCOMPAT_H

/* XXX Added for NetBSD */
#define IEEE80211_NO_HT

/*
 * QoS  definitions
 */

#define AC_NUM          (4)     /* the number of access category */

/*
 * index of every AC in firmware
 */
#define QOS_AC_BK       (0)
#define QOS_AC_BE       (1)
#define QOS_AC_VI       (2)
#define QOS_AC_VO       (3)
#define QOS_AC_INVALID  (-1)

#define QOS_CW_RANGE_MIN        (0)     /* exponential of 2 */
#define QOS_CW_RANGE_MAX        (15)    /* exponential of 2 */
#define QOS_TXOP_MIN            (0)     /* unit of 32 microsecond */
#define QOS_TXOP_MAX            (255)   /* unit of 32 microsecond */
#define QOS_AIFSN_MIN           (2)
#define QOS_AIFSN_MAX           (15)    /* undefined */

/*
 * masks for flags of QoS parameter command
 */
#define QOS_PARAM_FLG_UPDATE_EDCA       (0x01)
#define QOS_PARAM_FLG_TGN               (0x02)

/*
 * index of TX queue for every AC
 */
#define QOS_AC_BK_TO_TXQ        (3)
#define QOS_AC_BE_TO_TXQ        (2)
#define QOS_AC_VI_TO_TXQ        (1)
#define QOS_AC_VO_TO_TXQ        (0)
#define TXQ_FOR_AC_MIN          (0)
#define TXQ_FOR_AC_MAX          (3)
#define TXQ_FOR_AC_INVALID      (-1)
#define NON_QOS_TXQ             QOS_AC_BE_TO_TXQ
#define QOS_TXQ_FOR_MGT         QOS_AC_VO_TO_TXQ

#define WME_TID_MIN     (0)
#define WME_TID_MAX     (7)
#define WME_TID_INVALID ((uint8_t)-1)

#define PCI_VENDOR_INTEL        0x8086          /* Intel */

/* WiFi Link 1000 */
#define PCI_PRODUCT_INTEL_WIFI_LINK_1000_1      0x0083
#define PCI_PRODUCT_INTEL_WIFI_LINK_1000_2      0x0084

/* Centrino Wireless-N 100 */
#define PCI_PRODUCT_INTEL_WIFI_LINK_100_1       0x08ae
#define PCI_PRODUCT_INTEL_WIFI_LINK_100_2       0x08af

/* Centrino Wireless-N 105 */
#define PCI_PRODUCT_INTEL_WIFI_LINK_105_1       0x0894
#define PCI_PRODUCT_INTEL_WIFI_LINK_105_2       0x0895

/* Centrino Wireless-N 130 */
#define PCI_PRODUCT_INTEL_WIFI_LINK_130_1       0x0896
#define PCI_PRODUCT_INTEL_WIFI_LINK_130_2       0x0897

/* Centrino Wireless-N 135 */
#define PCI_PRODUCT_INTEL_WIFI_LINK_135_1       0x0892
#define PCI_PRODUCT_INTEL_WIFI_LINK_135_2       0x0893

/* Centrino Wireless-N 1030 */
#define PCI_PRODUCT_INTEL_WIFI_LINK_1030_1      0x008a
#define PCI_PRODUCT_INTEL_WIFI_LINK_1030_2      0x008b

/* Centrino Wireless-N 2200 */
#define PCI_PRODUCT_INTEL_WIFI_LINK_2200_1      0x0890
#define PCI_PRODUCT_INTEL_WIFI_LINK_2200_2      0x0891

/* Centrino Wireless-N 2230 */
#define PCI_PRODUCT_INTEL_WIFI_LINK_2230_1      0x0887
#define PCI_PRODUCT_INTEL_WIFI_LINK_2230_2      0x0888

/* Wireless WiFi Link 4965 */
#define PCI_PRODUCT_INTEL_WIFI_LINK_4965_1      0x4229
#define PCI_PRODUCT_INTEL_WIFI_LINK_4965_2      0x4230
#define PCI_PRODUCT_INTEL_WIFI_LINK_4965_3      0x422d
#define PCI_PRODUCT_INTEL_WIFI_LINK_4965_4      0x4233

/* WiFi Link 5100 */
#define PCI_PRODUCT_INTEL_WIFI_LINK_5100_1      0x4232
#define PCI_PRODUCT_INTEL_WIFI_LINK_5100_2      0x4237

/* WiFi Link 5150 */
#define PCI_PRODUCT_INTEL_WIFI_LINK_5150_1      0x423c
#define PCI_PRODUCT_INTEL_WIFI_LINK_5150_2      0x423d

/* WiFi Link 5300 */
#define PCI_PRODUCT_INTEL_WIFI_LINK_5300_1      0x4235
#define PCI_PRODUCT_INTEL_WIFI_LINK_5300_2      0x4236

/* WiFi Link 5350 */
#define PCI_PRODUCT_INTEL_WIFI_LINK_5350_1      0x423a
#define PCI_PRODUCT_INTEL_WIFI_LINK_5350_2      0x423b

/* Centrino Advanced-N 6200 */
#define PCI_PRODUCT_INTEL_WIFI_LINK_6000_IPA_1  0x422c
#define PCI_PRODUCT_INTEL_WIFI_LINK_6000_IPA_2  0x4239

/* Centrino Advanced-N 6205 */
#define PCI_PRODUCT_INTEL_WIFI_LINK_6005_2X2_1  0x0082
#define PCI_PRODUCT_INTEL_WIFI_LINK_6005_2X2_2  0x0085

/* Centrino Advanced-N 6230 */
#define PCI_PRODUCT_INTEL_WIFI_LINK_6230_1      0x0090
#define PCI_PRODUCT_INTEL_WIFI_LINK_6230_2      0x0091

/* Centrino Advanced-N 6235 */
#define PCI_PRODUCT_INTEL_WIFI_LINK_6235        0x088e
#define PCI_PRODUCT_INTEL_WIFI_LINK_6235_2      0x088f

/* Centrino Advanced-N 6250 */
#define PCI_PRODUCT_INTEL_WIFI_LINK_6050_2X2_1  0x0087
#define PCI_PRODUCT_INTEL_WIFI_LINK_6050_2X2_2  0x0089

/* Centrino Ultimate-N 6300 */
#define PCI_PRODUCT_INTEL_WIFI_LINK_6000_3X3_1  0x422b
#define PCI_PRODUCT_INTEL_WIFI_LINK_6000_3X3_2  0x4238

#define __inline        inline
#define __arraycount(x) ARRAY_SIZE(x)
#define abs(x)          ABS(x)

#define le16toh(x) LE_16(x)
#define htole16(x) LE_16(x)
#define le32toh(x) LE_32(x)
#define htole32(x) LE_32(x)
#define le64toh(x) LE_64(x)
#define htole64(x) LE_64(x)

#define IWN_SUCCESS             0
#define IWN_FAIL                EIO

#endif  /* _IF_IWNCOMPAT_H */