我正在阅读Robert编写的,目前正在阅读Linux中的中断处理。它提到,驱动程序可以使用下面的函数注册来处理硬件设备,其中最后的参数dev是唯一的w.r.t到设备。这是否意味着我们不能让两个设备驱动程序服务于同一个硬件设备?如果我想实现与现有驱动程序一起工作的键盘驱动程序,难道不可能吗?我是否需要注销现有的键盘驱动程序并注册我编写的驱动程序?
int request_irq(unsigned int irq, irq_handler_t handler, unsigned long flags,
const char *name, void *dev)
我正在研究Linux内核中的驱动程序内核模块,通常通过探测函数调用request_irq()。驱动程序/net/以太网/natsemi/ one 83820.ko可以是这样的例子。
request_irq()调用request_threaded_irq(),注释中提到了这一点:
This call allocates interrupt resources and enables the
interrupt line and IRQ handling. From the point this
call is made your handler function may be invoked.
我需要知道在什么地方可以对e1000 linux驱动程序中接收/传输的网络数据包进行归零。我需要知道这一点才能通过一个遵从性要求,但我无法在e1000的代码中找到对网络数据包缓冲区进行零化的地方(或者如果它已经在某个地方进行了零化,那就太好了)
当接口在文件Intel_LAN_15.0.0_Linux_Source_A00/Source/base_driver/e1000e-2.4.14/src/netdev.c中的内核中、e1000_clean_rx_ring()函数和e1000_clean_tx_ring()函数中上升或下降时,我看到它确实会引起零化:
/* Zero out th