linux/block/bsg.c

// SPDX-License-Identifier: GPL-2.0
/*
 * bsg.c - block layer implementation of the sg v4 interface
 */
#include <linux/module.h>
#include <linux/init.h>
#include <linux/file.h>
#include <linux/blkdev.h>
#include <linux/cdev.h>
#include <linux/jiffies.h>
#include <linux/percpu.h>
#include <linux/idr.h>
#include <linux/bsg.h>
#include <linux/slab.h>

#include <scsi/scsi.h>
#include <scsi/scsi_ioctl.h>
#include <scsi/sg.h>

#define BSG_DESCRIPTION
#define BSG_VERSION

struct bsg_device {};

static inline struct bsg_device *to_bsg_device(struct inode *inode)
{}

#define BSG_DEFAULT_CMDS
#define BSG_MAX_DEVS

static DEFINE_IDA(bsg_minor_ida);
static const struct class bsg_class;
static int bsg_major;

static unsigned int bsg_timeout(struct bsg_device *bd, struct sg_io_v4 *hdr)
{}

static int bsg_sg_io(struct bsg_device *bd, bool open_for_write,
		     void __user *uarg)
{}

static int bsg_open(struct inode *inode, struct file *file)
{}

static int bsg_release(struct inode *inode, struct file *file)
{}

static int bsg_get_command_q(struct bsg_device *bd, int __user *uarg)
{}

static int bsg_set_command_q(struct bsg_device *bd, int __user *uarg)
{}

static long bsg_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
{}

static const struct file_operations bsg_fops =;

static void bsg_device_release(struct device *dev)
{}

void bsg_unregister_queue(struct bsg_device *bd)
{}
EXPORT_SYMBOL_GPL();

struct bsg_device *bsg_register_queue(struct request_queue *q,
		struct device *parent, const char *name, bsg_sg_io_fn *sg_io_fn)
{}
EXPORT_SYMBOL_GPL();

static char *bsg_devnode(const struct device *dev, umode_t *mode)
{}

static const struct class bsg_class =;

static int __init bsg_init(void)
{}

MODULE_AUTHOR();
MODULE_DESCRIPTION();
MODULE_LICENSE();

device_initcall(bsg_init);