• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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
40