158 * Do not attempt to modify these flags unless the entire corresponding
159 * driver code is changed to accomodate the newly represented MT-STREAMS
160 * flags. Doing so without making proper modifications to the driver code
161 * will severely impact the intended driver behavior, and thus may affect
162 * the system's stability and performance.
163 */
164 DDI_DEFINE_STREAM_OPS(sppp_ops, \
165 nulldev, nulldev, \
166 _mi_driver_attach, _mi_driver_detach, nodev, _mi_driver_info, \
167 D_NEW | D_MP | D_MTQPAIR | D_MTOUTPERIM | D_MTOCEXCL | D_MTPUTSHARED, \
168 &sppp_tab, ddi_quiesce_not_supported);
169
170 static struct modldrv modldrv = {
171 &mod_driverops, /* drv_modops */
172 (char *)sppp_module_description, /* drv_linkinfo */
173 &sppp_ops /* drv_dev_ops */
174 };
175
176 static struct modlinkage modlinkage = {
177 MODREV_1, /* ml_rev, has to be MODREV_1 */
178 &modldrv, /* ml_linkage, NULL-terminated list */
179 NULL /* of linkage structures */
180 };
181
182 int
183 _init(void)
184 {
185 return (mod_install(&modlinkage));
186 }
187
188 int
189 _fini(void)
190 {
191 return (mod_remove(&modlinkage));
192 }
193
194 int
195 _info(struct modinfo *modinfop)
196 {
197 return (mod_info(&modlinkage, modinfop));
198 }
199
|
158 * Do not attempt to modify these flags unless the entire corresponding
159 * driver code is changed to accomodate the newly represented MT-STREAMS
160 * flags. Doing so without making proper modifications to the driver code
161 * will severely impact the intended driver behavior, and thus may affect
162 * the system's stability and performance.
163 */
164 DDI_DEFINE_STREAM_OPS(sppp_ops, \
165 nulldev, nulldev, \
166 _mi_driver_attach, _mi_driver_detach, nodev, _mi_driver_info, \
167 D_NEW | D_MP | D_MTQPAIR | D_MTOUTPERIM | D_MTOCEXCL | D_MTPUTSHARED, \
168 &sppp_tab, ddi_quiesce_not_supported);
169
170 static struct modldrv modldrv = {
171 &mod_driverops, /* drv_modops */
172 (char *)sppp_module_description, /* drv_linkinfo */
173 &sppp_ops /* drv_dev_ops */
174 };
175
176 static struct modlinkage modlinkage = {
177 MODREV_1, /* ml_rev, has to be MODREV_1 */
178 { &modldrv, NULL } /* ml_linkage, NULL-terminated list */
179 };
180
181 int
182 _init(void)
183 {
184 return (mod_install(&modlinkage));
185 }
186
187 int
188 _fini(void)
189 {
190 return (mod_remove(&modlinkage));
191 }
192
193 int
194 _info(struct modinfo *modinfop)
195 {
196 return (mod_info(&modlinkage, modinfop));
197 }
198
|