Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
Hello!everyone,i'm a newbie around OS dev and hardware , i'm have been confused on this so much : how does those irqs resides in IOAPIC(any tables?),and is there somehow something relationships between the both. My questions stem from the following windows driver snippet. i'm so sorroy for the chinese comments. I commented those lines in which i can't figure out:
Each redirection entry occupies two registers starting at 0x10. Therefore, entry 1 is at 0x12. However, not all systems have ISA IRQ 1 connected to IO APIC pin 1.
On ACPI systems, each ISA IRQ corresponds to the same numbered pin on the IO APIC whose Global System Interrupt base is 0. So, ISA IRQ number equals the GSI number.
[quote="Gigasoft"]Each redirection entry occupies two registers starting at 0x10. Therefore, entry 1 is at 0x12.[quote]
,
Hello ....
1.I understand this superficially and literally above, could you describe this subject more in detail and make me a full knowledge.
2. The following bitwise operations. what's the ues for?
// 如果new_ch不为0,我们就设置新值。并返回旧值。
if(new_ch != 0)
{ //here,two line bitwise operations,i don't understand what's the meaning of at all
ch1 = *io_win;
ch1 &= 0xffffff00;
ch1 |= (P2C_U32)new_ch;
*io_win = ch1;
KdPrint(("p2cSeachOrSetIrq1: set %2x to irq1.\r\n",(P2C_U8)new_ch));
}