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