199
200 /* taskq parameter */
201 extern pri_t minclsyspri;
202
203 /*
204 * tell warlock not to worry about STREAMS structures
205 */
206 _NOTE(SCHEME_PROTECTS_DATA("unique per call", iocblk datab msgb queue copyreq))
207
208 /*
209 * modload support
210 */
211 extern struct mod_ops mod_miscops;
212
213 static struct modlmisc modlmisc = {
214 &mod_miscops, /* Type of module */
215 "USB generic serial module"
216 };
217
218 static struct modlinkage modlinkage = {
219 MODREV_1, (void *)&modlmisc, NULL
220 };
221
222
223 #define RSEQ(f1, f2) RSEQE(f1, usbser_rseq_do_cb, f2, NULL)
224
225
226 /*
227 * loadable module entry points
228 * ----------------------------
229 */
230
231 int
232 _init(void)
233 {
234 int err;
235
236 mutex_init(&usbser_lock, NULL, MUTEX_DRIVER, (void *)NULL);
237
238 if ((err = mod_install(&modlinkage)) != 0)
239 mutex_destroy(&usbser_lock);
|
199
200 /* taskq parameter */
201 extern pri_t minclsyspri;
202
203 /*
204 * tell warlock not to worry about STREAMS structures
205 */
206 _NOTE(SCHEME_PROTECTS_DATA("unique per call", iocblk datab msgb queue copyreq))
207
208 /*
209 * modload support
210 */
211 extern struct mod_ops mod_miscops;
212
213 static struct modlmisc modlmisc = {
214 &mod_miscops, /* Type of module */
215 "USB generic serial module"
216 };
217
218 static struct modlinkage modlinkage = {
219 MODREV_1, { (void *)&modlmisc, NULL }
220 };
221
222
223 #define RSEQ(f1, f2) RSEQE(f1, usbser_rseq_do_cb, f2, NULL)
224
225
226 /*
227 * loadable module entry points
228 * ----------------------------
229 */
230
231 int
232 _init(void)
233 {
234 int err;
235
236 mutex_init(&usbser_lock, NULL, MUTEX_DRIVER, (void *)NULL);
237
238 if ((err = mod_install(&modlinkage)) != 0)
239 mutex_destroy(&usbser_lock);
|