#include <linux/slab.h>
#include <linux/module.h>
#include <scsi/scsi.h>
#include <scsi/scsi_eh.h>
#include <scsi/scsi_dh.h>
#include <scsi/scsi_device.h>
#define CLARIION_NAME …
#define CLARIION_TRESPASS_PAGE …
#define CLARIION_BUFFER_SIZE …
#define CLARIION_TIMEOUT …
#define CLARIION_RETRIES …
#define CLARIION_UNBOUND_LU …
#define CLARIION_SP_A …
#define CLARIION_SP_B …
#define CLARIION_SHORT_TRESPASS …
#define CLARIION_HONOR_RESERVATIONS …
#define CLARIION_LUN_UNINITIALIZED …
#define CLARIION_LUN_UNBOUND …
#define CLARIION_LUN_BOUND …
#define CLARIION_LUN_OWNED …
static unsigned char long_trespass[] = …;
static unsigned char short_trespass[] = …;
static const char * lun_state[] = …;
struct clariion_dh_data { … };
static int trespass_endio(struct scsi_device *sdev,
struct scsi_sense_hdr *sshdr)
{ … }
static int parse_sp_info_reply(struct scsi_device *sdev,
struct clariion_dh_data *csdev)
{ … }
#define emc_default_str …
static char * parse_sp_model(struct scsi_device *sdev, unsigned char *buffer)
{ … }
static int send_trespass_cmd(struct scsi_device *sdev,
struct clariion_dh_data *csdev)
{ … }
static enum scsi_disposition clariion_check_sense(struct scsi_device *sdev,
struct scsi_sense_hdr *sense_hdr)
{ … }
static blk_status_t clariion_prep_fn(struct scsi_device *sdev,
struct request *req)
{ … }
static int clariion_std_inquiry(struct scsi_device *sdev,
struct clariion_dh_data *csdev)
{ … }
static int clariion_send_inquiry(struct scsi_device *sdev,
struct clariion_dh_data *csdev)
{ … }
static int clariion_activate(struct scsi_device *sdev,
activate_complete fn, void *data)
{ … }
static int clariion_set_params(struct scsi_device *sdev, const char *params)
{ … }
static int clariion_bus_attach(struct scsi_device *sdev)
{ … }
static void clariion_bus_detach(struct scsi_device *sdev)
{ … }
static struct scsi_device_handler clariion_dh = …;
static int __init clariion_init(void)
{ … }
static void __exit clariion_exit(void)
{ … }
module_init(…) …;
module_exit(clariion_exit);
MODULE_DESCRIPTION(…) …;
MODULE_AUTHOR(…) …;
MODULE_LICENSE(…) …;