MCPcopy Create free account
hub / github.com/apache/nuttx / sim_netdriver_init

Function sim_netdriver_init

arch/sim/src/sim/sim_netdriver.c:289–339  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

287 ****************************************************************************/
288
289int sim_netdriver_init(void)
290{
291 struct netdev_lowerhalf_s *dev;
292 int devidx;
293
294 for (devidx = 0; devidx < CONFIG_SIM_NETDEV_NUMBER; devidx++)
295 {
296 dev = IDXDEV(devidx);
297
298 /* Internal initialization */
299
300 sim_netdev_init(devidx, dev,
301 netdriver_txdone_interrupt,
302 netdriver_rxready_interrupt);
303
304 /* 1TX + 1RX is enough for sim. */
305
306 dev->quota[NETPKT_TX] = 1;
307 dev->quota[NETPKT_RX] = 1;
308 dev->ops = &g_ops;
309
310#if CONFIG_SIM_WIFIDEV_NUMBER != 0
311 if (devidx < CONFIG_SIM_WIFIDEV_NUMBER)
312 {
313 int ret =
314# if defined(CONFIG_SIM_WIFIDEV_HOST)
315 sim_wifihost_init((struct sim_wifihost_lowerhalf_s *)dev,
316 devidx);
317# elif defined(CONFIG_SIM_WIFIDEV_PSEUDO)
318 wifi_sim_init((struct wifi_sim_lowerhalf_s *)dev);
319# endif
320 if (ret < 0)
321 {
322 return ret;
323 }
324 }
325#endif
326
327 /* Register the device with the OS so that socket IOCTLs can be
328 * performed
329 */
330
331 netdev_lower_register(dev, devidx < CONFIG_SIM_WIFIDEV_NUMBER ?
332 NET_LL_IEEE80211 : NET_LL_ETHERNET);
333 work_queue_wq(g_work_queue, &g_sim_dev[devidx].work,
334 sim_netdev_work, &g_sim_dev[devidx],
335 SIM_NETDEV_PERIOD);
336 }
337
338 return OK;
339}
340
341void sim_netdriver_setmacaddr(int devidx, unsigned char *macaddr)
342{

Callers 1

up_initializeFunction · 0.85

Calls 4

sim_wifihost_initFunction · 0.85
wifi_sim_initFunction · 0.85
netdev_lower_registerFunction · 0.85
work_queue_wqFunction · 0.85

Tested by

no test coverage detected