summaryrefslogtreecommitdiffstats
path: root/sys/amd64/include/apicvar.h
diff options
context:
space:
mode:
authorjeff <jeff@FreeBSD.org>2009-01-29 09:22:56 +0000
committerjeff <jeff@FreeBSD.org>2009-01-29 09:22:56 +0000
commitbfa45b3bb76cd5efc2aa5585b51801d544ffffa1 (patch)
treefa945772aa04bce5c6c8468c1d79e8f54e54ea21 /sys/amd64/include/apicvar.h
parent7a4494232bd201a9dd1b5de900a340e0667dde2d (diff)
downloadFreeBSD-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.h17
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);
OpenPOWER on IntegriCloud