Lines Matching refs:pos
770 const u8 *pos = start; in ieee802_11_parse_elems_crc() local
784 id = *pos++; in ieee802_11_parse_elems_crc()
785 elen = *pos++; in ieee802_11_parse_elems_crc()
834 pos += elen; in ieee802_11_parse_elems_crc()
841 crc = crc32_be(crc, pos - 2, elen + 2); in ieee802_11_parse_elems_crc()
851 elems->lnk_id = (void *)(pos - 2); in ieee802_11_parse_elems_crc()
858 elems->ch_sw_timing = (void *)pos; in ieee802_11_parse_elems_crc()
861 elems->ext_capab = pos; in ieee802_11_parse_elems_crc()
865 elems->ssid = pos; in ieee802_11_parse_elems_crc()
869 elems->supp_rates = pos; in ieee802_11_parse_elems_crc()
874 elems->ds_params = pos; in ieee802_11_parse_elems_crc()
880 elems->tim = (void *)pos; in ieee802_11_parse_elems_crc()
886 elems->challenge = pos; in ieee802_11_parse_elems_crc()
890 if (elen >= 4 && pos[0] == 0x00 && pos[1] == 0x50 && in ieee802_11_parse_elems_crc()
891 pos[2] == 0xf2) { in ieee802_11_parse_elems_crc()
895 crc = crc32_be(crc, pos - 2, elen + 2); in ieee802_11_parse_elems_crc()
897 if (elen >= 5 && pos[3] == 2) { in ieee802_11_parse_elems_crc()
899 if (pos[4] == 0) { in ieee802_11_parse_elems_crc()
900 elems->wmm_info = pos; in ieee802_11_parse_elems_crc()
902 } else if (pos[4] == 1) { in ieee802_11_parse_elems_crc()
903 elems->wmm_param = pos; in ieee802_11_parse_elems_crc()
910 elems->rsn = pos; in ieee802_11_parse_elems_crc()
915 elems->erp_info = pos; in ieee802_11_parse_elems_crc()
920 elems->ext_supp_rates = pos; in ieee802_11_parse_elems_crc()
925 elems->ht_cap_elem = (void *)pos; in ieee802_11_parse_elems_crc()
931 elems->ht_operation = (void *)pos; in ieee802_11_parse_elems_crc()
937 elems->vht_cap_elem = (void *)pos; in ieee802_11_parse_elems_crc()
943 elems->vht_operation = (void *)pos; in ieee802_11_parse_elems_crc()
949 elems->opmode_notif = pos; in ieee802_11_parse_elems_crc()
954 elems->mesh_id = pos; in ieee802_11_parse_elems_crc()
959 elems->mesh_config = (void *)pos; in ieee802_11_parse_elems_crc()
964 elems->peering = pos; in ieee802_11_parse_elems_crc()
969 elems->awake_window = (void *)pos; in ieee802_11_parse_elems_crc()
972 elems->preq = pos; in ieee802_11_parse_elems_crc()
976 elems->prep = pos; in ieee802_11_parse_elems_crc()
980 elems->perr = pos; in ieee802_11_parse_elems_crc()
985 elems->rann = (void *)pos; in ieee802_11_parse_elems_crc()
994 elems->ch_switch_ie = (void *)pos; in ieee802_11_parse_elems_crc()
1001 elems->ext_chansw_ie = (void *)pos; in ieee802_11_parse_elems_crc()
1008 elems->sec_chan_offs = (void *)pos; in ieee802_11_parse_elems_crc()
1016 elems->mesh_chansw_params_ie = (void *)pos; in ieee802_11_parse_elems_crc()
1024 elems->wide_bw_chansw_ie = (void *)pos; in ieee802_11_parse_elems_crc()
1037 pos, elen); in ieee802_11_parse_elems_crc()
1047 elems->country_elem = pos; in ieee802_11_parse_elems_crc()
1055 elems->pwr_constr_elem = pos; in ieee802_11_parse_elems_crc()
1068 if (pos[0] != 0x00 || pos[1] != 0x40 || in ieee802_11_parse_elems_crc()
1069 pos[2] != 0x96 || pos[3] != 0x00) in ieee802_11_parse_elems_crc()
1078 crc = crc32_be(crc, pos - 2, elen + 2); in ieee802_11_parse_elems_crc()
1080 elems->cisco_dtpc_elem = pos; in ieee802_11_parse_elems_crc()
1084 elems->timeout_int = (void *)pos; in ieee802_11_parse_elems_crc()
1098 pos += elen; in ieee802_11_parse_elems_crc()
1307 u8 *pos = buffer, *end = buffer + buffer_len; in ieee80211_build_preq_ies_band() local
1340 if (end - pos < 2 + supp_rates_len) in ieee80211_build_preq_ies_band()
1342 *pos++ = WLAN_EID_SUPP_RATES; in ieee80211_build_preq_ies_band()
1343 *pos++ = supp_rates_len; in ieee80211_build_preq_ies_band()
1344 memcpy(pos, rates, supp_rates_len); in ieee80211_build_preq_ies_band()
1345 pos += supp_rates_len; in ieee80211_build_preq_ies_band()
1358 if (end - pos < noffset - *offset) in ieee80211_build_preq_ies_band()
1360 memcpy(pos, ie + *offset, noffset - *offset); in ieee80211_build_preq_ies_band()
1361 pos += noffset - *offset; in ieee80211_build_preq_ies_band()
1367 if (end - pos < 2 + ext_rates_len) in ieee80211_build_preq_ies_band()
1369 *pos++ = WLAN_EID_EXT_SUPP_RATES; in ieee80211_build_preq_ies_band()
1370 *pos++ = ext_rates_len; in ieee80211_build_preq_ies_band()
1371 memcpy(pos, rates + supp_rates_len, ext_rates_len); in ieee80211_build_preq_ies_band()
1372 pos += ext_rates_len; in ieee80211_build_preq_ies_band()
1376 if (end - pos < 3) in ieee80211_build_preq_ies_band()
1378 *pos++ = WLAN_EID_DS_PARAMS; in ieee80211_build_preq_ies_band()
1379 *pos++ = 1; in ieee80211_build_preq_ies_band()
1380 *pos++ = ieee80211_frequency_to_channel( in ieee80211_build_preq_ies_band()
1397 if (end - pos < noffset - *offset) in ieee80211_build_preq_ies_band()
1399 memcpy(pos, ie + *offset, noffset - *offset); in ieee80211_build_preq_ies_band()
1400 pos += noffset - *offset; in ieee80211_build_preq_ies_band()
1405 if (end - pos < 2 + sizeof(struct ieee80211_ht_cap)) in ieee80211_build_preq_ies_band()
1407 pos = ieee80211_ie_build_ht_cap(pos, &sband->ht_cap, in ieee80211_build_preq_ies_band()
1437 if (end - pos < noffset - *offset) in ieee80211_build_preq_ies_band()
1439 memcpy(pos, ie + *offset, noffset - *offset); in ieee80211_build_preq_ies_band()
1440 pos += noffset - *offset; in ieee80211_build_preq_ies_band()
1455 if (end - pos < 2 + sizeof(struct ieee80211_vht_cap)) in ieee80211_build_preq_ies_band()
1457 pos = ieee80211_ie_build_vht_cap(pos, &sband->vht_cap, in ieee80211_build_preq_ies_band()
1461 return pos - buffer; in ieee80211_build_preq_ies_band()
1464 return pos - buffer; in ieee80211_build_preq_ies_band()
1474 size_t pos = 0, old_pos = 0, custom_ie_offset = 0; in ieee80211_build_preq_ies() local
1481 pos += ieee80211_build_preq_ies_band(local, in ieee80211_build_preq_ies()
1482 buffer + pos, in ieee80211_build_preq_ies()
1483 buffer_len - pos, in ieee80211_build_preq_ies()
1489 ie_desc->len[i] = pos - old_pos; in ieee80211_build_preq_ies()
1490 old_pos = pos; in ieee80211_build_preq_ies()
1496 if (WARN_ONCE(buffer_len - pos < ie_len - custom_ie_offset, in ieee80211_build_preq_ies()
1498 return pos; in ieee80211_build_preq_ies()
1499 memcpy(buffer + pos, ie + custom_ie_offset, in ieee80211_build_preq_ies()
1501 ie_desc->common_ies = buffer + pos; in ieee80211_build_preq_ies()
1503 pos += ie_len - custom_ie_offset; in ieee80211_build_preq_ies()
1506 return pos; in ieee80211_build_preq_ies()
2195 size_t pos = offset; in ieee80211_ie_split_vendor() local
2197 while (pos < ielen && ies[pos] != WLAN_EID_VENDOR_SPECIFIC) in ieee80211_ie_split_vendor()
2198 pos += 2 + ies[pos + 1]; in ieee80211_ie_split_vendor()
2200 return pos; in ieee80211_ie_split_vendor()
2243 u8 *ieee80211_ie_build_ht_cap(u8 *pos, struct ieee80211_sta_ht_cap *ht_cap, in ieee80211_ie_build_ht_cap() argument
2248 *pos++ = WLAN_EID_HT_CAPABILITY; in ieee80211_ie_build_ht_cap()
2249 *pos++ = sizeof(struct ieee80211_ht_cap); in ieee80211_ie_build_ht_cap()
2250 memset(pos, 0, sizeof(struct ieee80211_ht_cap)); in ieee80211_ie_build_ht_cap()
2254 memcpy(pos, &tmp, sizeof(u16)); in ieee80211_ie_build_ht_cap()
2255 pos += sizeof(u16); in ieee80211_ie_build_ht_cap()
2258 *pos++ = ht_cap->ampdu_factor | in ieee80211_ie_build_ht_cap()
2263 memcpy(pos, &ht_cap->mcs, sizeof(ht_cap->mcs)); in ieee80211_ie_build_ht_cap()
2264 pos += sizeof(ht_cap->mcs); in ieee80211_ie_build_ht_cap()
2267 pos += sizeof(__le16); in ieee80211_ie_build_ht_cap()
2270 pos += sizeof(__le32); in ieee80211_ie_build_ht_cap()
2273 pos += sizeof(u8); in ieee80211_ie_build_ht_cap()
2275 return pos; in ieee80211_ie_build_ht_cap()
2278 u8 *ieee80211_ie_build_vht_cap(u8 *pos, struct ieee80211_sta_vht_cap *vht_cap, in ieee80211_ie_build_vht_cap() argument
2283 *pos++ = WLAN_EID_VHT_CAPABILITY; in ieee80211_ie_build_vht_cap()
2284 *pos++ = sizeof(struct ieee80211_vht_cap); in ieee80211_ie_build_vht_cap()
2285 memset(pos, 0, sizeof(struct ieee80211_vht_cap)); in ieee80211_ie_build_vht_cap()
2289 memcpy(pos, &tmp, sizeof(u32)); in ieee80211_ie_build_vht_cap()
2290 pos += sizeof(u32); in ieee80211_ie_build_vht_cap()
2293 memcpy(pos, &vht_cap->vht_mcs, sizeof(vht_cap->vht_mcs)); in ieee80211_ie_build_vht_cap()
2294 pos += sizeof(vht_cap->vht_mcs); in ieee80211_ie_build_vht_cap()
2296 return pos; in ieee80211_ie_build_vht_cap()
2299 u8 *ieee80211_ie_build_ht_oper(u8 *pos, struct ieee80211_sta_ht_cap *ht_cap, in ieee80211_ie_build_ht_oper() argument
2305 *pos++ = WLAN_EID_HT_OPERATION; in ieee80211_ie_build_ht_oper()
2306 *pos++ = sizeof(struct ieee80211_ht_operation); in ieee80211_ie_build_ht_oper()
2307 ht_oper = (struct ieee80211_ht_operation *)pos; in ieee80211_ie_build_ht_oper()
2340 return pos + sizeof(struct ieee80211_ht_operation); in ieee80211_ie_build_ht_oper()
2343 u8 *ieee80211_ie_build_vht_oper(u8 *pos, struct ieee80211_sta_vht_cap *vht_cap, in ieee80211_ie_build_vht_oper() argument
2348 *pos++ = WLAN_EID_VHT_OPERATION; in ieee80211_ie_build_vht_oper()
2349 *pos++ = sizeof(struct ieee80211_vht_operation); in ieee80211_ie_build_vht_oper()
2350 vht_oper = (struct ieee80211_vht_operation *)pos; in ieee80211_ie_build_vht_oper()
2377 return pos + sizeof(struct ieee80211_vht_operation); in ieee80211_ie_build_vht_oper()
2479 u8 i, rates, *pos; in ieee80211_add_srates_ie() local
2498 pos = skb_put(skb, rates + 2); in ieee80211_add_srates_ie()
2499 *pos++ = WLAN_EID_SUPP_RATES; in ieee80211_add_srates_ie()
2500 *pos++ = rates; in ieee80211_add_srates_ie()
2511 *pos++ = basic | (u8) rate; in ieee80211_add_srates_ie()
2524 u8 i, exrates, *pos; in ieee80211_add_ext_srates_ie() local
2548 pos = skb_put(skb, exrates + 2); in ieee80211_add_ext_srates_ie()
2549 *pos++ = WLAN_EID_EXT_SUPP_RATES; in ieee80211_add_ext_srates_ie()
2550 *pos++ = exrates; in ieee80211_add_ext_srates_ie()
2560 *pos++ = basic | (u8) rate; in ieee80211_add_ext_srates_ie()
2837 u8 *pos; in ieee80211_send_action_csa() local
2866 pos = skb_put(skb, 5); in ieee80211_send_action_csa()
2867 *pos++ = WLAN_EID_CHANNEL_SWITCH; /* EID */ in ieee80211_send_action_csa()
2868 *pos++ = 3; /* IE length */ in ieee80211_send_action_csa()
2869 *pos++ = csa_settings->block_tx ? 1 : 0; /* CSA mode */ in ieee80211_send_action_csa()
2871 *pos++ = ieee80211_frequency_to_channel(freq); /* channel */ in ieee80211_send_action_csa()
2872 *pos++ = csa_settings->count; /* count */ in ieee80211_send_action_csa()
2878 *pos++ = WLAN_EID_SECONDARY_CHANNEL_OFFSET; /* EID */ in ieee80211_send_action_csa()
2879 *pos++ = 1; /* IE length */ in ieee80211_send_action_csa()
2882 *pos++ = IEEE80211_HT_PARAM_CHA_SEC_ABOVE; in ieee80211_send_action_csa()
2884 *pos++ = IEEE80211_HT_PARAM_CHA_SEC_BELOW; in ieee80211_send_action_csa()
2891 *pos++ = WLAN_EID_CHAN_SWITCH_PARAM; /* EID */ in ieee80211_send_action_csa()
2892 *pos++ = 6; /* IE length */ in ieee80211_send_action_csa()
2893 *pos++ = sdata->u.mesh.mshcfg.dot11MeshTTL; /* Mesh TTL */ in ieee80211_send_action_csa()
2894 *pos = 0x00; /* Mesh Flag: Tx Restrict, Initiator, Reason */ in ieee80211_send_action_csa()
2895 *pos |= WLAN_EID_CHAN_SWITCH_PARAM_INITIATOR; in ieee80211_send_action_csa()
2896 *pos++ |= csa_settings->block_tx ? in ieee80211_send_action_csa()
2898 put_unaligned_le16(WLAN_REASON_MESH_CHAN, pos); /* Reason Cd */ in ieee80211_send_action_csa()
2899 pos += 2; in ieee80211_send_action_csa()
2900 put_unaligned_le16(ifmsh->pre_value, pos);/* Precedence Value */ in ieee80211_send_action_csa()
2901 pos += 2; in ieee80211_send_action_csa()