diff options
author | Evan Yan <Evan.Yan@Sun.COM> | 2009-07-08 12:59:05 +0800 |
---|---|---|
committer | Evan Yan <Evan.Yan@Sun.COM> | 2009-07-08 12:59:05 +0800 |
commit | 09b1eac246a4e627fcbd1ce5bf8005746cbe45ea (patch) | |
tree | 93e222c6801d3c9f0232a908d59d09d0175cbecc /usr/src/uts/common/sys/ddi_intr_impl.h | |
parent | 050c4bfe6b1d1f7437af48ce2b7670e840e94f97 (diff) | |
download | illumos-gate-09b1eac246a4e627fcbd1ce5bf8005746cbe45ea.tar.gz |
PSARC/2009/340 Interrupt affinity interfaces and PCITool enhancements
6796906 Interfaces needed for querying and re-targetting msi-x interrupts
6805710 px driver should support re-targetting MSI-X interrupts
6849547 PCITool enhancements
6851623 ddi_intr_enable() and ddi_intr_disable() fails randomly for dup interrupt.
Diffstat (limited to 'usr/src/uts/common/sys/ddi_intr_impl.h')
-rw-r--r-- | usr/src/uts/common/sys/ddi_intr_impl.h | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/usr/src/uts/common/sys/ddi_intr_impl.h b/usr/src/uts/common/sys/ddi_intr_impl.h index 71c1d1849d..de4cd40d81 100644 --- a/usr/src/uts/common/sys/ddi_intr_impl.h +++ b/usr/src/uts/common/sys/ddi_intr_impl.h @@ -62,7 +62,9 @@ typedef enum { DDI_INTROP_CLRMASK, /* 17 clear mask */ DDI_INTROP_GETPENDING, /* 18 get pending interrupt */ DDI_INTROP_NAVAIL, /* 19 get num of available interrupts */ - DDI_INTROP_GETPOOL /* 20 get resource management pool */ + DDI_INTROP_GETPOOL, /* 20 get resource management pool */ + DDI_INTROP_GETTARGET, /* 21 get target for a given intr(s) */ + DDI_INTROP_SETTARGET /* 22 set target for a given intr(s) */ } ddi_intr_op_t; /* Version number used in the handles */ @@ -112,6 +114,14 @@ typedef struct ddi_intr_handle_impl { void *ih_private; /* Platform specific data */ uint_t ih_scratch1; /* Scratch1: #interrupts */ void *ih_scratch2; /* Scratch2: flag/h_array */ + + /* + * The ih_target field may not reflect the actual target that is + * currently being used for the given interrupt. This field is just a + * snapshot taken either during ddi_intr_add_handler() or + * ddi_intr_get/set_affinity() calls. + */ + ddi_intr_target_t ih_target; /* Target ID */ } ddi_intr_handle_impl_t; /* values for ih_state (strictly for interrupt handle) */ |