1#ifndef __NVKM_HANDLE_H__
2#define __NVKM_HANDLE_H__
3#include <core/os.h>
4struct nvkm_object;
5
6struct nvkm_handle {
7	struct nvkm_namedb *namedb;
8	struct list_head node;
9
10	struct list_head head;
11	struct list_head tree;
12	u32 name;
13	u32 priv;
14
15	u8  route;
16	u64 token;
17
18	struct nvkm_handle *parent;
19	struct nvkm_object *object;
20};
21
22int  nvkm_handle_create(struct nvkm_object *, u32 parent, u32 handle,
23			struct nvkm_object *, struct nvkm_handle **);
24void nvkm_handle_destroy(struct nvkm_handle *);
25int  nvkm_handle_init(struct nvkm_handle *);
26int  nvkm_handle_fini(struct nvkm_handle *, bool suspend);
27
28struct nvkm_object *nvkm_handle_ref(struct nvkm_object *, u32 name);
29
30struct nvkm_handle *nvkm_handle_get_class(struct nvkm_object *, u16);
31struct nvkm_handle *nvkm_handle_get_vinst(struct nvkm_object *, u64);
32struct nvkm_handle *nvkm_handle_get_cinst(struct nvkm_object *, u32);
33void nvkm_handle_put(struct nvkm_handle *);
34#endif
35