Lines Matching refs:pos
813 const u8 *pos = start; in ieee802_11_parse_elems_crc() local
827 id = *pos++; in ieee802_11_parse_elems_crc()
828 elen = *pos++; in ieee802_11_parse_elems_crc()
877 pos += elen; in ieee802_11_parse_elems_crc()
884 crc = crc32_be(crc, pos - 2, elen + 2); in ieee802_11_parse_elems_crc()
894 elems->lnk_id = (void *)(pos - 2); in ieee802_11_parse_elems_crc()
901 elems->ch_sw_timing = (void *)pos; in ieee802_11_parse_elems_crc()
904 elems->ext_capab = pos; in ieee802_11_parse_elems_crc()
908 elems->ssid = pos; in ieee802_11_parse_elems_crc()
912 elems->supp_rates = pos; in ieee802_11_parse_elems_crc()
917 elems->ds_params = pos; in ieee802_11_parse_elems_crc()
923 elems->tim = (void *)pos; in ieee802_11_parse_elems_crc()
929 elems->challenge = pos; in ieee802_11_parse_elems_crc()
933 if (elen >= 4 && pos[0] == 0x00 && pos[1] == 0x50 && in ieee802_11_parse_elems_crc()
934 pos[2] == 0xf2) { in ieee802_11_parse_elems_crc()
938 crc = crc32_be(crc, pos - 2, elen + 2); in ieee802_11_parse_elems_crc()
940 if (elen >= 5 && pos[3] == 2) { in ieee802_11_parse_elems_crc()
942 if (pos[4] == 0) { in ieee802_11_parse_elems_crc()
943 elems->wmm_info = pos; in ieee802_11_parse_elems_crc()
945 } else if (pos[4] == 1) { in ieee802_11_parse_elems_crc()
946 elems->wmm_param = pos; in ieee802_11_parse_elems_crc()
953 elems->rsn = pos; in ieee802_11_parse_elems_crc()
958 elems->erp_info = pos; in ieee802_11_parse_elems_crc()
963 elems->ext_supp_rates = pos; in ieee802_11_parse_elems_crc()
968 elems->ht_cap_elem = (void *)pos; in ieee802_11_parse_elems_crc()
974 elems->ht_operation = (void *)pos; in ieee802_11_parse_elems_crc()
980 elems->vht_cap_elem = (void *)pos; in ieee802_11_parse_elems_crc()
986 elems->vht_operation = (void *)pos; in ieee802_11_parse_elems_crc()
992 elems->opmode_notif = pos; in ieee802_11_parse_elems_crc()
997 elems->mesh_id = pos; in ieee802_11_parse_elems_crc()
1002 elems->mesh_config = (void *)pos; in ieee802_11_parse_elems_crc()
1007 elems->peering = pos; in ieee802_11_parse_elems_crc()
1012 elems->awake_window = (void *)pos; in ieee802_11_parse_elems_crc()
1015 elems->preq = pos; in ieee802_11_parse_elems_crc()
1019 elems->prep = pos; in ieee802_11_parse_elems_crc()
1023 elems->perr = pos; in ieee802_11_parse_elems_crc()
1028 elems->rann = (void *)pos; in ieee802_11_parse_elems_crc()
1037 elems->ch_switch_ie = (void *)pos; in ieee802_11_parse_elems_crc()
1044 elems->ext_chansw_ie = (void *)pos; in ieee802_11_parse_elems_crc()
1051 elems->sec_chan_offs = (void *)pos; in ieee802_11_parse_elems_crc()
1059 elems->mesh_chansw_params_ie = (void *)pos; in ieee802_11_parse_elems_crc()
1067 elems->wide_bw_chansw_ie = (void *)pos; in ieee802_11_parse_elems_crc()
1080 pos, elen); in ieee802_11_parse_elems_crc()
1090 elems->country_elem = pos; in ieee802_11_parse_elems_crc()
1098 elems->pwr_constr_elem = pos; in ieee802_11_parse_elems_crc()
1111 if (pos[0] != 0x00 || pos[1] != 0x40 || in ieee802_11_parse_elems_crc()
1112 pos[2] != 0x96 || pos[3] != 0x00) in ieee802_11_parse_elems_crc()
1121 crc = crc32_be(crc, pos - 2, elen + 2); in ieee802_11_parse_elems_crc()
1123 elems->cisco_dtpc_elem = pos; in ieee802_11_parse_elems_crc()
1127 elems->timeout_int = (void *)pos; in ieee802_11_parse_elems_crc()
1141 pos += elen; in ieee802_11_parse_elems_crc()
1357 u8 *pos = buffer, *end = buffer + buffer_len; in ieee80211_build_preq_ies_band() local
1390 if (end - pos < 2 + supp_rates_len) in ieee80211_build_preq_ies_band()
1392 *pos++ = WLAN_EID_SUPP_RATES; in ieee80211_build_preq_ies_band()
1393 *pos++ = supp_rates_len; in ieee80211_build_preq_ies_band()
1394 memcpy(pos, rates, supp_rates_len); in ieee80211_build_preq_ies_band()
1395 pos += supp_rates_len; in ieee80211_build_preq_ies_band()
1408 if (end - pos < noffset - *offset) in ieee80211_build_preq_ies_band()
1410 memcpy(pos, ie + *offset, noffset - *offset); in ieee80211_build_preq_ies_band()
1411 pos += noffset - *offset; in ieee80211_build_preq_ies_band()
1417 if (end - pos < 2 + ext_rates_len) in ieee80211_build_preq_ies_band()
1419 *pos++ = WLAN_EID_EXT_SUPP_RATES; in ieee80211_build_preq_ies_band()
1420 *pos++ = ext_rates_len; in ieee80211_build_preq_ies_band()
1421 memcpy(pos, rates + supp_rates_len, ext_rates_len); in ieee80211_build_preq_ies_band()
1422 pos += ext_rates_len; in ieee80211_build_preq_ies_band()
1426 if (end - pos < 3) in ieee80211_build_preq_ies_band()
1428 *pos++ = WLAN_EID_DS_PARAMS; in ieee80211_build_preq_ies_band()
1429 *pos++ = 1; in ieee80211_build_preq_ies_band()
1430 *pos++ = ieee80211_frequency_to_channel( in ieee80211_build_preq_ies_band()
1447 if (end - pos < noffset - *offset) in ieee80211_build_preq_ies_band()
1449 memcpy(pos, ie + *offset, noffset - *offset); in ieee80211_build_preq_ies_band()
1450 pos += noffset - *offset; in ieee80211_build_preq_ies_band()
1455 if (end - pos < 2 + sizeof(struct ieee80211_ht_cap)) in ieee80211_build_preq_ies_band()
1457 pos = ieee80211_ie_build_ht_cap(pos, &sband->ht_cap, in ieee80211_build_preq_ies_band()
1487 if (end - pos < noffset - *offset) in ieee80211_build_preq_ies_band()
1489 memcpy(pos, ie + *offset, noffset - *offset); in ieee80211_build_preq_ies_band()
1490 pos += noffset - *offset; in ieee80211_build_preq_ies_band()
1505 if (end - pos < 2 + sizeof(struct ieee80211_vht_cap)) in ieee80211_build_preq_ies_band()
1507 pos = ieee80211_ie_build_vht_cap(pos, &sband->vht_cap, in ieee80211_build_preq_ies_band()
1511 return pos - buffer; in ieee80211_build_preq_ies_band()
1514 return pos - buffer; in ieee80211_build_preq_ies_band()
1524 size_t pos = 0, old_pos = 0, custom_ie_offset = 0; in ieee80211_build_preq_ies() local
1531 pos += ieee80211_build_preq_ies_band(local, in ieee80211_build_preq_ies()
1532 buffer + pos, in ieee80211_build_preq_ies()
1533 buffer_len - pos, in ieee80211_build_preq_ies()
1539 ie_desc->len[i] = pos - old_pos; in ieee80211_build_preq_ies()
1540 old_pos = pos; in ieee80211_build_preq_ies()
1546 if (WARN_ONCE(buffer_len - pos < ie_len - custom_ie_offset, in ieee80211_build_preq_ies()
1548 return pos; in ieee80211_build_preq_ies()
1549 memcpy(buffer + pos, ie + custom_ie_offset, in ieee80211_build_preq_ies()
1551 ie_desc->common_ies = buffer + pos; in ieee80211_build_preq_ies()
1553 pos += ie_len - custom_ie_offset; in ieee80211_build_preq_ies()
1556 return pos; in ieee80211_build_preq_ies()
2202 size_t pos = offset; in ieee80211_ie_split_vendor() local
2204 while (pos < ielen && ies[pos] != WLAN_EID_VENDOR_SPECIFIC) in ieee80211_ie_split_vendor()
2205 pos += 2 + ies[pos + 1]; in ieee80211_ie_split_vendor()
2207 return pos; in ieee80211_ie_split_vendor()
2250 u8 *ieee80211_ie_build_ht_cap(u8 *pos, struct ieee80211_sta_ht_cap *ht_cap, in ieee80211_ie_build_ht_cap() argument
2255 *pos++ = WLAN_EID_HT_CAPABILITY; in ieee80211_ie_build_ht_cap()
2256 *pos++ = sizeof(struct ieee80211_ht_cap); in ieee80211_ie_build_ht_cap()
2257 memset(pos, 0, sizeof(struct ieee80211_ht_cap)); in ieee80211_ie_build_ht_cap()
2261 memcpy(pos, &tmp, sizeof(u16)); in ieee80211_ie_build_ht_cap()
2262 pos += sizeof(u16); in ieee80211_ie_build_ht_cap()
2265 *pos++ = ht_cap->ampdu_factor | in ieee80211_ie_build_ht_cap()
2270 memcpy(pos, &ht_cap->mcs, sizeof(ht_cap->mcs)); in ieee80211_ie_build_ht_cap()
2271 pos += sizeof(ht_cap->mcs); in ieee80211_ie_build_ht_cap()
2274 pos += sizeof(__le16); in ieee80211_ie_build_ht_cap()
2277 pos += sizeof(__le32); in ieee80211_ie_build_ht_cap()
2280 pos += sizeof(u8); in ieee80211_ie_build_ht_cap()
2282 return pos; in ieee80211_ie_build_ht_cap()
2285 u8 *ieee80211_ie_build_vht_cap(u8 *pos, struct ieee80211_sta_vht_cap *vht_cap, in ieee80211_ie_build_vht_cap() argument
2290 *pos++ = WLAN_EID_VHT_CAPABILITY; in ieee80211_ie_build_vht_cap()
2291 *pos++ = sizeof(struct ieee80211_vht_cap); in ieee80211_ie_build_vht_cap()
2292 memset(pos, 0, sizeof(struct ieee80211_vht_cap)); in ieee80211_ie_build_vht_cap()
2296 memcpy(pos, &tmp, sizeof(u32)); in ieee80211_ie_build_vht_cap()
2297 pos += sizeof(u32); in ieee80211_ie_build_vht_cap()
2300 memcpy(pos, &vht_cap->vht_mcs, sizeof(vht_cap->vht_mcs)); in ieee80211_ie_build_vht_cap()
2301 pos += sizeof(vht_cap->vht_mcs); in ieee80211_ie_build_vht_cap()
2303 return pos; in ieee80211_ie_build_vht_cap()
2306 u8 *ieee80211_ie_build_ht_oper(u8 *pos, struct ieee80211_sta_ht_cap *ht_cap, in ieee80211_ie_build_ht_oper() argument
2312 *pos++ = WLAN_EID_HT_OPERATION; in ieee80211_ie_build_ht_oper()
2313 *pos++ = sizeof(struct ieee80211_ht_operation); in ieee80211_ie_build_ht_oper()
2314 ht_oper = (struct ieee80211_ht_operation *)pos; in ieee80211_ie_build_ht_oper()
2344 return pos + sizeof(struct ieee80211_ht_operation); in ieee80211_ie_build_ht_oper()
2347 u8 *ieee80211_ie_build_vht_oper(u8 *pos, struct ieee80211_sta_vht_cap *vht_cap, in ieee80211_ie_build_vht_oper() argument
2352 *pos++ = WLAN_EID_VHT_OPERATION; in ieee80211_ie_build_vht_oper()
2353 *pos++ = sizeof(struct ieee80211_vht_operation); in ieee80211_ie_build_vht_oper()
2354 vht_oper = (struct ieee80211_vht_operation *)pos; in ieee80211_ie_build_vht_oper()
2379 return pos + sizeof(struct ieee80211_vht_operation); in ieee80211_ie_build_vht_oper()
2481 u8 i, rates, *pos; in ieee80211_add_srates_ie() local
2500 pos = skb_put(skb, rates + 2); in ieee80211_add_srates_ie()
2501 *pos++ = WLAN_EID_SUPP_RATES; in ieee80211_add_srates_ie()
2502 *pos++ = rates; in ieee80211_add_srates_ie()
2513 *pos++ = basic | (u8) rate; in ieee80211_add_srates_ie()
2526 u8 i, exrates, *pos; in ieee80211_add_ext_srates_ie() local
2550 pos = skb_put(skb, exrates + 2); in ieee80211_add_ext_srates_ie()
2551 *pos++ = WLAN_EID_EXT_SUPP_RATES; in ieee80211_add_ext_srates_ie()
2552 *pos++ = exrates; in ieee80211_add_ext_srates_ie()
2562 *pos++ = basic | (u8) rate; in ieee80211_add_ext_srates_ie()
2839 u8 *pos; in ieee80211_send_action_csa() local
2868 pos = skb_put(skb, 5); in ieee80211_send_action_csa()
2869 *pos++ = WLAN_EID_CHANNEL_SWITCH; /* EID */ in ieee80211_send_action_csa()
2870 *pos++ = 3; /* IE length */ in ieee80211_send_action_csa()
2871 *pos++ = csa_settings->block_tx ? 1 : 0; /* CSA mode */ in ieee80211_send_action_csa()
2873 *pos++ = ieee80211_frequency_to_channel(freq); /* channel */ in ieee80211_send_action_csa()
2874 *pos++ = csa_settings->count; /* count */ in ieee80211_send_action_csa()
2880 *pos++ = WLAN_EID_SECONDARY_CHANNEL_OFFSET; /* EID */ in ieee80211_send_action_csa()
2881 *pos++ = 1; /* IE length */ in ieee80211_send_action_csa()
2884 *pos++ = IEEE80211_HT_PARAM_CHA_SEC_ABOVE; in ieee80211_send_action_csa()
2886 *pos++ = IEEE80211_HT_PARAM_CHA_SEC_BELOW; in ieee80211_send_action_csa()
2893 *pos++ = WLAN_EID_CHAN_SWITCH_PARAM; /* EID */ in ieee80211_send_action_csa()
2894 *pos++ = 6; /* IE length */ in ieee80211_send_action_csa()
2895 *pos++ = sdata->u.mesh.mshcfg.dot11MeshTTL; /* Mesh TTL */ in ieee80211_send_action_csa()
2896 *pos = 0x00; /* Mesh Flag: Tx Restrict, Initiator, Reason */ in ieee80211_send_action_csa()
2897 *pos |= WLAN_EID_CHAN_SWITCH_PARAM_INITIATOR; in ieee80211_send_action_csa()
2898 *pos++ |= csa_settings->block_tx ? in ieee80211_send_action_csa()
2900 put_unaligned_le16(WLAN_REASON_MESH_CHAN, pos); /* Reason Cd */ in ieee80211_send_action_csa()
2901 pos += 2; in ieee80211_send_action_csa()
2902 put_unaligned_le16(ifmsh->pre_value, pos);/* Precedence Value */ in ieee80211_send_action_csa()
2903 pos += 2; in ieee80211_send_action_csa()