diff options
author | marcel <marcel@FreeBSD.org> | 2007-07-30 22:29:33 +0000 |
---|---|---|
committer | marcel <marcel@FreeBSD.org> | 2007-07-30 22:29:33 +0000 |
commit | 78786023896b76f48c8a7f6e7c8acb18229a3e0e (patch) | |
tree | 3beca60cdded8a7ab5493243c2a72bb5577a5f53 /sys/ia64/include/md_var.h | |
parent | 8fddc91c7054cd46eef9d54a5307a13687e3c68b (diff) | |
download | FreeBSD-src-78786023896b76f48c8a7f6e7c8acb18229a3e0e.zip FreeBSD-src-78786023896b76f48c8a7f6e7c8acb18229a3e0e.tar.gz |
Rework the interrupt code and add support for interrupt filtering
(INTR_FILTER). This includes:
o Save a pointer to the sapic structure and IRQ for every vector,
so that we can quickly EOI, mask and unmask the interrupt.
o Add locking to the sapic code now that we can reprogram a
sapic on multiple CPUs at the same time.
o Use u_int for the vector and IRQ. We only have 256 vectors, so
using a 64-bit type for it is rather excessive.
o Properly handle concurrent registration of a handler for the
same vector.
Since vectors have a corresponding priority, we should not map
IRQs to vectors in a linear fashion, but rather pick a vector
that has a priority in line with the interrupt type. This is left
for later. The vector/IRQ interchange has been untangled as much
as possible to make this easier.
Approved by: re (blacket)
Diffstat (limited to 'sys/ia64/include/md_var.h')
-rw-r--r-- | sys/ia64/include/md_var.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/ia64/include/md_var.h b/sys/ia64/include/md_var.h index 864e6c9..e54ac9e 100644 --- a/sys/ia64/include/md_var.h +++ b/sys/ia64/include/md_var.h @@ -84,7 +84,7 @@ int ia64_highfp_drop(struct thread *); int ia64_highfp_save(struct thread *); void ia64_init(void); void ia64_probe_sapics(void); -int interrupt(uint64_t, struct trapframe *); +int interrupt(u_int, struct trapframe *); void map_gateway_page(void); void map_pal_code(void); void map_vhpt(uintptr_t); |