diff options
author | avos <avos@FreeBSD.org> | 2016-04-20 18:29:30 +0000 |
---|---|---|
committer | avos <avos@FreeBSD.org> | 2016-04-20 18:29:30 +0000 |
commit | a5ff8b0e316b83f9374254420658df1268d03b44 (patch) | |
tree | ce3eab7ed45b044ec959a1de503b72ca6e18f182 /sys/net80211/ieee80211_hwmp.c | |
parent | dc8641835532430d191452e0ceeb8e5f5fca65bd (diff) | |
download | FreeBSD-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/ieee80211_hwmp.c')
-rw-r--r-- | sys/net80211/ieee80211_hwmp.c | 45 |
1 files changed, 16 insertions, 29 deletions
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) /* |