/* * Copyright (c) 2015-2016 Quantenna Communications, Inc. * * 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. * */ #include #include "qlink_util.h" u16 qlink_iface_type_mask_to_nl(u16 qlink_mask) { u16 result = 0; if (qlink_mask & QLINK_IFTYPE_AP) result |= BIT(NL80211_IFTYPE_AP); if (qlink_mask & QLINK_IFTYPE_STATION) result |= BIT(NL80211_IFTYPE_STATION); if (qlink_mask & QLINK_IFTYPE_ADHOC) result |= BIT(NL80211_IFTYPE_ADHOC); if (qlink_mask & QLINK_IFTYPE_MONITOR) result |= BIT(NL80211_IFTYPE_MONITOR); if (qlink_mask & QLINK_IFTYPE_WDS) result |= BIT(NL80211_IFTYPE_WDS); return result; } u8 qlink_chan_width_mask_to_nl(u16 qlink_mask) { u8 result = 0; if (qlink_mask & QLINK_CHAN_WIDTH_5) result |= BIT(NL80211_CHAN_WIDTH_5); if (qlink_mask & QLINK_CHAN_WIDTH_10) result |= BIT(NL80211_CHAN_WIDTH_10); if (qlink_mask & QLINK_CHAN_WIDTH_20_NOHT) result |= BIT(NL80211_CHAN_WIDTH_20_NOHT); if (qlink_mask & QLINK_CHAN_WIDTH_20) result |= BIT(NL80211_CHAN_WIDTH_20); if (qlink_mask & QLINK_CHAN_WIDTH_40) result |= BIT(NL80211_CHAN_WIDTH_40); if (qlink_mask & QLINK_CHAN_WIDTH_80) result |= BIT(NL80211_CHAN_WIDTH_80); if (qlink_mask & QLINK_CHAN_WIDTH_80P80) result |= BIT(NL80211_CHAN_WIDTH_80P80); if (qlink_mask & QLINK_CHAN_WIDTH_160) result |= BIT(NL80211_CHAN_WIDTH_160); return result; }