October 2017
Intermediate to advanced
586 pages
14h 8m
English
We can summarize the concepts discussed previously in the following fake Ethernet driver:
#include <linux/module.h> #include <linux/kernel.h> #include <linux/errno.h> #include <linux/init.h> #include <linux/netdevice.h> #include <linux/etherdevice.h> #include <linux/ethtool.h> #include <linux/skbuff.h> #include <linux/slab.h> #include <linux/of.h> /* For DT*/ #include <linux/platform_device.h> /* For platform devices */ struct eth_struct { int bar; int foo; struct net_device *dummy_ndev; }; static int fake_eth_open(struct net_device *dev) { printk("fake_eth_open called\n"); /* We are now ready to accept transmit requests from * the queueing layer of the networking. */ netif_start_queue(dev); return 0; } static int fake_eth_release(struct ...