阅读:2966回复:3
关于读取PCI配置的问题
PCI规范中讲到,直接操作port读取PCI配置信息时,要求分别两步
第一步是向0xCF8写入要读取的位置 mov dx,0xCF8 mov eax,val out dx,eax 第二步是从0xCFC读取所需要数据。 mov dx,0xCFC in eax,dx mov val,eax 这两部是分开的,在有多个线程都读取PCI配置信息时可能出一个线程执行完第一步后被挂起,假设它已向0xCF8写入var1.此时另一个线程执行,它向0xCF8写入var2后也被挂起,然后又轮到线程1执行,这样它得到的将会是var2的信息,而不是var1的信息。这肯定是个错误。 请问,实际情况是这样的吗? 请高人指点! |
|
沙发#
发布于:2007-01-08 16:03
不错。坛子里有篇文章就讨论了这个问题的。
|
|
板凳#
发布于:2007-01-08 16:16
不过哪有那么巧呢?一般都是写后立刻读出来。
|
|
地板#
发布于:2007-01-08 18:46
这个地方当然要先 cli 然后再读些,结束后再sti
|
|