nexmon – Blame information for rev 1
?pathlinks?
Rev | Author | Line No. | Line |
---|---|---|---|
1 | office | 1 | diff -ur ../rt2500-cvs-20051008/Module/rtmp_data.c ./Module/rtmp_data.c |
2 | --- ../rt2500-cvs-20051008/Module/rtmp_data.c 2005-10-06 04:53:08.000000000 +0200 |
||
3 | +++ ./Module/rtmp_data.c 2005-11-05 01:20:02.000000000 +0100 |
||
4 | @@ -50,6 +50,7 @@ |
||
5 | 0, /* RATE_1 */ 1, /* RATE_2 */ 2, /* RATE_5_5 */ 3, /* RATE_11 */ // see BBP spec |
||
6 | 11, /* RATE_6 */ 15, /* RATE_9 */ 10, /* RATE_12 */ 14, /* RATE_18 */ // see IEEE802.11a-1999 p.14 |
||
7 | 9, /* RATE_24 */ 13, /* RATE_36 */ 8, /* RATE_48 */ 12 /* RATE_54 */ }; // see IEEE802.11a-1999 p.14 |
||
8 | +static UINT _11G_RATES[12] = { 0, 0, 0, 0, 6, 9, 12, 18, 24, 36, 48, 54 }; |
||
9 | |||
10 | #define COLLECT_RX_ANTENNA_AVERAGE_RSSI(_pAd, _RxAnt, _rssi) \ |
||
11 | { \ |
||
12 | @@ -1132,9 +1133,61 @@ |
||
13 | if (pAdapter->PortCfg.BssType == BSS_MONITOR) |
||
14 | { |
||
15 | struct sk_buff *skb; |
||
16 | + wlan_ng_prism2_header *ph; |
||
17 | |||
18 | if ((skb = __dev_alloc_skb(2048, GFP_DMA|GFP_ATOMIC)) != NULL) |
||
19 | { |
||
20 | + // setup the wlan-ng prismheader |
||
21 | + |
||
22 | + if (skb_headroom(skb) < sizeof(wlan_ng_prism2_header)) |
||
23 | + pskb_expand_head(skb, sizeof(wlan_ng_prism2_header), 0, GFP_ATOMIC); |
||
24 | + |
||
25 | + ph = (wlan_ng_prism2_header *) |
||
26 | + skb_push(skb, sizeof(wlan_ng_prism2_header)); |
||
27 | + memset(ph, 0, sizeof(wlan_ng_prism2_header)); |
||
28 | + |
||
29 | + ph->msgcode = DIDmsg_lnxind_wlansniffrm; |
||
30 | + ph->msglen = sizeof(wlan_ng_prism2_header); |
||
31 | + strcpy(ph->devname, pAdapter->net_dev->name); |
||
32 | + |
||
33 | + ph->hosttime.did = DIDmsg_lnxind_wlansniffrm_hosttime; |
||
34 | + ph->mactime.did = DIDmsg_lnxind_wlansniffrm_mactime; |
||
35 | + ph->channel.did = DIDmsg_lnxind_wlansniffrm_channel; |
||
36 | + ph->rssi.did = DIDmsg_lnxind_wlansniffrm_rssi; |
||
37 | + ph->signal.did = DIDmsg_lnxind_wlansniffrm_signal; |
||
38 | + ph->noise.did = DIDmsg_lnxind_wlansniffrm_noise; |
||
39 | + ph->rate.did = DIDmsg_lnxind_wlansniffrm_rate; |
||
40 | + ph->istx.did = DIDmsg_lnxind_wlansniffrm_istx; |
||
41 | + ph->frmlen.did = DIDmsg_lnxind_wlansniffrm_frmlen; |
||
42 | + |
||
43 | + ph->hosttime.len = 4; |
||
44 | + ph->mactime.len = 4; |
||
45 | + ph->channel.len = 4; |
||
46 | + ph->rssi.len = 4; |
||
47 | + ph->signal.len = 4; |
||
48 | + ph->noise.len = 4; |
||
49 | + ph->rate.len = 4; |
||
50 | + ph->istx.len = 4; |
||
51 | + ph->frmlen.len = 4; |
||
52 | + |
||
53 | + ph->hosttime.data = jiffies; |
||
54 | + ph->signal.data = pRxD->BBR1; |
||
55 | + ph->channel.data = pAdapter->PortCfg.IbssConfig.Channel; |
||
56 | + ph->noise.data = pAdapter->PortCfg.LastR17Value; |
||
57 | + ph->rssi.data = ph->signal.data - ph->noise.data; |
||
58 | + ph->frmlen.data = pRxD->DataByteCnt; |
||
59 | + |
||
60 | + if (pRxD->Ofdm == 1) |
||
61 | + { |
||
62 | + for (i = 4; i < 12; i++) |
||
63 | + if (pRxD->BBR0 == PlcpSignal[i]) |
||
64 | + ph->rate.data = _11G_RATES[i] * 2; |
||
65 | + } |
||
66 | + else |
||
67 | + ph->rate.data = pRxD->BBR0 / 5; |
||
68 | + |
||
69 | + // end prismheader setup |
||
70 | + |
||
71 | skb->dev = pAdapter->net_dev; |
||
72 | memcpy(skb_put(skb, pRxD->DataByteCnt), pData, pRxD->DataByteCnt); |
||
73 | skb->mac.raw = skb->data; |
||
74 | diff -ur ../rt2500-cvs-20051008/Module/rtmp.h ./Module/rtmp.h |
||
75 | --- ../rt2500-cvs-20051008/Module/rtmp.h 2005-10-06 04:53:08.000000000 +0200 |
||
76 | +++ ./Module/rtmp.h 2005-10-09 00:10:27.000000000 +0200 |
||
77 | @@ -2549,4 +2549,54 @@ |
||
78 | IN ULONG DescriptorType); |
||
79 | #endif |
||
80 | |||
81 | +#ifndef _PRISMHEADER |
||
82 | +#define _PRISMHEADER |
||
83 | + |
||
84 | +enum { |
||
85 | + DIDmsg_lnxind_wlansniffrm = 0x00000044, |
||
86 | + DIDmsg_lnxind_wlansniffrm_hosttime = 0x00010044, |
||
87 | + DIDmsg_lnxind_wlansniffrm_mactime = 0x00020044, |
||
88 | + DIDmsg_lnxind_wlansniffrm_channel = 0x00030044, |
||
89 | + DIDmsg_lnxind_wlansniffrm_rssi = 0x00040044, |
||
90 | + DIDmsg_lnxind_wlansniffrm_sq = 0x00050044, |
||
91 | + DIDmsg_lnxind_wlansniffrm_signal = 0x00060044, |
||
92 | + DIDmsg_lnxind_wlansniffrm_noise = 0x00070044, |
||
93 | + DIDmsg_lnxind_wlansniffrm_rate = 0x00080044, |
||
94 | + DIDmsg_lnxind_wlansniffrm_istx = 0x00090044, |
||
95 | + DIDmsg_lnxind_wlansniffrm_frmlen = 0x000A0044 |
||
96 | +}; |
||
97 | +enum { |
||
98 | + P80211ENUM_msgitem_status_no_value = 0x00 |
||
99 | +}; |
||
100 | +enum { |
||
101 | + P80211ENUM_truth_false = 0x00, |
||
102 | + P80211ENUM_truth_true = 0x01 |
||
103 | +}; |
||
104 | + |
||
105 | +typedef struct { |
||
106 | + u_int32_t did; |
||
107 | + u_int16_t status; |
||
108 | + u_int16_t len; |
||
109 | + u_int32_t data; |
||
110 | +} p80211item_uint32_t; |
||
111 | + |
||
112 | +typedef struct { |
||
113 | + u_int32_t msgcode; |
||
114 | + u_int32_t msglen; |
||
115 | +#define WLAN_DEVNAMELEN_MAX 16 |
||
116 | + u_int8_t devname[WLAN_DEVNAMELEN_MAX]; |
||
117 | + p80211item_uint32_t hosttime; |
||
118 | + p80211item_uint32_t mactime; |
||
119 | + p80211item_uint32_t channel; |
||
120 | + p80211item_uint32_t rssi; |
||
121 | + p80211item_uint32_t sq; |
||
122 | + p80211item_uint32_t signal; |
||
123 | + p80211item_uint32_t noise; |
||
124 | + p80211item_uint32_t rate; |
||
125 | + p80211item_uint32_t istx; |
||
126 | + p80211item_uint32_t frmlen; |
||
127 | +} wlan_ng_prism2_header; |
||
128 | + |
||
129 | +#endif |
||
130 | + |
||
131 | #endif // __RTMP_H__ |
||
132 | diff -ur ../rt2500-cvs-20051008/Module/rtmp_info.c ./Module/rtmp_info.c |
||
133 | --- ../rt2500-cvs-20051008/Module/rtmp_info.c 2005-10-06 04:53:08.000000000 +0200 |
||
134 | +++ ./Module/rtmp_info.c 2005-10-09 00:07:51.000000000 +0200 |
||
135 | @@ -1973,7 +1973,7 @@ |
||
136 | { |
||
137 | if (pAdapter->PortCfg.BssType == BSS_MONITOR) |
||
138 | { |
||
139 | - pAdapter->net_dev->type = 801; |
||
140 | + pAdapter->net_dev->type = 802; // ARPHRD_IEEE80211_PRISM |
||
141 | RTMP_IO_WRITE32(pAdapter, RXCSR0, 0x4e); |
||
142 | } |
||
143 | else |