62 DDI_INTROP_GETPENDING, /* 18 get pending interrupt */
63 DDI_INTROP_NAVAIL, /* 19 get num of available interrupts */
64 DDI_INTROP_GETPOOL, /* 20 get resource management pool */
65 DDI_INTROP_GETTARGET, /* 21 get target for a given intr(s) */
66 DDI_INTROP_SETTARGET /* 22 set target for a given intr(s) */
67 } ddi_intr_op_t;
68
69 /* Version number used in the handles */
70 #define DDI_INTR_VERSION_1 1
71 #define DDI_INTR_VERSION DDI_INTR_VERSION_1
72
73 /*
74 * One such data structure is allocated per ddi_intr_handle_t
75 * This is the incore copy of the regular interrupt info.
76 */
77 typedef struct ddi_intr_handle_impl {
78 dev_info_t *ih_dip; /* dip associated with handle */
79 uint16_t ih_type; /* interrupt type being used */
80 ushort_t ih_inum; /* interrupt number */
81 uint32_t ih_vector; /* vector number */
82 uint16_t ih_ver; /* Version */
83 uint_t ih_state; /* interrupt handle state */
84 uint_t ih_cap; /* interrupt capabilities */
85 uint_t ih_pri; /* priority - bus dependent */
86 krwlock_t ih_rwlock; /* read/write lock per handle */
87
88 uint_t (*ih_cb_func)(caddr_t, caddr_t);
89 void *ih_cb_arg1;
90 void *ih_cb_arg2;
91
92 /*
93 * The following 3 members are used to support MSI-X specific features
94 */
95 uint_t ih_flags; /* Misc flags */
96 uint_t ih_dup_cnt; /* # of dupped msi-x vectors */
97 struct ddi_intr_handle_impl *ih_main;
98 /* pntr to the main vector */
99 /*
100 * The next set of members are for 'scratch' purpose only.
101 * The DDI interrupt framework uses them internally and their
|
62 DDI_INTROP_GETPENDING, /* 18 get pending interrupt */
63 DDI_INTROP_NAVAIL, /* 19 get num of available interrupts */
64 DDI_INTROP_GETPOOL, /* 20 get resource management pool */
65 DDI_INTROP_GETTARGET, /* 21 get target for a given intr(s) */
66 DDI_INTROP_SETTARGET /* 22 set target for a given intr(s) */
67 } ddi_intr_op_t;
68
69 /* Version number used in the handles */
70 #define DDI_INTR_VERSION_1 1
71 #define DDI_INTR_VERSION DDI_INTR_VERSION_1
72
73 /*
74 * One such data structure is allocated per ddi_intr_handle_t
75 * This is the incore copy of the regular interrupt info.
76 */
77 typedef struct ddi_intr_handle_impl {
78 dev_info_t *ih_dip; /* dip associated with handle */
79 uint16_t ih_type; /* interrupt type being used */
80 ushort_t ih_inum; /* interrupt number */
81 uint32_t ih_vector; /* vector number */
82 int ih_irq; /* irq number */
83 uint16_t ih_ver; /* Version */
84 uint_t ih_state; /* interrupt handle state */
85 uint_t ih_cap; /* interrupt capabilities */
86 uint_t ih_pri; /* priority - bus dependent */
87 krwlock_t ih_rwlock; /* read/write lock per handle */
88
89 uint_t (*ih_cb_func)(caddr_t, caddr_t);
90 void *ih_cb_arg1;
91 void *ih_cb_arg2;
92
93 /*
94 * The following 3 members are used to support MSI-X specific features
95 */
96 uint_t ih_flags; /* Misc flags */
97 uint_t ih_dup_cnt; /* # of dupped msi-x vectors */
98 struct ddi_intr_handle_impl *ih_main;
99 /* pntr to the main vector */
100 /*
101 * The next set of members are for 'scratch' purpose only.
102 * The DDI interrupt framework uses them internally and their
|