linux/drivers/gpu/drm/vkms/vkms_drv.c

// SPDX-License-Identifier: GPL-2.0+

/**
 * DOC: vkms (Virtual Kernel Modesetting)
 *
 * VKMS is a software-only model of a KMS driver that is useful for testing
 * and for running X (or similar) on headless machines. VKMS aims to enable
 * a virtual display with no need of a hardware display capability, releasing
 * the GPU in DRM API tests.
 */

#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();