【摘要】:查询等待方式又称轮询方式。对于不支持中断方式的机器只能采用这种方式来控制I/O过程,所以Linux中也配备了查询等待方式。例如,并行接口的驱动程序中默认的控制方式就是查询等待方式。如函数lp_char_polled()就是以查询等待方式向与并口连接的设备输出一个字符。
5.2.1 查询等待方式
查询等待方式又称轮询方式(polling mode)。对于不支持中断方式的机器只能采用这种方式来控制I/O过程,所以Linux中也配备了查询等待方式。例如,并行接口的驱动程序中默认的控制方式就是查询等待方式。如函数lp_char_polled()就是以查询等待方式向与并口连接的设备输出一个字符。
static inline int lp_char_polled(char lpchar, int minor)
{
int status, wait = 0;
unsigned long count = 0;
struct lp_stats *stats;
do { /* 查询等待循环 */
status = LP_S(minor);
c ount ++;
if(need_resched)
schedule();
} while(!LP_READY(minor,status) && count 〈 LP_CHAR(minor));
if (count == LP_CHAR(minor)) { /* 超时退出 */
return 0;
}
outb_p(lpchar, LP_B(minor)); /* 向设备输出字符 */
}
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。