197 .free = segdev_free,
198 .fault = segdev_fault,
199 .faulta = segdev_faulta,
200 .setprot = segdev_setprot,
201 .checkprot = segdev_checkprot,
202 .kluster = (int (*)())segdev_badop,
203 .sync = segdev_sync,
204 .incore = segdev_incore,
205 .lockop = segdev_lockop,
206 .getprot = segdev_getprot,
207 .getoffset = segdev_getoffset,
208 .gettype = segdev_gettype,
209 .getvp = segdev_getvp,
210 .advise = segdev_advise,
211 .dump = segdev_dump,
212 .pagelock = segdev_pagelock,
213 .setpagesize = segdev_setpagesize,
214 .getmemid = segdev_getmemid,
215 .getpolicy = segdev_getpolicy,
216 .capable = segdev_capable,
217 .inherit = seg_inherit_notsup,
218 };
219
220 /*
221 * Private segdev support routines
222 */
223 static struct segdev_data *sdp_alloc(void);
224
225 static void segdev_softunlock(struct hat *, struct seg *, caddr_t,
226 size_t, enum seg_rw);
227
228 static faultcode_t segdev_faultpage(struct hat *, struct seg *, caddr_t,
229 struct vpage *, enum fault_type, enum seg_rw, devmap_handle_t *);
230
231 static faultcode_t segdev_faultpages(struct hat *, struct seg *, caddr_t,
232 size_t, enum fault_type, enum seg_rw, devmap_handle_t *);
233
234 static struct devmap_ctx *devmap_ctxinit(dev_t, ulong_t);
235 static struct devmap_softlock *devmap_softlock_init(dev_t, ulong_t);
236 static void devmap_softlock_rele(devmap_handle_t *);
237 static void devmap_ctx_rele(devmap_handle_t *);
|
197 .free = segdev_free,
198 .fault = segdev_fault,
199 .faulta = segdev_faulta,
200 .setprot = segdev_setprot,
201 .checkprot = segdev_checkprot,
202 .kluster = (int (*)())segdev_badop,
203 .sync = segdev_sync,
204 .incore = segdev_incore,
205 .lockop = segdev_lockop,
206 .getprot = segdev_getprot,
207 .getoffset = segdev_getoffset,
208 .gettype = segdev_gettype,
209 .getvp = segdev_getvp,
210 .advise = segdev_advise,
211 .dump = segdev_dump,
212 .pagelock = segdev_pagelock,
213 .setpagesize = segdev_setpagesize,
214 .getmemid = segdev_getmemid,
215 .getpolicy = segdev_getpolicy,
216 .capable = segdev_capable,
217 };
218
219 /*
220 * Private segdev support routines
221 */
222 static struct segdev_data *sdp_alloc(void);
223
224 static void segdev_softunlock(struct hat *, struct seg *, caddr_t,
225 size_t, enum seg_rw);
226
227 static faultcode_t segdev_faultpage(struct hat *, struct seg *, caddr_t,
228 struct vpage *, enum fault_type, enum seg_rw, devmap_handle_t *);
229
230 static faultcode_t segdev_faultpages(struct hat *, struct seg *, caddr_t,
231 size_t, enum fault_type, enum seg_rw, devmap_handle_t *);
232
233 static struct devmap_ctx *devmap_ctxinit(dev_t, ulong_t);
234 static struct devmap_softlock *devmap_softlock_init(dev_t, ulong_t);
235 static void devmap_softlock_rele(devmap_handle_t *);
236 static void devmap_ctx_rele(devmap_handle_t *);
|