diff options
author | jeff <jeff@FreeBSD.org> | 2009-01-29 09:22:56 +0000 |
---|---|---|
committer | jeff <jeff@FreeBSD.org> | 2009-01-29 09:22:56 +0000 |
commit | bfa45b3bb76cd5efc2aa5585b51801d544ffffa1 (patch) | |
tree | fa945772aa04bce5c6c8468c1d79e8f54e54ea21 /sys/amd64/include/apicvar.h | |
parent | 7a4494232bd201a9dd1b5de900a340e0667dde2d (diff) | |
download | FreeBSD-src-bfa45b3bb76cd5efc2aa5585b51801d544ffffa1.zip FreeBSD-src-bfa45b3bb76cd5efc2aa5585b51801d544ffffa1.tar.gz |
- Allocate apic vectors on a per-cpu basis. This allows us to allocate
more irqs as we have more cpus. This is principally useful on systems
with msi devices which may want many irqs per-cpu.
Discussed with: jhb
Sponsored by: Nokia
Diffstat (limited to 'sys/amd64/include/apicvar.h')
-rw-r--r-- | sys/amd64/include/apicvar.h | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/sys/amd64/include/apicvar.h b/sys/amd64/include/apicvar.h index 623d637..ea971ec 100644 --- a/sys/amd64/include/apicvar.h +++ b/sys/amd64/include/apicvar.h @@ -176,14 +176,17 @@ inthand_t IDTVEC(apic_isr7), IDTVEC(spuriousint), IDTVEC(timerint); extern vm_paddr_t lapic_paddr; - -u_int apic_alloc_vector(u_int irq); -u_int apic_alloc_vectors(u_int *irqs, u_int count, u_int align); -void apic_disable_vector(u_int vector); -void apic_enable_vector(u_int vector); -void apic_free_vector(u_int vector, u_int irq); -u_int apic_idt_to_irq(u_int vector); +extern int apic_cpuids[]; + +u_int apic_alloc_vector(u_int apic_id, u_int irq); +u_int apic_alloc_vectors(u_int apic_id, u_int *irqs, u_int count, + u_int align); +void apic_disable_vector(u_int apic_id, u_int vector); +void apic_enable_vector(u_int apic_id, u_int vector); +void apic_free_vector(u_int apic_id, u_int vector, u_int irq); +u_int apic_idt_to_irq(u_int apic_id, u_int vector); void apic_register_enumerator(struct apic_enumerator *enumerator); +u_int apic_cpuid(u_int apic_id); void *ioapic_create(vm_paddr_t addr, int32_t apic_id, int intbase); int ioapic_disable_pin(void *cookie, u_int pin); int ioapic_get_vector(void *cookie, u_int pin); |