Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid
[firefly-linux-kernel-4.4.55.git] / drivers / gpu / drm / nouveau / core / include / core / handle.h
1 #ifndef __NOUVEAU_HANDLE_H__
2 #define __NOUVEAU_HANDLE_H__
3
4 struct nouveau_handle {
5         struct nouveau_namedb *namedb;
6         struct list_head node;
7
8         struct list_head head;
9         struct list_head tree;
10         u32 name;
11         u32 priv;
12
13         u8  route;
14         u64 token;
15
16         struct nouveau_handle *parent;
17         struct nouveau_object *object;
18 };
19
20 int  nouveau_handle_create(struct nouveau_object *, u32 parent, u32 handle,
21                            struct nouveau_object *, struct nouveau_handle **);
22 void nouveau_handle_destroy(struct nouveau_handle *);
23 int  nouveau_handle_init(struct nouveau_handle *);
24 int  nouveau_handle_fini(struct nouveau_handle *, bool suspend);
25
26 int  nouveau_handle_new(struct nouveau_object *, u32 parent, u32 handle,
27                         u16 oclass, void *data, u32 size,
28                         struct nouveau_object **);
29 int  nouveau_handle_del(struct nouveau_object *, u32 parent, u32 handle);
30
31 struct nouveau_object *
32 nouveau_handle_ref(struct nouveau_object *, u32 name);
33
34 struct nouveau_handle *nouveau_handle_get_class(struct nouveau_object *, u16);
35 struct nouveau_handle *nouveau_handle_get_vinst(struct nouveau_object *, u64);
36 struct nouveau_handle *nouveau_handle_get_cinst(struct nouveau_object *, u32);
37 void nouveau_handle_put(struct nouveau_handle *);
38
39 #endif