0001
0002 #ifndef __NVIF_DRIVER_H__
0003 #define __NVIF_DRIVER_H__
0004 #include <nvif/os.h>
0005 struct nvif_client;
0006
0007 struct nvif_driver {
0008 const char *name;
0009 int (*init)(const char *name, u64 device, const char *cfg,
0010 const char *dbg, void **priv);
0011 void (*fini)(void *priv);
0012 int (*suspend)(void *priv);
0013 int (*resume)(void *priv);
0014 int (*ioctl)(void *priv, void *data, u32 size, void **hack);
0015 void __iomem *(*map)(void *priv, u64 handle, u32 size);
0016 void (*unmap)(void *priv, void __iomem *ptr, u32 size);
0017 bool keep;
0018 };
0019
0020 int nvif_driver_init(const char *drv, const char *cfg, const char *dbg,
0021 const char *name, u64 device, struct nvif_client *);
0022
0023 extern const struct nvif_driver nvif_driver_nvkm;
0024 extern const struct nvif_driver nvif_driver_drm;
0025 extern const struct nvif_driver nvif_driver_lib;
0026 extern const struct nvif_driver nvif_driver_null;
0027 #endif