1/*	$NetBSD: priv.h,v 1.3 2021/12/18 23:45:35 riastradh Exp $	*/
2
3/* SPDX-License-Identifier: MIT */
4#ifndef __NVKM_DISP_PRIV_H__
5#define __NVKM_DISP_PRIV_H__
6#include <engine/disp.h>
7#include "outp.h"
8
9int nvkm_disp_ctor(const struct nvkm_disp_func *, struct nvkm_device *,
10		   int index, struct nvkm_disp *);
11int nvkm_disp_new_(const struct nvkm_disp_func *, struct nvkm_device *,
12		   int index, struct nvkm_disp **);
13void nvkm_disp_vblank(struct nvkm_disp *, int head);
14
15struct nvkm_disp_func {
16	void *(*dtor)(struct nvkm_disp *);
17	int (*oneinit)(struct nvkm_disp *);
18	int (*init)(struct nvkm_disp *);
19	void (*fini)(struct nvkm_disp *);
20	void (*intr)(struct nvkm_disp *);
21
22	const struct nvkm_disp_oclass *(*root)(struct nvkm_disp *);
23};
24
25int  nvkm_disp_ntfy(struct nvkm_object *, u32, struct nvkm_event **);
26
27extern const struct nvkm_disp_oclass nv04_disp_root_oclass;
28
29struct nvkm_disp_oclass {
30	int (*ctor)(struct nvkm_disp *, const struct nvkm_oclass *,
31		    void *data, u32 size, struct nvkm_object **);
32	struct nvkm_sclass base;
33};
34#endif
35