12
12
#include " cb_otp.h"
13
13
#include " cb_main.h"
14
14
15
- #define WIFI_EMAC_MTU_SIZE (1500U )
15
+ #define OdinWiFiEMAC_MTU_SIZE (1500U )
16
16
static const char _ifname[] = " WL0" ;
17
17
18
18
cb_boolean handleWlanTargetCopyFromDataFrame (uint8_t * buffer, cbWLANTARGET_dataFrame* frame, uint32_t size, uint32_t offsetInFrame);
@@ -37,7 +37,7 @@ static const cbWLANTARGET_Callback _wlanTargetCallback =
37
37
38
38
void handleWlanStatusIndication (void *dummy, cbWLAN_StatusIndicationInfo status, void *data)
39
39
{
40
- WIFI_EMAC &instance = WIFI_EMAC ::get_instance ();
40
+ OdinWiFiEMAC &instance = OdinWiFiEMAC ::get_instance ();
41
41
bool linkUp = false ;
42
42
bool sendCb = true ;
43
43
(void )dummy;
@@ -65,7 +65,7 @@ void handleWlanStatusIndication(void *dummy, cbWLAN_StatusIndicationInfo status,
65
65
66
66
void handleWlanPacketIndication (void *dummy, cbWLAN_PacketIndicationInfo *packetInfo)
67
67
{
68
- WIFI_EMAC &instance = WIFI_EMAC ::get_instance ();
68
+ OdinWiFiEMAC &instance = OdinWiFiEMAC ::get_instance ();
69
69
(void )dummy;
70
70
71
71
if (instance.emac_link_input_cb ) {
@@ -75,17 +75,17 @@ void handleWlanPacketIndication(void *dummy, cbWLAN_PacketIndicationInfo *packet
75
75
76
76
cb_boolean handleWlanTargetCopyFromDataFrame (uint8_t * buffer, cbWLANTARGET_dataFrame* frame, uint32_t size, uint32_t offsetInFrame)
77
77
{
78
- EMACMemoryManager *mem = WIFI_EMAC ::get_instance ().memory_manager ;
78
+ EMACMemoryManager *mem = OdinWiFiEMAC ::get_instance ().memory_manager ;
79
79
MBED_ASSERT (mem != NULL );
80
80
81
- // emac_mem_buf_t* phead = ( emac_mem_buf_t *) frame;
82
- emac_mem_buf_t * pbuf = ( emac_mem_buf_t *)frame ;
81
+ emac_mem_buf_t * phead = static_cast < emac_mem_buf_t *>( frame) ;
82
+ emac_mem_buf_t * pbuf;
83
83
uint32_t copySize, bytesCopied = 0 , pbufOffset = 0 ;
84
84
85
85
MBED_ASSERT (frame != NULL );
86
86
MBED_ASSERT (buffer != NULL );
87
87
88
- // pbuf = mem->get_next( phead) ;
88
+ pbuf = phead;
89
89
while (pbuf != NULL ) {
90
90
if ((pbufOffset + mem->get_len (pbuf)) >= offsetInFrame) {
91
91
copySize = cb_MIN (size, mem->get_len (pbuf) - (offsetInFrame - pbufOffset));
@@ -114,17 +114,17 @@ cb_boolean handleWlanTargetCopyFromDataFrame(uint8_t* buffer, cbWLANTARGET_dataF
114
114
115
115
cb_boolean handleWlanTargetCopyToDataFrame (cbWLANTARGET_dataFrame* frame, uint8_t * buffer, uint32_t size, uint32_t offsetInFrame)
116
116
{
117
- EMACMemoryManager *mem = WIFI_EMAC ::get_instance ().memory_manager ;
117
+ EMACMemoryManager *mem = OdinWiFiEMAC ::get_instance ().memory_manager ;
118
118
MBED_ASSERT (mem != NULL );
119
119
120
- // emac_mem_buf_t* phead = ( emac_mem_buf_t *) frame;
121
- emac_mem_buf_t * pbuf = ( emac_mem_buf_t *)frame ;
120
+ emac_mem_buf_t * phead = static_cast < emac_mem_buf_t *>( frame) ;
121
+ emac_mem_buf_t * pbuf;
122
122
uint32_t copySize, bytesCopied = 0 , pbufOffset = 0 ;
123
123
124
124
MBED_ASSERT (frame != NULL );
125
125
MBED_ASSERT (buffer != NULL );
126
126
127
- // pbuf = mem->get_next( phead) ;
127
+ pbuf = phead;
128
128
while (pbuf != NULL ) {
129
129
if ((pbufOffset + mem->get_len (pbuf)) >= offsetInFrame) {
130
130
copySize = cb_MIN (size, mem->get_len (pbuf) - (offsetInFrame - pbufOffset));
@@ -153,23 +153,23 @@ cb_boolean handleWlanTargetCopyToDataFrame(cbWLANTARGET_dataFrame* frame, uint8_
153
153
154
154
cbWLANTARGET_dataFrame* handleWlanTargetAllocDataFrame (uint32_t size)
155
155
{
156
- EMACMemoryManager *mem = WIFI_EMAC ::get_instance ().memory_manager ;
156
+ EMACMemoryManager *mem = OdinWiFiEMAC ::get_instance ().memory_manager ;
157
157
MBED_ASSERT (mem != NULL );
158
- return (cbWLANTARGET_dataFrame*)mem->alloc_pool (size,0 );
158
+ return (cbWLANTARGET_dataFrame*)mem->alloc_pool (size, 0 );
159
159
}
160
160
161
161
void handleWlanTargetFreeDataFrame (cbWLANTARGET_dataFrame* frame)
162
162
{
163
- EMACMemoryManager *mem = WIFI_EMAC ::get_instance ().memory_manager ;
163
+ EMACMemoryManager *mem = OdinWiFiEMAC ::get_instance ().memory_manager ;
164
164
MBED_ASSERT (mem != NULL );
165
- mem->free (( emac_mem_buf_t *) frame);
165
+ mem->free (static_cast < emac_mem_buf_t *>( frame) );
166
166
}
167
167
168
168
uint32_t handleWlanTargetGetDataFrameSize (cbWLANTARGET_dataFrame* frame)
169
169
{
170
- EMACMemoryManager *mem = WIFI_EMAC ::get_instance ().memory_manager ;
170
+ EMACMemoryManager *mem = OdinWiFiEMAC ::get_instance ().memory_manager ;
171
171
MBED_ASSERT (mem != NULL );
172
- return mem->get_total_len (( emac_mem_buf_t *) frame);
172
+ return mem->get_total_len (static_cast < emac_mem_buf_t *>( frame) );
173
173
}
174
174
175
175
uint8_t handleWlanTargetGetDataFrameTID (cbWLANTARGET_dataFrame* frame)
@@ -178,7 +178,7 @@ uint8_t handleWlanTargetGetDataFrameTID(cbWLANTARGET_dataFrame* frame)
178
178
return (uint8_t )cbWLAN_AC_BE;
179
179
}
180
180
181
- WIFI_EMAC::WIFI_EMAC ()
181
+ OdinWiFiEMAC::OdinWiFiEMAC ()
182
182
{
183
183
emac_link_input_cb = NULL ;
184
184
emac_link_state_cb = NULL ;
@@ -190,9 +190,9 @@ void send_wlan_packet(void *buf)
190
190
cbWLAN_sendPacket (buf);
191
191
}
192
192
193
- bool WIFI_EMAC ::link_out (emac_mem_buf_t *buf)
193
+ bool OdinWiFiEMAC ::link_out (emac_mem_buf_t *buf)
194
194
{
195
- EMACMemoryManager *mem = WIFI_EMAC ::get_instance ().memory_manager ;
195
+ EMACMemoryManager *mem = OdinWiFiEMAC ::get_instance ().memory_manager ;
196
196
197
197
// Break call chain to avoid the driver affecting stack usage for the IP stack thread too much
198
198
emac_mem_buf_t *new_buf = mem->alloc_pool (mem->get_total_len (buf), 0 );
@@ -209,40 +209,40 @@ bool WIFI_EMAC::link_out(emac_mem_buf_t *buf)
209
209
return true ;
210
210
}
211
211
212
- bool WIFI_EMAC ::power_up ()
212
+ bool OdinWiFiEMAC ::power_up ()
213
213
{
214
214
/* Initialize the hardware */
215
215
/* No-op at this stage */
216
216
return true ;
217
217
}
218
218
219
- uint32_t WIFI_EMAC ::get_mtu_size () const
219
+ uint32_t OdinWiFiEMAC ::get_mtu_size () const
220
220
{
221
- return WIFI_EMAC_MTU_SIZE ;
221
+ return OdinWiFiEMAC_MTU_SIZE ;
222
222
}
223
223
224
- void WIFI_EMAC ::get_ifname (char *name, uint8_t size) const
224
+ void OdinWiFiEMAC ::get_ifname (char *name, uint8_t size) const
225
225
{
226
226
memcpy (name, _ifname, (size < sizeof (_ifname)) ? size : sizeof (_ifname));
227
227
}
228
228
229
- uint8_t WIFI_EMAC ::get_hwaddr_size () const
229
+ uint8_t OdinWiFiEMAC ::get_hwaddr_size () const
230
230
{
231
231
return sizeof (cbWLAN_MACAddress);
232
232
}
233
233
234
- bool WIFI_EMAC ::get_hwaddr (uint8_t *addr) const
234
+ bool OdinWiFiEMAC ::get_hwaddr (uint8_t *addr) const
235
235
{
236
236
cbOTP_read (cbOTP_MAC_WLAN, sizeof (cbWLAN_MACAddress), addr);
237
237
return true ;
238
238
}
239
239
240
- void WIFI_EMAC ::set_hwaddr (const uint8_t *addr)
240
+ void OdinWiFiEMAC ::set_hwaddr (const uint8_t *addr)
241
241
{
242
242
/* No-op at this stage */
243
243
}
244
244
245
- void WIFI_EMAC ::set_link_input_cb (emac_link_input_cb_t input_cb)
245
+ void OdinWiFiEMAC ::set_link_input_cb (emac_link_input_cb_t input_cb)
246
246
{
247
247
emac_link_input_cb = input_cb;
248
248
@@ -251,7 +251,7 @@ void WIFI_EMAC::set_link_input_cb(emac_link_input_cb_t input_cb)
251
251
cbMAIN_driverUnlock ();
252
252
}
253
253
254
- void WIFI_EMAC ::set_link_state_cb (emac_link_state_change_cb_t state_cb)
254
+ void OdinWiFiEMAC ::set_link_state_cb (emac_link_state_change_cb_t state_cb)
255
255
{
256
256
emac_link_state_cb = state_cb;
257
257
@@ -260,45 +260,39 @@ void WIFI_EMAC::set_link_state_cb(emac_link_state_change_cb_t state_cb)
260
260
cbMAIN_driverUnlock ();
261
261
}
262
262
263
- void WIFI_EMAC ::power_down ()
263
+ void OdinWiFiEMAC ::power_down ()
264
264
{
265
265
/* No-op at this stage */
266
266
}
267
267
268
- void WIFI_EMAC ::set_memory_manager (EMACMemoryManager &mem_mngr)
268
+ void OdinWiFiEMAC ::set_memory_manager (EMACMemoryManager &mem_mngr)
269
269
{
270
270
memory_manager = &mem_mngr;
271
271
}
272
272
273
- uint32_t WIFI_EMAC ::get_align_preference () const
273
+ uint32_t OdinWiFiEMAC ::get_align_preference () const
274
274
{
275
- return 1 ; // TODO not sure if there is a requirement but don't think so
275
+ return 1 ;
276
276
}
277
277
278
- void WIFI_EMAC ::add_multicast_group (const uint8_t *address)
278
+ void OdinWiFiEMAC ::add_multicast_group (const uint8_t *address)
279
279
{
280
- // TODO anything to do here for WiFi?
280
+
281
281
}
282
282
283
- void WIFI_EMAC ::remove_multicast_group (const uint8_t *address)
283
+ void OdinWiFiEMAC ::remove_multicast_group (const uint8_t *address)
284
284
{
285
- // TODO anything to do here for WiFi?
285
+
286
286
}
287
287
288
- void WIFI_EMAC ::set_all_multicast (bool all)
288
+ void OdinWiFiEMAC ::set_all_multicast (bool all)
289
289
{
290
- // TODO anything to do here for WiFi?
291
- }
292
290
293
- WIFI_EMAC &WIFI_EMAC::get_instance () {
294
- static WIFI_EMAC emac;
295
- return emac;
296
291
}
297
292
298
- // Weak so a module can override
299
- MBED_WEAK EMAC &EMAC::get_default_instance ()
300
- {
301
- return WIFI_EMAC::get_instance ();
293
+ OdinWiFiEMAC &OdinWiFiEMAC::get_instance () {
294
+ static OdinWiFiEMAC emac;
295
+ return emac;
302
296
}
303
297
304
298
#endif // DEVICE_WIFI
0 commit comments