| /****************************************************************************** |
| * |
| * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved. |
| * Copyright(c) 2013 - 2015 Intel Mobile Communications GmbH |
| * Copyright(c) 2016 - 2017 Intel Deutschland GmbH |
| * Copyright(c) 2018 Intel Corporation |
| * All rights reserved. |
| * |
| * 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. |
| * * Neither the name Intel Corporation nor the names of its |
| * contributors may be used to endorse or promote products derived |
| * from this software without specific prior written permission. |
| * |
| * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
| * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
| * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
| * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
| * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
| * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
| * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
| * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
| * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
| * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| * |
| *****************************************************************************/ |
| #ifndef SRC_CONNECTIVITY_WLAN_DRIVERS_THIRD_PARTY_INTEL_IWLWIFI_MVM_APIVERSION_H_ |
| #define SRC_CONNECTIVITY_WLAN_DRIVERS_THIRD_PARTY_INTEL_IWLWIFI_MVM_APIVERSION_H_ |
| |
| // Do some macro trickery so that structs that aren't really supported for a specific product |
| // will get a version number of 99. This is needed for the COMMANDS_VERSIONS_LIST TLV. |
| #define NOT_EMPTY(ver) ver |
| #define ITS_EMPTY(ver) 99 |
| #define SECOND(a, b, ...) b |
| #define IS_PROBE(args...) SECOND(args, NOT_EMPTY) |
| #define PROBE() ~, ITS_EMPTY |
| #define _EMPTY_ PROBE() |
| #define SELF_IF_NOT_EMPTY(ver) IS_PROBE(_EMPTY_##ver)(ver) |
| #define __API_VERSION(name, ver) name##_VER_##ver |
| #define _API_VERSION(name, ver) __API_VERSION(name, ver) |
| #define API_VERSION(name, ver) _API_VERSION(name, SELF_IF_NOT_EMPTY(ver)) |
| |
| #define CHANNEL_WIDTH_MSK_API_D API_VERSION(CHANNEL_WIDTH_MSK_API_D, 2) |
| |
| #define RATE_MCS_DUP_MSK_API_D API_VERSION(RATE_MCS_DUP_MSK_API_D, 2) |
| |
| #define RATE_MCS_DUP_POS_API_D API_VERSION(RATE_MCS_DUP_POS_API_D, 2) |
| |
| #define RATE_MCS_FAT_MSK_API_D API_VERSION(RATE_MCS_FAT_MSK_API_D, 2) |
| |
| #define MAX_SUPP_MCS_API_D API_VERSION(MAX_SUPP_MCS_API_D, 1) |
| |
| #define MAX_LEGAL_MCS_API_D API_VERSION(MAX_LEGAL_MCS_API_D, 1) |
| |
| #define MAX_TX_MCS_API_D API_VERSION(MAX_TX_MCS_API_D, 1) |
| |
| #define POWER_TABLE_NUM_CCK_ENTRIES_API_D API_VERSION(POWER_TABLE_NUM_CCK_ENTRIES_API_D, 1) |
| |
| #define POWER_TABLE_NUM_HT_OFDM_ENTRIES_API_D API_VERSION(POWER_TABLE_NUM_HT_OFDM_ENTRIES_API_D, 1) |
| |
| #define POWER_TABLE_TOTAL_ENTRIES_API_D API_VERSION(POWER_TABLE_TOTAL_ENTRIES_API_D, 1) |
| |
| #define MCS_API_E API_VERSION(MCS_API_E, 1) |
| |
| #define RATE_MCS_BITS_API_S API_VERSION(RATE_MCS_BITS_API_S, 3) |
| |
| #define RATE_MCS_API_S API_VERSION(RATE_MCS_API_S, 1) |
| |
| #define RATE_MCS_API_U API_VERSION(RATE_MCS_API_U, 1) |
| |
| #define IS_RATE_CCK_API_M API_VERSION(IS_RATE_CCK_API_M, 3) |
| |
| #define IS_RATE_OFDM_API_M API_VERSION(IS_RATE_OFDM_API_M, 2) |
| |
| #define IS_RATE_OFDM_LEGACY_API_M API_VERSION(IS_RATE_OFDM_LEGACY_API_M, 2) |
| |
| #define IS_RATE_OFDM_HT_API_M API_VERSION(IS_RATE_OFDM_HT_API_M, 2) |
| |
| #define IS_RATE_OFDM_VHT_API_M API_VERSION(IS_RATE_OFDM_VHT_API_M, 3) |
| |
| #define IS_RATE_OFDM_HT_VHT_API_M API_VERSION(IS_RATE_OFDM_HT_VHT_API_M, 3) |
| |
| #define GET_MIMO_INDEX_API_M API_VERSION(GET_MIMO_INDEX_API_M, 3) |
| |
| #define IS_RATE_OFDM_HT_MIMO_API_M API_VERSION(IS_RATE_OFDM_HT_MIMO_API_M, 2) |
| |
| #define IS_RATE_OFDM_HT_FAT_API_M API_VERSION(IS_RATE_OFDM_HT_FAT_API_M, 2) |
| |
| #define IS_BAD_OFDM_HT_RATE_API_M API_VERSION(IS_BAD_OFDM_HT_RATE_API_M, 3) |
| |
| #define GET_ANT_CHAIN_API_M API_VERSION(GET_ANT_CHAIN_API_M, 1) |
| |
| #define GET_ANT_CHAIN_NUM_API_M API_VERSION(GET_ANT_CHAIN_NUM_API_M, 1) |
| |
| #define IS_RATE_STBC_PRESENT_API_M API_VERSION(IS_RATE_STBC_PRESENT_API_M, 1) |
| |
| #define GET_NUM_OF_STBC_SS_API_M API_VERSION(GET_NUM_OF_STBC_SS_API_M, 1) |
| |
| #define GET_BW_INDEX_API_M API_VERSION(GET_BW_INDEX_API_M, 2) |
| |
| #define GET_DUP_INDEX_API_M API_VERSION(GET_DUP_INDEX_API_M, 2) |
| |
| #define GET_CHANNEL_WIDTH_INDEX_API_M API_VERSION(GET_CHANNEL_WIDTH_INDEX_API_M, 2) |
| |
| #define GET_GI_INDEX_API_M API_VERSION(GET_GI_INDEX_API_M, 1) |
| |
| #define GET_HT_MIMO_INDEX_API_M API_VERSION(GET_HT_MIMO_INDEX_API_M, 1) |
| |
| #define GET_NUM_OF_HT_SS_API_M API_VERSION(GET_NUM_OF_HT_SS_API_M, 1) |
| |
| #define IS_RATE_OFDM_HT2x2MIMO_API_M API_VERSION(IS_RATE_OFDM_HT2x2MIMO_API_M, 1) |
| |
| #define IS_RATE_OFDM_HT3x3MIMO_API_M API_VERSION(IS_RATE_OFDM_HT3x3MIMO_API_M, 1) |
| |
| #define IS_RATE_OFDM_HT4x4MIMO_API_M API_VERSION(IS_RATE_OFDM_HT4x4MIMO_API_M, 1) |
| |
| #define GET_HT_RATE_CODE_API_M API_VERSION(GET_HT_RATE_CODE_API_M, 1) |
| |
| #define IS_RATE_HT_STBC_SINGLE_SS_API_M API_VERSION(IS_RATE_HT_STBC_SINGLE_SS_API_M, 1) |
| |
| #define GET_NUM_OF_HT_EXT_LTF_API_M API_VERSION(GET_NUM_OF_HT_EXT_LTF_API_M, 1) |
| |
| #define GET_NUM_OF_HT_SPACE_TIME_STREAMS_API_M \ |
| API_VERSION(GET_NUM_OF_HT_SPACE_TIME_STREAMS_API_M, 1) |
| |
| #define IS_RATE_HT_HIGH_RATE_API_M API_VERSION(IS_RATE_HT_HIGH_RATE_API_M, 1) |
| |
| #define GET_VHT_MIMO_INDX_API_M API_VERSION(GET_VHT_MIMO_INDX_API_M, 1) |
| |
| #define GET_NUM_OF_VHT_SS_API_M API_VERSION(GET_NUM_OF_VHT_SS_API_M, 1) |
| |
| #define GET_VHT_RATE_CODE_API_M API_VERSION(GET_VHT_RATE_CODE_API_M, 1) |
| |
| #define GET_HT_VHT_RATE_CODE_API_M API_VERSION(GET_HT_VHT_RATE_CODE_API_M, 1) |
| |
| #define IS_VHT_STBC_PRESENT_API_M API_VERSION(IS_VHT_STBC_PRESENT_API_M, 1) |
| |
| #define GET_NUM_OF_VHT_SPACE_TIME_STREAMS_API_M \ |
| API_VERSION(GET_NUM_OF_VHT_SPACE_TIME_STREAMS_API_M, 1) |
| |
| #define IS_RATE_OFDM_LDPC_API_M API_VERSION(IS_RATE_OFDM_LDPC_API_M, 2) |
| |
| #define GET_BF_INDEX_API_M API_VERSION(GET_BF_INDEX_API_M, 1) |
| |
| #define IS_RATE_VHT_MU_API_M API_VERSION(IS_RATE_VHT_MU_API_M, 1) |
| |
| #define TLC_MNG_CONFIG_PARAMS_CMD_API_S API_VERSION(TLC_MNG_CONFIG_PARAMS_CMD_API_S, 2) |
| |
| #define TLC_MNG_CONFIG_CMD_API_S API_VERSION(TLC_MNG_CONFIG_CMD_API_S, 2) |
| |
| #endif // SRC_CONNECTIVITY_WLAN_DRIVERS_THIRD_PARTY_INTEL_IWLWIFI_MVM_APIVERSION_H_ |