Lines Matching refs:file
136 struct drm_file *file; in drm_file_alloc() local
139 file = kzalloc(sizeof(*file), GFP_KERNEL); in drm_file_alloc()
140 if (!file) in drm_file_alloc()
144 file->client_id = atomic64_inc_return(&ident); in drm_file_alloc()
145 rcu_assign_pointer(file->pid, get_pid(task_tgid(current))); in drm_file_alloc()
146 file->minor = minor; in drm_file_alloc()
149 file->authenticated = capable(CAP_SYS_ADMIN); in drm_file_alloc()
151 INIT_LIST_HEAD(&file->lhead); in drm_file_alloc()
152 INIT_LIST_HEAD(&file->fbs); in drm_file_alloc()
153 mutex_init(&file->fbs_lock); in drm_file_alloc()
154 INIT_LIST_HEAD(&file->blobs); in drm_file_alloc()
155 INIT_LIST_HEAD(&file->pending_event_list); in drm_file_alloc()
156 INIT_LIST_HEAD(&file->event_list); in drm_file_alloc()
157 init_waitqueue_head(&file->event_wait); in drm_file_alloc()
158 file->event_space = 4096; /* set aside 4k for event buffer */ in drm_file_alloc()
160 spin_lock_init(&file->master_lookup_lock); in drm_file_alloc()
161 mutex_init(&file->event_read_lock); in drm_file_alloc()
162 mutex_init(&file->client_name_lock); in drm_file_alloc()
165 drm_gem_open(dev, file); in drm_file_alloc()
168 drm_syncobj_open(file); in drm_file_alloc()
170 drm_prime_init_file_private(&file->prime); in drm_file_alloc()
173 drm_debugfs_clients_add(file); in drm_file_alloc()
176 ret = dev->driver->open(dev, file); in drm_file_alloc()
181 return file; in drm_file_alloc()
184 drm_prime_destroy_file_private(&file->prime); in drm_file_alloc()
186 drm_syncobj_release(file); in drm_file_alloc()
188 drm_gem_release(dev, file); in drm_file_alloc()
191 drm_debugfs_clients_remove(file); in drm_file_alloc()
193 put_pid(rcu_access_pointer(file->pid)); in drm_file_alloc()
194 kfree(file); in drm_file_alloc()
233 void drm_file_free(struct drm_file *file) in drm_file_free() argument
237 if (!file) in drm_file_free()
240 dev = file->minor->dev; in drm_file_free()
244 (long)old_encode_dev(file->minor->kdev->devt), in drm_file_free()
248 drm_debugfs_clients_remove(file); in drm_file_free()
250 drm_events_release(file); in drm_file_free()
253 drm_fb_release(file); in drm_file_free()
254 drm_property_destroy_user_blobs(dev, file); in drm_file_free()
258 drm_syncobj_release(file); in drm_file_free()
261 drm_gem_release(dev, file); in drm_file_free()
263 if (drm_is_primary_client(file)) in drm_file_free()
264 drm_master_release(file); in drm_file_free()
267 dev->driver->postclose(dev, file); in drm_file_free()
269 drm_prime_destroy_file_private(&file->prime); in drm_file_free()
271 WARN_ON(!list_empty(&file->event_list)); in drm_file_free()
273 put_pid(rcu_access_pointer(file->pid)); in drm_file_free()
275 mutex_destroy(&file->client_name_lock); in drm_file_free()
276 kfree(file->client_name); in drm_file_free()
278 kfree(file); in drm_file_free()
281 static void drm_close_helper(struct file *filp) in drm_close_helper()
316 int drm_open_helper(struct file *filp, struct drm_minor *minor) in drm_open_helper()
369 int drm_open(struct inode *inode, struct file *filp) in drm_open()
427 int drm_release(struct inode *inode, struct file *filp) in drm_release()
497 int drm_release_noglobal(struct inode *inode, struct file *filp) in drm_release_noglobal()
540 ssize_t drm_read(struct file *filp, char __user *buffer, in drm_read()
624 __poll_t drm_poll(struct file *filp, struct poll_table_struct *wait) in drm_poll()
915 void drm_show_memory_stats(struct drm_printer *p, struct drm_file *file) in drm_show_memory_stats() argument
922 spin_lock(&file->table_lock); in drm_show_memory_stats()
923 idr_for_each_entry (&file->object_idr, obj, id) { in drm_show_memory_stats()
958 spin_unlock(&file->table_lock); in drm_show_memory_stats()
974 void drm_show_fdinfo(struct seq_file *m, struct file *f) in drm_show_fdinfo()
976 struct drm_file *file = f->private_data; in drm_show_fdinfo() local
977 struct drm_device *dev = file->minor->dev; in drm_show_fdinfo()
985 drm_printf(&p, "drm-client-id:\t%llu\n", file->client_id); in drm_show_fdinfo()
995 mutex_lock(&file->client_name_lock); in drm_show_fdinfo()
996 if (file->client_name) in drm_show_fdinfo()
997 drm_printf(&p, "drm-client-name:\t%s\n", file->client_name); in drm_show_fdinfo()
998 mutex_unlock(&file->client_name_lock); in drm_show_fdinfo()
1001 dev->driver->show_fdinfo(&p, file); in drm_show_fdinfo()
1057 struct file *mock_drm_getfile(struct drm_minor *minor, unsigned int flags) in mock_drm_getfile()
1061 struct file *file; in mock_drm_getfile() local
1067 file = anon_inode_getfile("drm", dev->driver->fops, priv, flags); in mock_drm_getfile()
1068 if (IS_ERR(file)) { in mock_drm_getfile()
1070 return file; in mock_drm_getfile()
1074 file->f_mapping = dev->anon_inode->i_mapping; in mock_drm_getfile()
1077 priv->filp = file; in mock_drm_getfile()
1079 return file; in mock_drm_getfile()