Home | Info | Community | Development | myReactOS | Contact Us
Definition at line 404 of file apic.c.
Referenced by ApicInitializeIOApic().
{ IOAPIC_REDIRECTION_REGISTER ReDirReg; IN UCHAR Vector; /* Start with lowest vector */ Vector = IrqlToTpr(Irql) & 0xF0; /* Find an empty vector */ while (HalpVectorToIndex[Vector] != 0xFF) { Vector++; /* Check if we went over the edge */ if (TprToIrql(Vector) > Irql) { /* Nothing free, return failure */ return 0; } } /* Save irq in the table */ HalpVectorToIndex[Vector] = Irq; /* Setup a redirection entry */ ReDirReg.Vector = Vector; ReDirReg.DeliveryMode = APIC_MT_LowestPriority; ReDirReg.DestinationMode = APIC_DM_Logical; ReDirReg.DeliveryStatus = 0; ReDirReg.Polarity = 0; ReDirReg.RemoteIRR = 0; ReDirReg.TriggerMode = APIC_TGM_Edge; ReDirReg.Mask = 1; ReDirReg.Reserved = 0; ReDirReg.Destination = 0; /* Initialize entry */ IOApicWrite(IOAPIC_REDTBL + 2 * Irq, ReDirReg.Long0); IOApicWrite(IOAPIC_REDTBL + 2 * Irq + 1, ReDirReg.Long1); return Vector; }