Lines Matching defs:gmap_start

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