Linux中断共享的问题
我主要想在2.6.15内核中添加一个ADC驱动,但是内核中本身有个触摸屏驱动,申请中断的方式是SA_SAMPLE_RANDOM ,如果要添加一个ADC驱动的话,是否要把触摸屏驱动中的申请中断方式改成SA_SHIRQ?
哪位大侠有更好的建议?
SA_INTERRUPT
当置位了, 这表示一个"快速"中断处理. 快速处理在当前处理器上禁止中断来执行(这个主题在"快速和慢速处理"一节涉及).
SA_SHIRQ
这个位表示中断可以在设备间共享. 共享的概念在"中断共享"一节中略述.
SA_SAMPLE_RANDOM
这个位表示产生的中断能够有贡献给 /dev/random 和 /dev/urandom 使用的加密池. 这些设备在读取时返回真正的随机数并且设计来帮助应用程序软件为加密选择安全钥. 这样的随机数从一个由各种随机事件贡献的加密池中提取的. 如果你的设备以真正随机的时间产生中断, 你应当设置这个标志. 如果, 另一方面, 你的中断是可预测的( 例如, 一个帧抓取器的场消隐), 这个标志不值得设置 -- 它无论如何不会对系统加密有贡献. 可能被攻击者影响的设备不应当设置这个标志; 例如, 网络驱动易遭受从外部计时的可预测报文并且不应当对加密池有贡献. 更多信息看 drivers/char/random.c 的注释.
------解决方案--------------------
你的思路是对的, 没有问题.
而且 ADC的驱动也必须是独立的, 不能和触摸屏驱动写到一起.
另外在触摸屏的中断服务函数里,也需要判断一下是不是自己的中断.