Lines Matching refs:gmap_start

1099 mmap_gmap(struct per_user_data *priv_user, struct gntdev_gmap *gmap_start,  in mmap_gmap()  argument
1110 if (gmap_start->map) { in mmap_gmap()
1111 vm_object_reference(gmap_start->map->mem); in mmap_gmap()
1112 *object = gmap_start->map->mem; in mmap_gmap()
1116 gmap_start->map = malloc(sizeof(*(gmap_start->map)), M_GNTDEV, in mmap_gmap()
1120 gmap_start->map->pseudo_phys_res_id = 0; in mmap_gmap()
1121 gmap_start->map->pseudo_phys_res = xenmem_alloc(gntdev_dev, in mmap_gmap()
1122 &gmap_start->map->pseudo_phys_res_id, size); in mmap_gmap()
1123 if (gmap_start->map->pseudo_phys_res == NULL) { in mmap_gmap()
1124 free(gmap_start->map, M_GNTDEV); in mmap_gmap()
1125 gmap_start->map = NULL; in mmap_gmap()
1128 gmap_start->map->phys_base_addr = in mmap_gmap()
1129 rman_get_start(gmap_start->map->pseudo_phys_res); in mmap_gmap()
1132 gmap_start->map->mem = cdev_pager_allocate(gmap_start, OBJT_MGTDEVICE, in mmap_gmap()
1134 if (gmap_start->map->mem == NULL) { in mmap_gmap()
1135 xenmem_free(gntdev_dev, gmap_start->map->pseudo_phys_res_id, in mmap_gmap()
1136 gmap_start->map->pseudo_phys_res); in mmap_gmap()
1137 free(gmap_start->map, M_GNTDEV); in mmap_gmap()
1138 gmap_start->map = NULL; in mmap_gmap()
1142 for (i = 0; i < gmap_start->count; i++) { in mmap_gmap()
1143 gmap_start->grant_map_ops[i].host_addr = in mmap_gmap()
1144 gmap_start->map->phys_base_addr + i * PAGE_SIZE; in mmap_gmap()
1147 gmap_start->grant_map_ops[i].flags |= GNTMAP_readonly; in mmap_gmap()
1151 gmap_start->grant_map_ops, gmap_start->count); in mmap_gmap()
1158 vm_object_deallocate(gmap_start->map->mem); in mmap_gmap()
1164 for (i = 0; i < gmap_start->count; i++) { in mmap_gmap()
1167 gmap_start->grant_map_ops[i].status == GNTST_eagain) { in mmap_gmap()
1169 &gmap_start->grant_map_ops[i], 1); in mmap_gmap()
1173 if (gmap_start->grant_map_ops[i].status == GNTST_eagain) in mmap_gmap()
1174 gmap_start->grant_map_ops[i].status = GNTST_bad_page; in mmap_gmap()
1176 if (gmap_start->grant_map_ops[i].status != GNTST_okay) { in mmap_gmap()
1183 vm_object_deallocate(gmap_start->map->mem); in mmap_gmap()
1196 vm_object_reference(gmap_start->map->mem); in mmap_gmap()
1198 *object = gmap_start->map->mem; in mmap_gmap()
1210 struct gntdev_gmap *gmap_start; in gntdev_mmap_single() local
1225 gmap_start = gntdev_find_gmap(priv_user, *offset, count); in gntdev_mmap_single()
1226 if (gmap_start) { in gntdev_mmap_single()
1227 error = mmap_gmap(priv_user, gmap_start, offset, size, object, in gntdev_mmap_single()