12.3. 轮询

static void xxx_poll (struct cam_sim *sim); 
struct cam_sim *sim ;
 

轮询函数用于当中断子系统不起作用时(例如,系统崩溃或正在创建 系统转储)模拟中断。CAM子系统在调用轮询函数前设置适当的中断级别。 因此它所需做全部的只是调用中断例程(或其他方法,轮询例程来 进行实际动作, 而中断例程只是调用轮询例程)。那么为什么要找麻烦 弄出一个单独的函数来呢?这是由于不同的调用约定。 xxx_poll例程取结构cam_sim的指针作为参量, 而PCI中断例程按照普通约定取的是指向结构 xxx_softc的指针,ISA中断例程只是取设备号, 因此轮询例程一般看起来像:

static voidxxx_poll(struct cam_sim *sim){ xxx_intr((struct xxx_softc *)cam_sim_softc(sim)); /* for PCI device */}

or

static voidxxx_poll(struct cam_sim *sim){ xxx_intr(cam_sim_unit(sim)); /* for ISA device */}

本文档和其它文档可从这里下载: ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

如果对于FreeBSD有问题,请先阅读 文档,如不能解决再联系 <questions@FreeBSD.org>.

关于本文档的问题请发信联系 <doc@FreeBSD.org>.