Print this page
3605 Xen HVM hangs during boot if apix is enabled


  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