#include <linux/module.h>
#include <linux/platform_device.h>
#include <linux/dma-mapping.h>
#include <drm/drm_gem.h>
#include <drm/drm_atomic.h>
#include <drm/drm_atomic_helper.h>
#include <drm/drm_drv.h>
#include <drm/drm_fbdev_shmem.h>
#include <drm/drm_file.h>
#include <drm/drm_gem_framebuffer_helper.h>
#include <drm/drm_ioctl.h>
#include <drm/drm_managed.h>
#include <drm/drm_probe_helper.h>
#include <drm/drm_gem_shmem_helper.h>
#include <drm/drm_vblank.h>
#include "vkms_drv.h"
#include <drm/drm_print.h>
#include <drm/drm_debugfs.h>
#define DRIVER_NAME …
#define DRIVER_DESC …
#define DRIVER_DATE …
#define DRIVER_MAJOR …
#define DRIVER_MINOR …
static struct vkms_config *default_config;
static bool enable_cursor = …;
module_param_named(enable_cursor, enable_cursor, bool, 0444);
MODULE_PARM_DESC(…) …;
static bool enable_writeback = …;
module_param_named(enable_writeback, enable_writeback, bool, 0444);
MODULE_PARM_DESC(…) …;
static bool enable_overlay;
module_param_named(enable_overlay, enable_overlay, bool, 0444);
MODULE_PARM_DESC(…) …;
DEFINE_DRM_GEM_FOPS(vkms_driver_fops);
static void vkms_release(struct drm_device *dev)
{ … }
static void vkms_atomic_commit_tail(struct drm_atomic_state *old_state)
{ … }
static int vkms_config_show(struct seq_file *m, void *data)
{ … }
static const struct drm_debugfs_info vkms_config_debugfs_list[] = …;
static const struct drm_driver vkms_driver = …;
static int vkms_atomic_check(struct drm_device *dev, struct drm_atomic_state *state)
{ … }
static const struct drm_mode_config_funcs vkms_mode_funcs = …;
static const struct drm_mode_config_helper_funcs vkms_mode_config_helpers = …;
static int vkms_modeset_init(struct vkms_device *vkmsdev)
{ … }
static int vkms_create(struct vkms_config *config)
{ … }
static int __init vkms_init(void)
{ … }
static void vkms_destroy(struct vkms_config *config)
{ … }
static void __exit vkms_exit(void)
{ … }
module_init(…) …;
module_exit(vkms_exit);
MODULE_AUTHOR(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…);
MODULE_LICENSE(…) …;