136 usbser_uftdi_getinfo,
137 nulldev, /* devo_identify */
138 nulldev, /* devo_probe */
139 usbser_uftdi_attach,
140 usbser_uftdi_detach,
141 nodev, /* devo_reset */
142 &uftdi_cb_ops,
143 (struct bus_ops *)NULL, /* devo_bus_ops */
144 usbser_power, /* devo_power */
145 ddi_quiesce_not_needed
146 };
147
148 static struct modldrv modldrv = {
149 &mod_driverops,
150 "FTDI FT232R USB UART driver",
151 &uftdi_ops,
152 };
153
154 static struct modlinkage modlinkage = {
155 MODREV_1,
156 &modldrv
157 };
158
159 int
160 _init(void)
161 {
162 int error;
163
164 if ((error = mod_install(&modlinkage)) != 0)
165 return (error);
166 if ((error = ddi_soft_state_init(&usbser_uftdi_statep,
167 usbser_soft_state_size(), 1)) != 0)
168 (void) mod_remove(&modlinkage);
169 return (error);
170 }
171
172
173 int
174 _fini(void)
175 {
176 int error;
|
136 usbser_uftdi_getinfo,
137 nulldev, /* devo_identify */
138 nulldev, /* devo_probe */
139 usbser_uftdi_attach,
140 usbser_uftdi_detach,
141 nodev, /* devo_reset */
142 &uftdi_cb_ops,
143 (struct bus_ops *)NULL, /* devo_bus_ops */
144 usbser_power, /* devo_power */
145 ddi_quiesce_not_needed
146 };
147
148 static struct modldrv modldrv = {
149 &mod_driverops,
150 "FTDI FT232R USB UART driver",
151 &uftdi_ops,
152 };
153
154 static struct modlinkage modlinkage = {
155 MODREV_1,
156 { &modldrv, NULL }
157 };
158
159 int
160 _init(void)
161 {
162 int error;
163
164 if ((error = mod_install(&modlinkage)) != 0)
165 return (error);
166 if ((error = ddi_soft_state_init(&usbser_uftdi_statep,
167 usbser_soft_state_size(), 1)) != 0)
168 (void) mod_remove(&modlinkage);
169 return (error);
170 }
171
172
173 int
174 _fini(void)
175 {
176 int error;
|