1 #ifndef __NVIF_DRIVER_H__ 2 #define __NVIF_DRIVER_H__ 3 #include <nvif/os.h> 4 struct nvif_client; 5 6 struct nvif_driver { 7 const char *name; 8 int (*init)(const char *name, u64 device, const char *cfg, 9 const char *dbg, void **priv); 10 void (*fini)(void *priv); 11 int (*suspend)(void *priv); 12 int (*resume)(void *priv); 13 int (*ioctl)(void *priv, bool super, void *data, u32 size, void **hack); 14 void __iomem *(*map)(void *priv, u64 handle, u32 size); 15 void (*unmap)(void *priv, void __iomem *ptr, u32 size); 16 bool keep; 17 }; 18 19 int nvif_driver_init(const char *drv, const char *cfg, const char *dbg, 20 const char *name, u64 device, struct nvif_client *); 21 22 extern const struct nvif_driver nvif_driver_nvkm; 23 extern const struct nvif_driver nvif_driver_drm; 24 extern const struct nvif_driver nvif_driver_lib; 25 extern const struct nvif_driver nvif_driver_null; 26 #endif 27