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