Lines Matching refs:gmap_start

1087 mmap_gmap(struct per_user_data *priv_user, struct gntdev_gmap *gmap_start,  in mmap_gmap()  argument
1098 if (gmap_start->map) { in mmap_gmap()
1099 vm_object_reference(gmap_start->map->mem); in mmap_gmap()
1100 *object = gmap_start->map->mem; in mmap_gmap()
1104 gmap_start->map = malloc(sizeof(*(gmap_start->map)), M_GNTDEV, in mmap_gmap()
1108 gmap_start->map->pseudo_phys_res_id = 0; in mmap_gmap()
1109 gmap_start->map->pseudo_phys_res = xenmem_alloc(gntdev_dev, in mmap_gmap()
1110 &gmap_start->map->pseudo_phys_res_id, size); in mmap_gmap()
1111 if (gmap_start->map->pseudo_phys_res == NULL) { in mmap_gmap()
1112 free(gmap_start->map, M_GNTDEV); in mmap_gmap()
1113 gmap_start->map = NULL; in mmap_gmap()
1116 gmap_start->map->phys_base_addr = in mmap_gmap()
1117 rman_get_start(gmap_start->map->pseudo_phys_res); in mmap_gmap()
1120 gmap_start->map->mem = cdev_pager_allocate(gmap_start, OBJT_MGTDEVICE, in mmap_gmap()
1122 if (gmap_start->map->mem == NULL) { in mmap_gmap()
1123 xenmem_free(gntdev_dev, gmap_start->map->pseudo_phys_res_id, in mmap_gmap()
1124 gmap_start->map->pseudo_phys_res); in mmap_gmap()
1125 free(gmap_start->map, M_GNTDEV); in mmap_gmap()
1126 gmap_start->map = NULL; in mmap_gmap()
1130 for (i = 0; i < gmap_start->count; i++) { in mmap_gmap()
1131 gmap_start->grant_map_ops[i].host_addr = in mmap_gmap()
1132 gmap_start->map->phys_base_addr + i * PAGE_SIZE; in mmap_gmap()
1135 gmap_start->grant_map_ops[i].flags |= GNTMAP_readonly; in mmap_gmap()
1139 gmap_start->grant_map_ops, gmap_start->count); in mmap_gmap()
1146 vm_object_deallocate(gmap_start->map->mem); in mmap_gmap()
1152 for (i = 0; i < gmap_start->count; i++) { in mmap_gmap()
1155 gmap_start->grant_map_ops[i].status == GNTST_eagain) { in mmap_gmap()
1157 &gmap_start->grant_map_ops[i], 1); in mmap_gmap()
1161 if (gmap_start->grant_map_ops[i].status == GNTST_eagain) in mmap_gmap()
1162 gmap_start->grant_map_ops[i].status = GNTST_bad_page; in mmap_gmap()
1164 if (gmap_start->grant_map_ops[i].status != GNTST_okay) { in mmap_gmap()
1171 vm_object_deallocate(gmap_start->map->mem); in mmap_gmap()
1184 vm_object_reference(gmap_start->map->mem); in mmap_gmap()
1186 *object = gmap_start->map->mem; in mmap_gmap()
1198 struct gntdev_gmap *gmap_start; in gntdev_mmap_single() local
1213 gmap_start = gntdev_find_gmap(priv_user, *offset, count); in gntdev_mmap_single()
1214 if (gmap_start) { in gntdev_mmap_single()
1215 error = mmap_gmap(priv_user, gmap_start, offset, size, object, in gntdev_mmap_single()