您的位置: 南昌信息港 > 生活

Linux系统串口上网的简单实现下2

发布时间:2019-06-20 00:56:44

  我们看到我们的伪络接口没有 Interrupt和Base address,这是因为这个伪络接口不和硬件打交道,也没有分配中断号和IO基址。否则,如果你看一个实实在在的络接口(如下面的eth1),可以看到它的Interrupt号是11和IO Base address是0xa000。 eth1 Link encap:Ethernet HWaddr 50:78:4C:43:1D:01 inet addr:192.168.21.202 Bcast:192.168.21.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:356523 errors:0 dropped:0 overruns:0 frame:0 TX packets:266 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes: (20.5 Mb) TX bytes:19510 (19.0 Kb) Interrupt:11 Base address:0xa000

  ednet_dev的init域是一个函数指针,指向用户定义的ednet_init()例程。ednet_init()添充net_device结构,只有ednet_init()初始化成功后,系统才被加入到设备链表中。ednet_dev的初始化例程ednet_init()如下: #ifdef LINUX_24int ednet_init(struct net_device *dev)#elseint ednet_init(struct device *dev)#endif{ ether_setup(dev); dev-open = ednet_open; dev-stop = ednet_release; dev-hard_start_xmit = ednet_tx; dev-get_stats = ednet_stats; dev-change_mtu = ednet_change_mtu; #ifdef LINUX_24 dev-hard_header = ednet_header;#endif dev-rebuild_header = ednet_rebuild_header;#ifdef LINUX_24 dev-tx_timeout = ednet_tx_timeout; dev-watchdog_timeo = timeout;#endif /* We do not need the ARP protocol. */ dev-flags |= IFF_NOARP;#ifndef LINUX_20 dev-hard_header_cache = NULL; #endif #ifdef LINUX_24 SET_MODULE_OWNER(dev);#endif dev-priv = kmalloc(sizeof(struct ednet_priv), GFP_KERNEL); if (dev-priv == NULL) return -ENOMEM; memset(dev-priv, 0, sizeof(struct ednet_priv)); spin_lock_init( ((struct ednet_priv *) dev-priv)-lock); return 0;}

有什么方式缓解痛经
有什么治疗痛经的药物
原发性痛经的主要病因
猜你会喜欢的
猜你会喜欢的