在VirtualBox中添加键盘的IRQ处理程序
我正在尝试编写简单的内核模块,该模块可以通过将共享的中断处理程序注册到键盘或鼠标中断并在VirtualBox中读取时间戳,从而为用户提供随机数。问题是找不到VirtualBox如何处理键盘或鼠标中断,我应该使用哪个IRQ编号?
CAT /PROC /中断输出:
CPU0
0: 30 IO-APIC 2-edge timer
1: 38 IO-APIC 1-edge i8042
8: 0 IO-APIC 8-edge rtc0
9: 0 IO-APIC 9-fasteoi acpi
12: 158 IO-APIC 12-edge i8042
14: 0 IO-APIC 14-edge ata_piix
15: 769 IO-APIC 15-edge ata_piix
16: 329 IO-APIC 16-fasteoi enp0s8
18: 713 IO-APIC 18-fasteoi vmwgfx
19: 5387 IO-APIC 19-fasteoi enp0s3
20: 327 IO-APIC 20-fasteoi vboxguest
21: 28865 IO-APIC 21-fasteoi ahci[0000:00:0d.0], snd_intel8x0
22: 26 IO-APIC 22-fasteoi ohci_hcd:usb1
NMI: 0 Non-maskable interrupts
LOC: 82937 Local timer interrupts
SPU: 0 Spurious interrupts
PMI: 0 Performance monitoring interrupts
IWI: 0 IRQ work interrupts
RTR: 0 APIC ICR read retries
RES: 0 Rescheduling interrupts
CAL: 0 Function call interrupts
TLB: 0 TLB shootdowns
TRM: 0 Thermal event interrupts
THR: 0 Threshold APIC interrupts
DFR: 0 Deferred Error APIC interrupts
MCE: 0 Machine check exceptions
MCP: 3 Machine check polls
ERR: 0
MIS: 0
PIN: 0 Posted-interrupt notification event
NPI: 0 Nested posted-interrupt event
PIW: 0 Posted-interrupt wakeup event
I'm trying to write simple kernel module that can give a random number for user by registering shared interrupt handler to keyboard or mouse interrupts and reading timestamp in virtualbox. The problem is that is can't find out how does virtualbox handle the keyboard or mouse interrupts and which irq number should I use?
cat /proc/interrupts output:
CPU0
0: 30 IO-APIC 2-edge timer
1: 38 IO-APIC 1-edge i8042
8: 0 IO-APIC 8-edge rtc0
9: 0 IO-APIC 9-fasteoi acpi
12: 158 IO-APIC 12-edge i8042
14: 0 IO-APIC 14-edge ata_piix
15: 769 IO-APIC 15-edge ata_piix
16: 329 IO-APIC 16-fasteoi enp0s8
18: 713 IO-APIC 18-fasteoi vmwgfx
19: 5387 IO-APIC 19-fasteoi enp0s3
20: 327 IO-APIC 20-fasteoi vboxguest
21: 28865 IO-APIC 21-fasteoi ahci[0000:00:0d.0], snd_intel8x0
22: 26 IO-APIC 22-fasteoi ohci_hcd:usb1
NMI: 0 Non-maskable interrupts
LOC: 82937 Local timer interrupts
SPU: 0 Spurious interrupts
PMI: 0 Performance monitoring interrupts
IWI: 0 IRQ work interrupts
RTR: 0 APIC ICR read retries
RES: 0 Rescheduling interrupts
CAL: 0 Function call interrupts
TLB: 0 TLB shootdowns
TRM: 0 Thermal event interrupts
THR: 0 Threshold APIC interrupts
DFR: 0 Deferred Error APIC interrupts
MCE: 0 Machine check exceptions
MCP: 3 Machine check polls
ERR: 0
MIS: 0
PIN: 0 Posted-interrupt notification event
NPI: 0 Nested posted-interrupt event
PIW: 0 Posted-interrupt wakeup event
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论