int drm_gem_init(struct drm_device *dev) { struct drm_gem_mm *mm; drm_gem_names_init(&dev->object_names); mm = malloc(sizeof(*mm), DRM_MEM_DRIVER, M_WAITOK); dev->mm_private = mm; if (drm_ht_create(&mm->offset_hash, 19) != 0) { free(mm, DRM_MEM_DRIVER); return (ENOMEM); } mm->idxunr = new_unrhdr(0, DRM_GEM_MAX_IDX, NULL); return (0); }
int drm_gem_init(struct drm_device *dev) { struct drm_gem_mm *mm; drm_gem_names_init(&dev->object_names); mm = malloc(sizeof(*mm), DRM_MEM_DRIVER, M_NOWAIT); if (!mm) { DRM_ERROR("out of memory\n"); return -ENOMEM; } dev->mm_private = mm; if (drm_ht_create(&mm->offset_hash, 19)) { free(mm, DRM_MEM_DRIVER); return -ENOMEM; } mm->idxunr = new_unrhdr(0, DRM_GEM_MAX_IDX, NULL); return 0; }
void drm_gem_open(struct drm_device *dev, struct drm_file *file_priv) { drm_gem_names_init(&file_priv->object_names); }