1*4882a593Smuzhiyun /* SPDX-License-Identifier: MIT */ 2*4882a593Smuzhiyun #ifndef __NVIF_CLIENT_H__ 3*4882a593Smuzhiyun #define __NVIF_CLIENT_H__ 4*4882a593Smuzhiyun 5*4882a593Smuzhiyun #include <nvif/object.h> 6*4882a593Smuzhiyun 7*4882a593Smuzhiyun struct nvif_client { 8*4882a593Smuzhiyun struct nvif_object object; 9*4882a593Smuzhiyun const struct nvif_driver *driver; 10*4882a593Smuzhiyun u64 version; 11*4882a593Smuzhiyun u8 route; 12*4882a593Smuzhiyun bool super; 13*4882a593Smuzhiyun }; 14*4882a593Smuzhiyun 15*4882a593Smuzhiyun int nvif_client_ctor(struct nvif_client *parent, const char *name, u64 device, 16*4882a593Smuzhiyun struct nvif_client *); 17*4882a593Smuzhiyun void nvif_client_dtor(struct nvif_client *); 18*4882a593Smuzhiyun int nvif_client_ioctl(struct nvif_client *, void *, u32); 19*4882a593Smuzhiyun int nvif_client_suspend(struct nvif_client *); 20*4882a593Smuzhiyun int nvif_client_resume(struct nvif_client *); 21*4882a593Smuzhiyun 22*4882a593Smuzhiyun /*XXX*/ 23*4882a593Smuzhiyun #include <core/client.h> 24*4882a593Smuzhiyun #define nvxx_client(a) ({ \ 25*4882a593Smuzhiyun struct nvif_client *_client = (a); \ 26*4882a593Smuzhiyun (struct nvkm_client *)_client->object.priv; \ 27*4882a593Smuzhiyun }) 28*4882a593Smuzhiyun #endif 29