175 0, /* refcnt */
176 usb_mid_info, /* info */
177 nulldev, /* identify */
178 nulldev, /* probe */
179 usb_mid_attach, /* attach */
180 usb_mid_detach, /* detach */
181 nodev, /* reset */
182 &usb_mid_cb_ops, /* driver operations */
183 &usb_mid_busops, /* bus operations */
184 usb_mid_power, /* power */
185 ddi_quiesce_not_needed, /* quiesce */
186 };
187
188 static struct modldrv modldrv = {
189 &mod_driverops, /* Type of module. This one is a driver */
190 "USB Multi Interface Driver", /* Name of the module. */
191 &usb_mid_ops, /* driver ops */
192 };
193
194 static struct modlinkage modlinkage = {
195 MODREV_1, (void *)&modldrv, NULL
196 };
197
198 #define USB_MID_INITIAL_SOFT_SPACE 4
199 static void *usb_mid_statep;
200
201
202 /*
203 * prototypes
204 */
205 static void usb_mid_create_children(usb_mid_t *usb_mid);
206 static int usb_mid_cleanup(dev_info_t *dip, usb_mid_t *usb_mid);
207
208 /*
209 * event definition
210 */
211 static ndi_event_definition_t usb_mid_ndi_event_defs[] = {
212 {USBA_EVENT_TAG_HOT_REMOVAL, DDI_DEVI_REMOVE_EVENT, EPL_KERNEL,
213 NDI_EVENT_POST_TO_ALL},
214 {USBA_EVENT_TAG_HOT_INSERTION, DDI_DEVI_INSERT_EVENT, EPL_KERNEL,
215 NDI_EVENT_POST_TO_ALL},
|
175 0, /* refcnt */
176 usb_mid_info, /* info */
177 nulldev, /* identify */
178 nulldev, /* probe */
179 usb_mid_attach, /* attach */
180 usb_mid_detach, /* detach */
181 nodev, /* reset */
182 &usb_mid_cb_ops, /* driver operations */
183 &usb_mid_busops, /* bus operations */
184 usb_mid_power, /* power */
185 ddi_quiesce_not_needed, /* quiesce */
186 };
187
188 static struct modldrv modldrv = {
189 &mod_driverops, /* Type of module. This one is a driver */
190 "USB Multi Interface Driver", /* Name of the module. */
191 &usb_mid_ops, /* driver ops */
192 };
193
194 static struct modlinkage modlinkage = {
195 MODREV_1, { (void *)&modldrv, NULL }
196 };
197
198 #define USB_MID_INITIAL_SOFT_SPACE 4
199 static void *usb_mid_statep;
200
201
202 /*
203 * prototypes
204 */
205 static void usb_mid_create_children(usb_mid_t *usb_mid);
206 static int usb_mid_cleanup(dev_info_t *dip, usb_mid_t *usb_mid);
207
208 /*
209 * event definition
210 */
211 static ndi_event_definition_t usb_mid_ndi_event_defs[] = {
212 {USBA_EVENT_TAG_HOT_REMOVAL, DDI_DEVI_REMOVE_EVENT, EPL_KERNEL,
213 NDI_EVENT_POST_TO_ALL},
214 {USBA_EVENT_TAG_HOT_INSERTION, DDI_DEVI_INSERT_EVENT, EPL_KERNEL,
215 NDI_EVENT_POST_TO_ALL},
|