Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
X86 更改特定设备的中断号_X86 - Fatal编程技术网

X86 更改特定设备的中断号

X86 更改特定设备的中断号,x86,X86,据我所知,硬件中断(与软件中断相反)使用硬编码调度表来提供请求的资源,但我想知道是否可以更改这些值?这些值是特定于操作系统还是特定于CPU?操作系统可以访问此表吗 是的,当然操作系统可以更改表条目,它只是存储在普通RAM中。它甚至可以通过运行LIDT指令来更改表的位置。(googleit.)在DOS中,程序可以通过为该IRQ安装其处理程序并使其处理程序跳转到先前存储在表中的任何地址来“钩住”中断。(所以你最终得到了一系列处理程序。)等等,你不是在说中断号->中断处理程序表,是吗?你说的是PCI中

据我所知,硬件中断(与软件中断相反)使用硬编码调度表来提供请求的资源,但我想知道是否可以更改这些值?这些值是特定于操作系统还是特定于CPU?操作系统可以访问此表吗

是的,当然操作系统可以更改表条目,它只是存储在普通RAM中。它甚至可以通过运行LIDT指令来更改表的位置。(googleit.)在DOS中,程序可以通过为该IRQ安装其处理程序并使其处理程序跳转到先前存储在表中的任何地址来“钩住”中断。(所以你最终得到了一系列处理程序。)等等,你不是在说中断号->中断处理程序表,是吗?你说的是PCI中断管脚或任何东西是如何映射到IRQ编号的,对吗?@PeterCordes,是的,前一个,所以你问的是IDT。我很惊讶你不能通过搜索自己找到答案。所以你的意思是“后者”,而不是“前者”。这就是我在发布第二条评论时的想法。是的,这是可以配置的,但我不知道机制。PCI/PCIe即插即用比ISA pnp(设备选择要发送的中断和响应的I/O端口)工作得好得多。将硬件事件映射到中断数可能是ACPI的一部分,但在这一点上我只是猜测。是的,操作系统当然可以更改表项,它只是存储在普通RAM中。它甚至可以通过运行LIDT指令来更改表的位置。(googleit.)在DOS中,程序可以通过为该IRQ安装其处理程序并使其处理程序跳转到先前存储在表中的任何地址来“钩住”中断。(所以你最终得到了一系列处理程序。)等等,你不是在说中断号->中断处理程序表,是吗?你说的是PCI中断管脚或任何东西是如何映射到IRQ编号的,对吗?@PeterCordes,是的,前一个,所以你问的是IDT。我很惊讶你不能通过搜索自己找到答案。所以你的意思是“后者”,而不是“前者”。这就是我在发布第二条评论时的想法。是的,这是可以配置的,但我不知道机制。PCI/PCIe即插即用比ISA pnp(设备选择要发送的中断和响应的I/O端口)工作得好得多。将硬件事件映射到中断数可能是ACPI的一部分,但在这一点上我只是猜测。