Home | History | Annotate | Download | only in dm

Lines Matching defs:dmp

89 	dm_pdev_t *dmp;
95 dmp = dm_pdev_lookup_name(dev_name);
97 if (dmp != NULL) {
98 dmp->ref_cnt++;
102 return dmp;
105 if ((dmp = dm_pdev_alloc(dev_name)) == NULL) {
115 kmem_free(dmp, sizeof(dm_pdev_t));
118 error = vn_bdev_openpath(dev_pb, &dmp->pdev_vnode, curlwp);
124 kmem_free(dmp, sizeof(dm_pdev_t));
127 getdisksize(dmp->pdev_vnode, &dmp->pdev_numsec, &dmp->pdev_secsize);
128 dmp->ref_cnt = 1;
130 snprintf(dmp->udev_name, sizeof(dmp->udev_name), "%d:%d",
131 major(dmp->pdev_vnode->v_rdev), minor(dmp->pdev_vnode->v_rdev));
132 aprint_debug("%s: %s %s\n", __func__, dev_name, dmp->udev_name);
134 SLIST_INSERT_HEAD(&dm_pdev_list, dmp, next_pdev);
137 return dmp;
160 dm_pdev_t *dmp;
162 dmp = kmem_zalloc(sizeof(*dmp), KM_SLEEP);
163 strlcpy(dmp->name, name, sizeof(dmp->name));
164 dmp->ref_cnt = 0;
165 dmp->pdev_vnode = NULL;
167 return dmp;
174 dm_pdev_rem(dm_pdev_t *dmp)
177 KASSERT(dmp != NULL);
179 if (dmp->pdev_vnode != NULL) {
180 int error = vn_close(dmp->pdev_vnode, FREAD | FWRITE, FSCRED);
182 kmem_free(dmp, sizeof(*dmp));
186 kmem_free(dmp, sizeof(*dmp));
197 dm_pdev_t *dmp;
201 while ((dmp = SLIST_FIRST(&dm_pdev_list)) != NULL) {
202 SLIST_REMOVE(&dm_pdev_list, dmp, dm_pdev, next_pdev);
203 dm_pdev_rem(dmp);
217 * dmp from global list and from device list to. And I will CLOSE
218 * dmp vnode too.
225 dm_pdev_decr(dm_pdev_t *dmp)
228 KASSERT(dmp != NULL);
230 * If this was last reference remove dmp from
235 if (--dmp->ref_cnt == 0) {
236 SLIST_REMOVE(&dm_pdev_list, dmp, dm_pdev, next_pdev);
238 dm_pdev_rem(dmp);
250 dm_pdev_t *dmp;
254 SLIST_FOREACH(dmp, &dm_pdev_list, next_pdev) {
256 dmp->name, dmp->ref_cnt, dmp->list_ref_cnt);