作者bluestar8783 (蓝星)
看板LinuxDev
标题[问题] 收不到POLLIN讯号?
时间Fri Mar 11 22:20:23 2011
我有个driver,会产生1个device node:AAA,两个input device:BBB和CCC,
我有实作AAA的fops.poll函数,让其回传(POLLIN | POLLRDNORM)
因为driver内部会有两种类型的资料,如果上层App需要B类型的资料,
就会读取input device:BBB(EV_ABS);如果上层App需要C类型的资料,就会
读取input device:CCC(EV_REL)
我用个App同时读取两种类型的资料,在读取的时候会去判断pollfd的revents
是否有变成POLLIN,如果有才真正去读值。
我读取input device:BBB时候,能够正常的读到资料;但是去读CCC时则除了
一开始的第一次能读到外,就都读取不到了(driver有一直往上送)
而去debug时发现,第二次後CCC的revents不会变成POLLIN,而导致资料读取
失败。
想请问,有哪些原因会导致CCC收不到之後的资料呢?
或是说driver只能容许生成一个input device呢?
如果只能生成一个input device,那可以同时开启并且收取不同的资料吗?
感谢!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.169.82.10