70 0, /* refcnt */
71 hubd_info, /* info */
72 nulldev, /* identify */
73 nulldev, /* probe */
74 usba_hubdi_attach, /* attach */
75 usba_hubdi_detach, /* detach */
76 nodev, /* reset */
77 &hubd_cb_ops, /* driver operations */
78 &usba_hubdi_busops, /* bus operations */
79 usba_hubdi_power, /* power */
80 ddi_quiesce_not_needed, /* quiesce */
81 };
82
83 static struct modldrv modldrv = {
84 &mod_driverops, /* Type of module. This one is a driver */
85 "USB Hub Driver", /* Name of the module. */
86 &hubd_ops, /* driver ops */
87 };
88
89 static struct modlinkage modlinkage = {
90 MODREV_1, (void *)&modldrv, NULL
91 };
92
93
94 extern void *hubd_statep;
95
96 int
97 _init(void)
98 {
99 int rval;
100
101 /* Initialize the soft state structures */
102 if ((rval = ddi_soft_state_init(&hubd_statep,
103 sizeof (hubd_t), HUBD_INITIAL_SOFT_SPACE)) != 0) {
104 return (rval);
105 }
106
107 if ((rval = mod_install(&modlinkage)) != 0) {
108 ddi_soft_state_fini(&hubd_statep);
109
110 return (rval);
|
70 0, /* refcnt */
71 hubd_info, /* info */
72 nulldev, /* identify */
73 nulldev, /* probe */
74 usba_hubdi_attach, /* attach */
75 usba_hubdi_detach, /* detach */
76 nodev, /* reset */
77 &hubd_cb_ops, /* driver operations */
78 &usba_hubdi_busops, /* bus operations */
79 usba_hubdi_power, /* power */
80 ddi_quiesce_not_needed, /* quiesce */
81 };
82
83 static struct modldrv modldrv = {
84 &mod_driverops, /* Type of module. This one is a driver */
85 "USB Hub Driver", /* Name of the module. */
86 &hubd_ops, /* driver ops */
87 };
88
89 static struct modlinkage modlinkage = {
90 MODREV_1, { (void *)&modldrv, NULL }
91 };
92
93
94 extern void *hubd_statep;
95
96 int
97 _init(void)
98 {
99 int rval;
100
101 /* Initialize the soft state structures */
102 if ((rval = ddi_soft_state_init(&hubd_statep,
103 sizeof (hubd_t), HUBD_INITIAL_SOFT_SPACE)) != 0) {
104 return (rval);
105 }
106
107 if ((rval = mod_install(&modlinkage)) != 0) {
108 ddi_soft_state_fini(&hubd_statep);
109
110 return (rval);
|