xref: /openbmc/linux/drivers/gpu/drm/nouveau/include/nvif/user.h (revision 4b4193256c8d3bc3a5397b5cd9494c2ad386317d)
137e1c45aSBen Skeggs #ifndef __NVIF_USER_H__
237e1c45aSBen Skeggs #define __NVIF_USER_H__
337e1c45aSBen Skeggs #include <nvif/object.h>
437e1c45aSBen Skeggs struct nvif_device;
537e1c45aSBen Skeggs 
637e1c45aSBen Skeggs struct nvif_user {
737e1c45aSBen Skeggs 	const struct nvif_user_func *func;
837e1c45aSBen Skeggs 	struct nvif_object object;
937e1c45aSBen Skeggs };
1037e1c45aSBen Skeggs 
1137e1c45aSBen Skeggs struct nvif_user_func {
1237e1c45aSBen Skeggs 	void (*doorbell)(struct nvif_user *, u32 token);
1358e92b5eSBen Skeggs 	u64 (*time)(struct nvif_user *);
1437e1c45aSBen Skeggs };
1537e1c45aSBen Skeggs 
16*64a0f59aSBen Skeggs int nvif_user_ctor(struct nvif_device *, const char *name);
17*64a0f59aSBen Skeggs void nvif_user_dtor(struct nvif_device *);
1837e1c45aSBen Skeggs 
1937e1c45aSBen Skeggs extern const struct nvif_user_func nvif_userc361;
2037e1c45aSBen Skeggs #endif
21