diskp 704 kern/subr_disk.c disk_construct(struct disk *diskp, char *lockname) diskp 706 kern/subr_disk.c rw_init(&diskp->dk_lock, lockname); diskp 708 kern/subr_disk.c diskp->dk_flags |= DKF_CONSTRUCTED; diskp 717 kern/subr_disk.c disk_attach(struct disk *diskp) diskp 720 kern/subr_disk.c if (!ISSET(diskp->dk_flags, DKF_CONSTRUCTED)) diskp 721 kern/subr_disk.c disk_construct(diskp, diskp->dk_name); diskp 728 kern/subr_disk.c diskp->dk_label = malloc(sizeof(struct disklabel), M_DEVBUF, M_NOWAIT); diskp 729 kern/subr_disk.c if (diskp->dk_label == NULL) diskp 732 kern/subr_disk.c bzero(diskp->dk_label, sizeof(struct disklabel)); diskp 737 kern/subr_disk.c microuptime(&diskp->dk_attachtime); diskp 742 kern/subr_disk.c TAILQ_INSERT_TAIL(&disklist, diskp, dk_link); diskp 751 kern/subr_disk.c disk_detach(struct disk *diskp) diskp 757 kern/subr_disk.c free(diskp->dk_label, M_DEVBUF); diskp 762 kern/subr_disk.c TAILQ_REMOVE(&disklist, diskp, dk_link); diskp 773 kern/subr_disk.c disk_busy(struct disk *diskp) diskp 780 kern/subr_disk.c if (diskp->dk_busy++ == 0) { diskp 781 kern/subr_disk.c microuptime(&diskp->dk_timestamp); diskp 790 kern/subr_disk.c disk_unbusy(struct disk *diskp, long bcount, int read) diskp 794 kern/subr_disk.c if (diskp->dk_busy-- == 0) diskp 795 kern/subr_disk.c printf("disk_unbusy: %s: dk_busy < 0\n", diskp->dk_name); diskp 799 kern/subr_disk.c timersub(&dv_time, &diskp->dk_timestamp, &diff_time); diskp 800 kern/subr_disk.c timeradd(&diskp->dk_time, &diff_time, &diskp->dk_time); diskp 802 kern/subr_disk.c diskp->dk_timestamp = dv_time; diskp 805 kern/subr_disk.c diskp->dk_rbytes += bcount; diskp 806 kern/subr_disk.c diskp->dk_rxfer++; diskp 808 kern/subr_disk.c diskp->dk_wbytes += bcount; diskp 809 kern/subr_disk.c diskp->dk_wxfer++; diskp 812 kern/subr_disk.c diskp->dk_seek++;