• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /macosx-10.10/xnu-2782.1.97/bsd/miscfs/specfs/

Lines Matching defs:vp

245 set_blocksize(struct vnode *vp, dev_t dev)
253 vp->v_specsize = DEV_BSIZE;
255 vp->v_specsize = rsize;
258 vp->v_specsize = DEV_BSIZE;
262 set_fsblocksize(struct vnode *vp)
265 if (vp->v_type == VBLK) {
266 dev_t dev = (dev_t)vp->v_rdev;
272 vnode_lock(vp);
273 set_blocksize(vp, dev);
274 vnode_unlock(vp);
288 struct vnode *vp = ap->a_vp;
289 dev_t bdev, dev = (dev_t)vp->v_rdev;
296 if (vp->v_mount && (vp->v_mount->mnt_flag & MNT_NODEV))
299 switch (vp->v_type) {
330 vp->v_specinfo->si_opencount++;
335 if (error == 0 && cdevsw[maj].d_type == D_DISK && !vp->v_un.vu_specinfo->si_initted) {
340 if (VNOP_IOCTL(vp, DKIOCGETTHROTTLEMASK, (caddr_t)&throttle_mask, 0, NULL) == 0) {
343 VNOP_IOCTL(vp, DKIOCISSOLIDSTATE, (caddr_t)&isssd, 0, ap->a_context) == 0) {
350 vnode_lock(vp);
352 vp->v_un.vu_specinfo->si_isssd = isssd;
353 vp->v_un.vu_specinfo->si_devbsdunit = devbsdunit;
354 vp->v_un.vu_specinfo->si_throttle_mask = throttle_mask;
355 vp->v_un.vu_specinfo->si_throttleable = 1;
356 vp->v_un.vu_specinfo->si_initted = 1;
358 vnode_unlock(vp);
361 if (vp->v_un.vu_specinfo->si_initted == 0) {
362 vnode_lock(vp);
363 vp->v_un.vu_specinfo->si_initted = 1;
364 vnode_unlock(vp);
383 if ( (error = vfs_mountedon(vp)) )
389 vp->v_specinfo->si_opencount++;
400 if (!VNOP_IOCTL(vp, DKIOCGETBLOCKSIZE, (caddr_t)&blksize, 0, ap->a_context)) {
403 if (!VNOP_IOCTL(vp, DKIOCSETBLOCKSIZE, (caddr_t)&size512, FWRITE, ap->a_context)) {
405 if (!VNOP_IOCTL(vp, DKIOCGETBLOCKCOUNT, (caddr_t)&blkcnt, 0, ap->a_context)) {
410 if (VNOP_IOCTL(vp, DKIOCSETBLOCKSIZE, (caddr_t)&blksize, FWRITE, ap->a_context))
415 vnode_lock(vp);
416 set_blocksize(vp, dev);
423 vp->v_specdevsize = blkcnt * (u_int64_t)size512;
425 vp->v_specdevsize = (u_int64_t)0; /* Default: Can't get */
427 vnode_unlock(vp);
443 struct vnode *vp = ap->a_vp;
462 switch (vp->v_type) {
465 if (cdevsw[major(vp->v_rdev)].d_type == D_DISK && vp->v_un.vu_specinfo->si_throttleable) {
468 throttle_info = &_throttle_io_info[vp->v_un.vu_specinfo->si_devbsdunit];
469 throttle_info_update_internal(throttle_info, NULL, 0, vp->v_un.vu_specinfo->si_isssd);
471 error = (*cdevsw[major(vp->v_rdev)].d_read)
472 (vp->v_rdev, uio, ap->a_ioflag);
480 dev = vp->v_rdev;
482 devBlockSize = vp->v_specsize;
495 if (vp->v_speclastr + bscale == bn) {
497 error = buf_breadn(vp, bn, (int)bsize, &nextbn,
500 error = buf_bread(vp, bn, (int)bsize, NOCRED, &bp);
502 vnode_lock(vp);
503 vp->v_speclastr = bn;
504 vnode_unlock(vp);
536 struct vnode *vp = ap->a_vp;
554 switch (vp->v_type) {
557 if (cdevsw[major(vp->v_rdev)].d_type == D_DISK && vp->v_un.vu_specinfo->si_throttleable) {
560 throttle_info = &_throttle_io_info[vp->v_un.vu_specinfo->si_devbsdunit];
562 throttle_info_update_internal(throttle_info, NULL, 0, vp->v_un.vu_specinfo->si_isssd);
566 error = (*cdevsw[major(vp->v_rdev)].d_write)
567 (vp->v_rdev, uio, ap->a_ioflag);
579 dev = (vp->v_rdev);
581 devBlockSize = vp->v_specsize;
607 vp->v_specdevsize != (u_int64_t)0 &&
608 (uio->uio_offset + (u_int64_t)n) > vp->v_specdevsize) {
610 n = (uio->uio_offset + (u_int64_t)n) - vp->v_specdevsize;
614 bp = buf_getblk(vp, bn, bsize, 0, 0, BLK_WRITE);
616 error = (int)buf_bread(vp, bn, bsize, NOCRED, &bp);
721 spec_kqfilter(vnode_t vp, struct knote *kn)
730 dev = vnode_specrdev(vp);
732 if (vnode_istty(vp)) {
749 spec_fsync_internal(vnode_t vp, int waitfor, __unused vfs_context_t context)
751 if (vp->v_type == VCHR)
756 buf_flushdirtyblks(vp, (waitfor == MNT_WAIT || waitfor == MNT_DWAIT), 0, "spec_fsync");
2129 struct vnode *vp = ap->a_vp;
2130 dev_t dev = vp->v_rdev;
2136 switch (vp->v_type) {
2151 if (vp == sessp->s_ttyvp && vcount(vp) == 1) {
2156 if (vp == sessp->s_ttyvp) {
2182 if (--vp->v_specinfo->si_opencount < 0)
2188 if (vcount(vp) == 0 || (flags & IO_REVOKE) != 0)
2200 if (vcount(vp) > 1) {
2201 vp->v_specinfo->si_opencount--;
2212 if ((error = spec_fsync_internal(vp, MNT_WAIT, ap->a_context)))
2215 error = buf_invalidateblks(vp, BUF_WRITE_DATA, 0, 0);
2221 if (--vp->v_specinfo->si_opencount < 0)
2224 if (vcount(vp) == 0)
2284 struct vnode *vp = ap->a_vp;
2286 switch (vp->v_type) {
2308 struct vnode *vp = ap->a_vp;
2310 switch (vp->v_type) {
2358 vnode_t vp;
2361 vp = (vnode_t)kn->kn_fp->f_fglob->fg_data; /* Already have iocount, and vnode is alive */
2363 assert(vnode_ischr(vp));
2365 dev = vnode_specrdev(vp);
2382 kn->kn_hookid = vnode_vid(vp);
2413 vnode_t vp;
2431 vp = (vnode_t)kn->kn_fp->f_fglob->fg_data;
2433 error = vnode_getwithvid(vp, kn->kn_hookid);
2439 dev = vnode_specrdev(vp);
2447 selres = VNOP_SELECT(vp, filter_to_seltype(kn->kn_filter), 0, kn->kn_hook, ctx);
2460 vnode_put(vp);
2468 vnode_t vp;
2476 vp = (vnode_t)kn->kn_fp->f_fglob->fg_data;
2478 error = vnode_getwithvid(vp, kn->kn_hookid);
2488 selres = VNOP_SELECT(vp, filter_to_seltype(kn->kn_filter), 0, kn->kn_hook, ctx);
2491 vnode_put(vp);