summaryrefslogtreecommitdiffstats
path: root/sys/net80211
diff options
context:
space:
mode:
authoravos <avos@FreeBSD.org>2016-04-20 18:29:30 +0000
committeravos <avos@FreeBSD.org>2016-04-20 18:29:30 +0000
commita5ff8b0e316b83f9374254420658df1268d03b44 (patch)
treece3eab7ed45b044ec959a1de503b72ca6e18f182 /sys/net80211
parentdc8641835532430d191452e0ceeb8e5f5fca65bd (diff)
downloadFreeBSD-src-a5ff8b0e316b83f9374254420658df1268d03b44.zip
FreeBSD-src-a5ff8b0e316b83f9374254420658df1268d03b44.tar.gz
net80211: replace internal LE_READ_*/LE_WRITE_* macro with system
le*dec / le*enc functions. Replace net80211 specific macros with system-wide bytestream encoding/decoding functions: - LE_READ_2 -> le16dec - LE_READ_4 -> le32dec - LE_WRITE_2 -> le16enc - LE_WRITE_4 -> le32enc + drop ieee80211_input.h include, where it was included for these operations only. Reviewed by: adrian Differential Revision: https://reviews.freebsd.org/D6030
Diffstat (limited to 'sys/net80211')
-rw-r--r--sys/net80211/ieee80211_hostap.c24
-rw-r--r--sys/net80211/ieee80211_ht.c22
-rw-r--r--sys/net80211/ieee80211_hwmp.c45
-rw-r--r--sys/net80211/ieee80211_input.c2
-rw-r--r--sys/net80211/ieee80211_input.h30
-rw-r--r--sys/net80211/ieee80211_mesh.c18
-rw-r--r--sys/net80211/ieee80211_output.c18
-rw-r--r--sys/net80211/ieee80211_scan_sta.c3
-rw-r--r--sys/net80211/ieee80211_sta.c2
-rw-r--r--sys/net80211/ieee80211_superg.c4
10 files changed, 66 insertions, 102 deletions
diff --git a/sys/net80211/ieee80211_hostap.c b/sys/net80211/ieee80211_hostap.c
index 4227dfb..308d6b3 100644
--- a/sys/net80211/ieee80211_hostap.c
+++ b/sys/net80211/ieee80211_hostap.c
@@ -1165,7 +1165,7 @@ static int
wpa_cipher(const uint8_t *sel, uint8_t *keylen)
{
#define WPA_SEL(x) (((x)<<24)|WPA_OUI)
- uint32_t w = LE_READ_4(sel);
+ uint32_t w = le32dec(sel);
switch (w) {
case WPA_SEL(WPA_CSE_NULL):
@@ -1195,7 +1195,7 @@ static int
wpa_keymgmt(const uint8_t *sel)
{
#define WPA_SEL(x) (((x)<<24)|WPA_OUI)
- uint32_t w = LE_READ_4(sel);
+ uint32_t w = le32dec(sel);
switch (w) {
case WPA_SEL(WPA_ASE_8021X_UNSPEC):
@@ -1242,7 +1242,7 @@ ieee80211_parse_wpa(struct ieee80211vap *vap, const uint8_t *frm,
}
frm += 6, len -= 4; /* NB: len is payload only */
/* NB: iswpaoui already validated the OUI and type */
- w = LE_READ_2(frm);
+ w = le16dec(frm);
if (w != WPA_VERSION) {
IEEE80211_DISCARD_IE(vap,
IEEE80211_MSG_ELEMID | IEEE80211_MSG_WPA,
@@ -1258,7 +1258,7 @@ ieee80211_parse_wpa(struct ieee80211vap *vap, const uint8_t *frm,
frm += 4, len -= 4;
/* unicast ciphers */
- n = LE_READ_2(frm);
+ n = le16dec(frm);
frm += 2, len -= 2;
if (len < n*4+2) {
IEEE80211_DISCARD_IE(vap,
@@ -1278,7 +1278,7 @@ ieee80211_parse_wpa(struct ieee80211vap *vap, const uint8_t *frm,
rsn->rsn_ucastcipher = IEEE80211_CIPHER_AES_CCM;
/* key management algorithms */
- n = LE_READ_2(frm);
+ n = le16dec(frm);
frm += 2, len -= 2;
if (len < n*4) {
IEEE80211_DISCARD_IE(vap,
@@ -1298,7 +1298,7 @@ ieee80211_parse_wpa(struct ieee80211vap *vap, const uint8_t *frm,
rsn->rsn_keymgmt = WPA_ASE_8021X_PSK;
if (len > 2) /* optional capabilities */
- rsn->rsn_caps = LE_READ_2(frm);
+ rsn->rsn_caps = le16dec(frm);
return 0;
}
@@ -1312,7 +1312,7 @@ static int
rsn_cipher(const uint8_t *sel, uint8_t *keylen)
{
#define RSN_SEL(x) (((x)<<24)|RSN_OUI)
- uint32_t w = LE_READ_4(sel);
+ uint32_t w = le32dec(sel);
switch (w) {
case RSN_SEL(RSN_CSE_NULL):
@@ -1344,7 +1344,7 @@ static int
rsn_keymgmt(const uint8_t *sel)
{
#define RSN_SEL(x) (((x)<<24)|RSN_OUI)
- uint32_t w = LE_READ_4(sel);
+ uint32_t w = le32dec(sel);
switch (w) {
case RSN_SEL(RSN_ASE_8021X_UNSPEC):
@@ -1389,7 +1389,7 @@ ieee80211_parse_rsn(struct ieee80211vap *vap, const uint8_t *frm,
return IEEE80211_REASON_IE_INVALID;
}
frm += 2;
- w = LE_READ_2(frm);
+ w = le16dec(frm);
if (w != RSN_VERSION) {
IEEE80211_DISCARD_IE(vap,
IEEE80211_MSG_ELEMID | IEEE80211_MSG_WPA,
@@ -1405,7 +1405,7 @@ ieee80211_parse_rsn(struct ieee80211vap *vap, const uint8_t *frm,
frm += 4, len -= 4;
/* unicast ciphers */
- n = LE_READ_2(frm);
+ n = le16dec(frm);
frm += 2, len -= 2;
if (len < n*4+2) {
IEEE80211_DISCARD_IE(vap,
@@ -1425,7 +1425,7 @@ ieee80211_parse_rsn(struct ieee80211vap *vap, const uint8_t *frm,
rsn->rsn_ucastcipher = IEEE80211_CIPHER_AES_CCM;
/* key management algorithms */
- n = LE_READ_2(frm);
+ n = le16dec(frm);
frm += 2, len -= 2;
if (len < n*4) {
IEEE80211_DISCARD_IE(vap,
@@ -1446,7 +1446,7 @@ ieee80211_parse_rsn(struct ieee80211vap *vap, const uint8_t *frm,
/* optional RSN capabilities */
if (len > 2)
- rsn->rsn_caps = LE_READ_2(frm);
+ rsn->rsn_caps = le16dec(frm);
/* XXXPMKID */
return 0;
diff --git a/sys/net80211/ieee80211_ht.c b/sys/net80211/ieee80211_ht.c
index cf78e88..315d202 100644
--- a/sys/net80211/ieee80211_ht.c
+++ b/sys/net80211/ieee80211_ht.c
@@ -1424,7 +1424,7 @@ ieee80211_parse_htcap(struct ieee80211_node *ni, const uint8_t *ie)
} else
ni->ni_flags &= ~IEEE80211_NODE_HTCOMPAT;
- ni->ni_htcap = LE_READ_2(ie +
+ ni->ni_htcap = le16dec(ie +
__offsetof(struct ieee80211_ie_htcap, hc_cap));
ni->ni_htparam = ie[__offsetof(struct ieee80211_ie_htcap, hc_param)];
}
@@ -1437,9 +1437,9 @@ htinfo_parse(struct ieee80211_node *ni,
ni->ni_htctlchan = htinfo->hi_ctrlchannel;
ni->ni_ht2ndchan = SM(htinfo->hi_byte1, IEEE80211_HTINFO_2NDCHAN);
- w = LE_READ_2(&htinfo->hi_byte2);
+ w = le16dec(&htinfo->hi_byte2);
ni->ni_htopmode = SM(w, IEEE80211_HTINFO_OPMODE);
- w = LE_READ_2(&htinfo->hi_byte45);
+ w = le16dec(&htinfo->hi_byte45);
ni->ni_htstbc = SM(w, IEEE80211_HTINFO_BASIC_STBCMCS);
}
@@ -1932,9 +1932,9 @@ ht_recv_action_ba_addba_request(struct ieee80211_node *ni,
int tid;
dialogtoken = frm[2];
- baparamset = LE_READ_2(frm+3);
- batimeout = LE_READ_2(frm+5);
- baseqctl = LE_READ_2(frm+7);
+ baparamset = le16dec(frm+3);
+ batimeout = le16dec(frm+5);
+ baseqctl = le16dec(frm+7);
tid = MS(baparamset, IEEE80211_BAPS_TID);
@@ -1997,12 +1997,12 @@ ht_recv_action_ba_addba_response(struct ieee80211_node *ni,
int tid, bufsiz;
dialogtoken = frm[2];
- code = LE_READ_2(frm+3);
- baparamset = LE_READ_2(frm+5);
+ code = le16dec(frm+3);
+ baparamset = le16dec(frm+5);
tid = MS(baparamset, IEEE80211_BAPS_TID);
bufsiz = MS(baparamset, IEEE80211_BAPS_BUFSIZ);
policy = MS(baparamset, IEEE80211_BAPS_POLICY);
- batimeout = LE_READ_2(frm+7);
+ batimeout = le16dec(frm+7);
tap = &ni->ni_tx_ampdu[tid];
if ((tap->txa_flags & IEEE80211_AGGR_XCHGPEND) == 0) {
@@ -2069,8 +2069,8 @@ ht_recv_action_ba_delba(struct ieee80211_node *ni,
uint16_t baparamset, code;
int tid;
- baparamset = LE_READ_2(frm+2);
- code = LE_READ_2(frm+4);
+ baparamset = le16dec(frm+2);
+ code = le16dec(frm+4);
tid = MS(baparamset, IEEE80211_DELBAPS_TID);
diff --git a/sys/net80211/ieee80211_hwmp.c b/sys/net80211/ieee80211_hwmp.c
index 0c920d8..cfc7759 100644
--- a/sys/net80211/ieee80211_hwmp.c
+++ b/sys/net80211/ieee80211_hwmp.c
@@ -118,18 +118,6 @@ static void hwmp_peerdown(struct ieee80211_node *);
static struct timeval ieee80211_hwmp_preqminint = { 0, 100000 };
static struct timeval ieee80211_hwmp_perrminint = { 0, 100000 };
-/* unalligned little endian access */
-#define LE_WRITE_2(p, v) do { \
- ((uint8_t *)(p))[0] = (v) & 0xff; \
- ((uint8_t *)(p))[1] = ((v) >> 8) & 0xff; \
-} while (0)
-#define LE_WRITE_4(p, v) do { \
- ((uint8_t *)(p))[0] = (v) & 0xff; \
- ((uint8_t *)(p))[1] = ((v) >> 8) & 0xff; \
- ((uint8_t *)(p))[2] = ((v) >> 16) & 0xff; \
- ((uint8_t *)(p))[3] = ((v) >> 24) & 0xff; \
-} while (0)
-
/* NB: the Target Address set in a Proactive PREQ is the broadcast address. */
static const uint8_t broadcastaddr[IEEE80211_ADDR_LEN] =
@@ -440,18 +428,18 @@ hwmp_recv_action_meshpath(struct ieee80211_node *ni,
preq->preq_flags = *iefrm_t++;
preq->preq_hopcount = *iefrm_t++;
preq->preq_ttl = *iefrm_t++;
- preq->preq_id = LE_READ_4(iefrm_t); iefrm_t += 4;
+ preq->preq_id = le32dec(iefrm_t); iefrm_t += 4;
IEEE80211_ADDR_COPY(preq->preq_origaddr, iefrm_t);
iefrm_t += 6;
- preq->preq_origseq = LE_READ_4(iefrm_t); iefrm_t += 4;
+ preq->preq_origseq = le32dec(iefrm_t); iefrm_t += 4;
/* NB: may have Originator Proxied Address */
if (preq->preq_flags & IEEE80211_MESHPREQ_FLAGS_AE) {
IEEE80211_ADDR_COPY(
preq->preq_orig_ext_addr, iefrm_t);
iefrm_t += 6;
}
- preq->preq_lifetime = LE_READ_4(iefrm_t); iefrm_t += 4;
- preq->preq_metric = LE_READ_4(iefrm_t); iefrm_t += 4;
+ preq->preq_lifetime = le32dec(iefrm_t); iefrm_t += 4;
+ preq->preq_metric = le32dec(iefrm_t); iefrm_t += 4;
preq->preq_tcount = *iefrm_t++;
for (i = 0; i < preq->preq_tcount; i++) {
@@ -460,7 +448,7 @@ hwmp_recv_action_meshpath(struct ieee80211_node *ni,
preq->preq_targets[i].target_addr, iefrm_t);
iefrm_t += 6;
preq->preq_targets[i].target_seq =
- LE_READ_4(iefrm_t);
+ le32dec(iefrm_t);
iefrm_t += 4;
}
@@ -489,18 +477,18 @@ hwmp_recv_action_meshpath(struct ieee80211_node *ni,
prep->prep_ttl = *iefrm_t++;
IEEE80211_ADDR_COPY(prep->prep_targetaddr, iefrm_t);
iefrm_t += 6;
- prep->prep_targetseq = LE_READ_4(iefrm_t); iefrm_t += 4;
+ prep->prep_targetseq = le32dec(iefrm_t); iefrm_t += 4;
/* NB: May have Target Proxied Address */
if (prep->prep_flags & IEEE80211_MESHPREP_FLAGS_AE) {
IEEE80211_ADDR_COPY(
prep->prep_target_ext_addr, iefrm_t);
iefrm_t += 6;
}
- prep->prep_lifetime = LE_READ_4(iefrm_t); iefrm_t += 4;
- prep->prep_metric = LE_READ_4(iefrm_t); iefrm_t += 4;
+ prep->prep_lifetime = le32dec(iefrm_t); iefrm_t += 4;
+ prep->prep_metric = le32dec(iefrm_t); iefrm_t += 4;
IEEE80211_ADDR_COPY(prep->prep_origaddr, iefrm_t);
iefrm_t += 6;
- prep->prep_origseq = LE_READ_4(iefrm_t); iefrm_t += 4;
+ prep->prep_origseq = le32dec(iefrm_t); iefrm_t += 4;
hwmp_recv_prep(vap, ni, wh, prep);
IEEE80211_FREE(prep, M_80211_MESH_PREP);
@@ -533,7 +521,7 @@ hwmp_recv_action_meshpath(struct ieee80211_node *ni,
IEEE80211_ADDR_COPY(
perr->perr_dests[i].dest_addr, iefrm_t);
iefrm_t += 6;
- perr->perr_dests[i].dest_seq = LE_READ_4(iefrm_t);
+ perr->perr_dests[i].dest_seq = le32dec(iefrm_t);
iefrm_t += 4;
/* NB: May have Target Proxied Address */
if (perr->perr_dests[i].dest_flags &
@@ -544,7 +532,7 @@ hwmp_recv_action_meshpath(struct ieee80211_node *ni,
iefrm_t += 6;
}
perr->perr_dests[i].dest_rcode =
- LE_READ_2(iefrm_t);
+ le16dec(iefrm_t);
iefrm_t += 2;
}
@@ -566,9 +554,9 @@ hwmp_recv_action_meshpath(struct ieee80211_node *ni,
return 1;
}
memcpy(&rann, mrann, sizeof(rann));
- rann.rann_seq = LE_READ_4(&mrann->rann_seq);
- rann.rann_interval = LE_READ_4(&mrann->rann_interval);
- rann.rann_metric = LE_READ_4(&mrann->rann_metric);
+ rann.rann_seq = le32dec(&mrann->rann_seq);
+ rann.rann_interval = le32dec(&mrann->rann_interval);
+ rann.rann_metric = le32dec(&mrann->rann_metric);
hwmp_recv_rann(vap, ni, wh, &rann);
found++;
break;
@@ -682,12 +670,11 @@ hwmp_send_action(struct ieee80211vap *vap,
}
#define ADDSHORT(frm, v) do { \
- frm[0] = (v) & 0xff; \
- frm[1] = (v) >> 8; \
+ le16enc(frm, v); \
frm += 2; \
} while (0)
#define ADDWORD(frm, v) do { \
- LE_WRITE_4(frm, v); \
+ le32enc(frm, v); \
frm += 4; \
} while (0)
/*
diff --git a/sys/net80211/ieee80211_input.c b/sys/net80211/ieee80211_input.c
index 5c2f9e5..b1e4e9d 100644
--- a/sys/net80211/ieee80211_input.c
+++ b/sys/net80211/ieee80211_input.c
@@ -549,7 +549,7 @@ ieee80211_parse_beacon(struct ieee80211_node *ni, struct mbuf *m,
break;
case IEEE80211_ELEMID_FHPARMS:
if (ic->ic_phytype == IEEE80211_T_FH) {
- scan->fhdwell = LE_READ_2(&frm[2]);
+ scan->fhdwell = le16dec(&frm[2]);
scan->chan = IEEE80211_FH_CHAN(frm[4], frm[5]);
scan->fhindex = frm[6];
}
diff --git a/sys/net80211/ieee80211_input.h b/sys/net80211/ieee80211_input.h
index d051fdb..97510d3 100644
--- a/sys/net80211/ieee80211_input.h
+++ b/sys/net80211/ieee80211_input.h
@@ -80,70 +80,58 @@ void ieee80211_ssid_mismatch(struct ieee80211vap *, const char *tag,
} while (0)
#endif /* !IEEE80211_DEBUG */
-/* unalligned little endian access */
-#define LE_READ_2(p) \
- ((uint16_t) \
- ((((const uint8_t *)(p))[0] ) | \
- (((const uint8_t *)(p))[1] << 8)))
-#define LE_READ_4(p) \
- ((uint32_t) \
- ((((const uint8_t *)(p))[0] ) | \
- (((const uint8_t *)(p))[1] << 8) | \
- (((const uint8_t *)(p))[2] << 16) | \
- (((const uint8_t *)(p))[3] << 24)))
+#include <sys/endian.h> /* For le16toh() / le32dec() */
static __inline int
iswpaoui(const uint8_t *frm)
{
- return frm[1] > 3 && LE_READ_4(frm+2) == ((WPA_OUI_TYPE<<24)|WPA_OUI);
+ return frm[1] > 3 && le32dec(frm+2) == ((WPA_OUI_TYPE<<24)|WPA_OUI);
}
static __inline int
iswmeoui(const uint8_t *frm)
{
- return frm[1] > 3 && LE_READ_4(frm+2) == ((WME_OUI_TYPE<<24)|WME_OUI);
+ return frm[1] > 3 && le32dec(frm+2) == ((WME_OUI_TYPE<<24)|WME_OUI);
}
static __inline int
iswmeparam(const uint8_t *frm)
{
- return frm[1] > 5 && LE_READ_4(frm+2) == ((WME_OUI_TYPE<<24)|WME_OUI) &&
+ return frm[1] > 5 && le32dec(frm+2) == ((WME_OUI_TYPE<<24)|WME_OUI) &&
frm[6] == WME_PARAM_OUI_SUBTYPE;
}
static __inline int
iswmeinfo(const uint8_t *frm)
{
- return frm[1] > 5 && LE_READ_4(frm+2) == ((WME_OUI_TYPE<<24)|WME_OUI) &&
+ return frm[1] > 5 && le32dec(frm+2) == ((WME_OUI_TYPE<<24)|WME_OUI) &&
frm[6] == WME_INFO_OUI_SUBTYPE;
}
static __inline int
isatherosoui(const uint8_t *frm)
{
- return frm[1] > 3 && LE_READ_4(frm+2) == ((ATH_OUI_TYPE<<24)|ATH_OUI);
+ return frm[1] > 3 && le32dec(frm+2) == ((ATH_OUI_TYPE<<24)|ATH_OUI);
}
static __inline int
istdmaoui(const uint8_t *frm)
{
- return frm[1] > 3 && LE_READ_4(frm+2) == ((TDMA_OUI_TYPE<<24)|TDMA_OUI);
+ return frm[1] > 3 && le32dec(frm+2) == ((TDMA_OUI_TYPE<<24)|TDMA_OUI);
}
static __inline int
ishtcapoui(const uint8_t *frm)
{
- return frm[1] > 3 && LE_READ_4(frm+2) == ((BCM_OUI_HTCAP<<24)|BCM_OUI);
+ return frm[1] > 3 && le32dec(frm+2) == ((BCM_OUI_HTCAP<<24)|BCM_OUI);
}
static __inline int
ishtinfooui(const uint8_t *frm)
{
- return frm[1] > 3 && LE_READ_4(frm+2) == ((BCM_OUI_HTINFO<<24)|BCM_OUI);
+ return frm[1] > 3 && le32dec(frm+2) == ((BCM_OUI_HTINFO<<24)|BCM_OUI);
}
-#include <sys/endian.h> /* For le16toh() */
-
/*
* Check the current frame sequence number against the current TID
* state and return whether it's in sequence or should be dropped.
diff --git a/sys/net80211/ieee80211_mesh.c b/sys/net80211/ieee80211_mesh.c
index 80e2af3..1ee3f0b 100644
--- a/sys/net80211/ieee80211_mesh.c
+++ b/sys/net80211/ieee80211_mesh.c
@@ -1710,7 +1710,7 @@ mesh_input(struct ieee80211_node *ni, struct mbuf *m,
}
/* XXX: are we sure there is no reallocating after m_pullup? */
- seq = LE_READ_4(mc->mc_seq);
+ seq = le32dec(mc->mc_seq);
if (IEEE80211_IS_MULTICAST(wh->i_addr1))
addr = wh->i_addr3;
else if (ae == IEEE80211_MESH_AE_01)
@@ -2135,12 +2135,12 @@ mesh_parse_meshpeering_action(struct ieee80211_node *ni,
mpie = (const struct ieee80211_meshpeer_ie *) frm;
memset(mp, 0, sizeof(*mp));
mp->peer_len = mpie->peer_len;
- mp->peer_proto = LE_READ_2(&mpie->peer_proto);
- mp->peer_llinkid = LE_READ_2(&mpie->peer_llinkid);
+ mp->peer_proto = le16dec(&mpie->peer_proto);
+ mp->peer_llinkid = le16dec(&mpie->peer_llinkid);
switch (subtype) {
case IEEE80211_ACTION_MESHPEERING_CONFIRM:
mp->peer_linkid =
- LE_READ_2(&mpie->peer_linkid);
+ le16dec(&mpie->peer_linkid);
break;
case IEEE80211_ACTION_MESHPEERING_CLOSE:
/* NB: peer link ID is optional */
@@ -2148,12 +2148,12 @@ mesh_parse_meshpeering_action(struct ieee80211_node *ni,
(IEEE80211_MPM_BASE_SZ + 2)) {
mp->peer_linkid = 0;
mp->peer_rcode =
- LE_READ_2(&mpie->peer_linkid);
+ le16dec(&mpie->peer_linkid);
} else {
mp->peer_linkid =
- LE_READ_2(&mpie->peer_linkid);
+ le16dec(&mpie->peer_linkid);
mp->peer_rcode =
- LE_READ_2(&mpie->peer_rcode);
+ le16dec(&mpie->peer_rcode);
}
break;
}
@@ -2550,8 +2550,8 @@ mesh_parse_meshgate_action(struct ieee80211_node *ni,
ie->gann_hopcount = gannie->gann_hopcount;
ie->gann_ttl = gannie->gann_ttl;
IEEE80211_ADDR_COPY(ie->gann_addr, gannie->gann_addr);
- ie->gann_seq = LE_READ_4(&gannie->gann_seq);
- ie->gann_interval = LE_READ_2(&gannie->gann_interval);
+ ie->gann_seq = le32dec(&gannie->gann_seq);
+ ie->gann_interval = le16dec(&gannie->gann_interval);
break;
}
frm += frm[1] + 2;
diff --git a/sys/net80211/ieee80211_output.c b/sys/net80211/ieee80211_output.c
index 1882a26..a7e913e 100644
--- a/sys/net80211/ieee80211_output.c
+++ b/sys/net80211/ieee80211_output.c
@@ -77,18 +77,6 @@ __FBSDID("$FreeBSD$");
#define ETHER_HEADER_COPY(dst, src) \
memcpy(dst, src, sizeof(struct ether_header))
-/* unalligned little endian access */
-#define LE_WRITE_2(p, v) do { \
- ((uint8_t *)(p))[0] = (v) & 0xff; \
- ((uint8_t *)(p))[1] = ((v) >> 8) & 0xff; \
-} while (0)
-#define LE_WRITE_4(p, v) do { \
- ((uint8_t *)(p))[0] = (v) & 0xff; \
- ((uint8_t *)(p))[1] = ((v) >> 8) & 0xff; \
- ((uint8_t *)(p))[2] = ((v) >> 16) & 0xff; \
- ((uint8_t *)(p))[3] = ((v) >> 24) & 0xff; \
-} while (0)
-
static int ieee80211_fragment(struct ieee80211vap *, struct mbuf *,
u_int hdrsize, u_int ciphdrsize, u_int mtu);
static void ieee80211_tx_mgt_cb(struct ieee80211_node *, void *, int);
@@ -1518,7 +1506,7 @@ ieee80211_encap(struct ieee80211vap *vap, struct ieee80211_node *ni,
}
mc->mc_ttl = ms->ms_ttl;
ms->ms_seq++;
- LE_WRITE_4(mc->mc_seq, ms->ms_seq);
+ le32enc(mc->mc_seq, ms->ms_seq);
break;
#endif
case IEEE80211_M_WDS: /* NB: is4addr should always be true */
@@ -1843,7 +1831,7 @@ static uint8_t *
ieee80211_add_cfparms(uint8_t *frm, struct ieee80211com *ic)
{
#define ADDSHORT(frm, v) do { \
- LE_WRITE_2(frm, v); \
+ le16enc(frm, v); \
frm += 2; \
} while (0)
*frm++ = IEEE80211_ELEMID_CFPARMS;
@@ -1898,7 +1886,7 @@ ieee80211_add_wme_param(uint8_t *frm, struct ieee80211_wme_state *wme)
{
#define SM(_v, _f) (((_v) << _f##_S) & _f)
#define ADDSHORT(frm, v) do { \
- LE_WRITE_2(frm, v); \
+ le16enc(frm, v); \
frm += 2; \
} while (0)
/* NB: this works 'cuz a param has an info at the front */
diff --git a/sys/net80211/ieee80211_scan_sta.c b/sys/net80211/ieee80211_scan_sta.c
index 233c436..8d9946d 100644
--- a/sys/net80211/ieee80211_scan_sta.c
+++ b/sys/net80211/ieee80211_scan_sta.c
@@ -34,6 +34,7 @@ __FBSDID("$FreeBSD$");
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/kernel.h>
+#include <sys/endian.h>
#include <sys/malloc.h>
#include <sys/module.h>
@@ -785,7 +786,7 @@ maxrate(const struct ieee80211_scan_entry *se)
} else
for (i = 31; i >= 0 && isclr(htcap->hc_mcsset, i); i--);
if (i >= 0) {
- caps = LE_READ_2(&htcap->hc_cap);
+ caps = le16dec(&htcap->hc_cap);
if ((caps & IEEE80211_HTCAP_CHWIDTH40) &&
(caps & IEEE80211_HTCAP_SHORTGI40))
rmax = ieee80211_htrates[i].ht40_rate_400ns;
diff --git a/sys/net80211/ieee80211_sta.c b/sys/net80211/ieee80211_sta.c
index d80c767..fa3cc68 100644
--- a/sys/net80211/ieee80211_sta.c
+++ b/sys/net80211/ieee80211_sta.c
@@ -1120,7 +1120,7 @@ ieee80211_parse_wmeparams(struct ieee80211vap *vap, uint8_t *frm,
wmep->wmep_aifsn = MS(frm[0], WME_PARAM_AIFSN);
wmep->wmep_logcwmin = MS(frm[1], WME_PARAM_LOGCWMIN);
wmep->wmep_logcwmax = MS(frm[1], WME_PARAM_LOGCWMAX);
- wmep->wmep_txopLimit = LE_READ_2(frm+2);
+ wmep->wmep_txopLimit = le16dec(frm+2);
frm += 4;
}
wme->wme_wmeChanParams.cap_info = qosinfo;
diff --git a/sys/net80211/ieee80211_superg.c b/sys/net80211/ieee80211_superg.c
index 1879d62..278ba88 100644
--- a/sys/net80211/ieee80211_superg.c
+++ b/sys/net80211/ieee80211_superg.c
@@ -195,7 +195,7 @@ ieee80211_parse_ath(struct ieee80211_node *ni, uint8_t *ie)
(const struct ieee80211_ath_ie *) ie;
ni->ni_ath_flags = ath->ath_capability;
- ni->ni_ath_defkeyix = LE_READ_2(&ath->ath_defkeyix);
+ ni->ni_ath_defkeyix = le16dec(&ath->ath_defkeyix);
}
int
@@ -216,7 +216,7 @@ ieee80211_parse_athparams(struct ieee80211_node *ni, uint8_t *frm,
}
ath = (const struct ieee80211_ath_ie *)frm;
capschanged = (ni->ni_ath_flags != ath->ath_capability);
- defkeyix = LE_READ_2(ath->ath_defkeyix);
+ defkeyix = le16dec(ath->ath_defkeyix);
if (capschanged || defkeyix != ni->ni_ath_defkeyix) {
ni->ni_ath_flags = ath->ath_capability;
ni->ni_ath_defkeyix = defkeyix;
OpenPOWER on IntegriCloud