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