197 static dev_info_t *ptm_dip; /* private devinfo pointer */
198
199 /*
200 * this will define (struct cb_ops cb_ptm_ops) and (struct dev_ops ptm_ops)
201 */
202 DDI_DEFINE_STREAM_OPS(ptm_ops, nulldev, nulldev, ptm_attach, ptm_detach,
203 nodev, ptm_devinfo, D_MP, &ptminfo, ddi_quiesce_not_supported);
204
205 /*
206 * Module linkage information for the kernel.
207 */
208
209 static struct modldrv modldrv = {
210 &mod_driverops, /* Type of module. This one is a pseudo driver */
211 "Master streams driver 'ptm'",
212 &ptm_ops, /* driver ops */
213 };
214
215 static struct modlinkage modlinkage = {
216 MODREV_1,
217 &modldrv,
218 NULL
219 };
220
221 int
222 _init(void)
223 {
224 int rc;
225
226 if ((rc = mod_install(&modlinkage)) == 0)
227 ptms_init();
228 return (rc);
229 }
230
231 int
232 _fini(void)
233 {
234 return (mod_remove(&modlinkage));
235 }
236
237 int
238 _info(struct modinfo *modinfop)
|
197 static dev_info_t *ptm_dip; /* private devinfo pointer */
198
199 /*
200 * this will define (struct cb_ops cb_ptm_ops) and (struct dev_ops ptm_ops)
201 */
202 DDI_DEFINE_STREAM_OPS(ptm_ops, nulldev, nulldev, ptm_attach, ptm_detach,
203 nodev, ptm_devinfo, D_MP, &ptminfo, ddi_quiesce_not_supported);
204
205 /*
206 * Module linkage information for the kernel.
207 */
208
209 static struct modldrv modldrv = {
210 &mod_driverops, /* Type of module. This one is a pseudo driver */
211 "Master streams driver 'ptm'",
212 &ptm_ops, /* driver ops */
213 };
214
215 static struct modlinkage modlinkage = {
216 MODREV_1,
217 { &modldrv, NULL }
218 };
219
220 int
221 _init(void)
222 {
223 int rc;
224
225 if ((rc = mod_install(&modlinkage)) == 0)
226 ptms_init();
227 return (rc);
228 }
229
230 int
231 _fini(void)
232 {
233 return (mod_remove(&modlinkage));
234 }
235
236 int
237 _info(struct modinfo *modinfop)
|