179
180 /*
181 * this will define (struct cb_ops cb_pts_ops) and (struct dev_ops pts_ops)
182 */
183 DDI_DEFINE_STREAM_OPS(pts_ops, nulldev, nulldev, \
184 pts_attach, pts_detach, nodev, \
185 pts_devinfo, PTS_CONF_FLAG, &ptsinfo, ddi_quiesce_not_supported);
186
187 /*
188 * Module linkage information for the kernel.
189 */
190
191 static struct modldrv modldrv = {
192 &mod_driverops, /* Type of module. This one is a pseudo driver */
193 "Slave Stream Pseudo Terminal driver 'pts'",
194 &pts_ops, /* driver ops */
195 };
196
197 static struct modlinkage modlinkage = {
198 MODREV_1,
199 &modldrv,
200 NULL
201 };
202
203 int
204 _init(void)
205 {
206 int rc;
207
208 if ((rc = mod_install(&modlinkage)) == 0)
209 ptms_init();
210 return (rc);
211 }
212
213
214 int
215 _fini(void)
216 {
217 return (mod_remove(&modlinkage));
218 }
219
220 int
|
179
180 /*
181 * this will define (struct cb_ops cb_pts_ops) and (struct dev_ops pts_ops)
182 */
183 DDI_DEFINE_STREAM_OPS(pts_ops, nulldev, nulldev, \
184 pts_attach, pts_detach, nodev, \
185 pts_devinfo, PTS_CONF_FLAG, &ptsinfo, ddi_quiesce_not_supported);
186
187 /*
188 * Module linkage information for the kernel.
189 */
190
191 static struct modldrv modldrv = {
192 &mod_driverops, /* Type of module. This one is a pseudo driver */
193 "Slave Stream Pseudo Terminal driver 'pts'",
194 &pts_ops, /* driver ops */
195 };
196
197 static struct modlinkage modlinkage = {
198 MODREV_1,
199 { &modldrv, NULL }
200 };
201
202 int
203 _init(void)
204 {
205 int rc;
206
207 if ((rc = mod_install(&modlinkage)) == 0)
208 ptms_init();
209 return (rc);
210 }
211
212
213 int
214 _fini(void)
215 {
216 return (mod_remove(&modlinkage));
217 }
218
219 int
|