#ifndef SCSI_TRANSPORT_SPI_H
#define SCSI_TRANSPORT_SPI_H
#include <linux/transport_class.h>
#include <linux/mutex.h>
struct scsi_transport_template;
struct scsi_target;
struct scsi_device;
struct Scsi_Host;
struct spi_transport_attrs { … };
enum spi_signal_type { … };
struct spi_host_attrs { … };
#define spi_period(x) …
#define spi_min_period(x) …
#define spi_offset(x) …
#define spi_max_offset(x) …
#define spi_width(x) …
#define spi_max_width(x) …
#define spi_iu(x) …
#define spi_max_iu(x) …
#define spi_dt(x) …
#define spi_qas(x) …
#define spi_max_qas(x) …
#define spi_wr_flow(x) …
#define spi_rd_strm(x) …
#define spi_rti(x) …
#define spi_pcomp_en(x) …
#define spi_hold_mcs(x) …
#define spi_initial_dv(x) …
#define spi_dv_pending(x) …
#define spi_support_sync(x) …
#define spi_support_wide(x) …
#define spi_support_dt(x) …
#define spi_support_dt_only(x) …
#define spi_support_ius(x) …
#define spi_support_qas(x) …
#define spi_flags(x) …
#define spi_signalling(h) …
struct spi_function_template { … };
struct scsi_transport_template *spi_attach_transport(struct spi_function_template *);
void spi_release_transport(struct scsi_transport_template *);
void spi_schedule_dv_device(struct scsi_device *);
void spi_dv_device(struct scsi_device *);
void spi_display_xfer_agreement(struct scsi_target *);
int spi_print_msg(const unsigned char *);
int spi_populate_width_msg(unsigned char *msg, int width);
int spi_populate_sync_msg(unsigned char *msg, int period, int offset);
int spi_populate_ppr_msg(unsigned char *msg, int period, int offset, int width,
int options);
int spi_populate_tag_msg(unsigned char *msg, struct scsi_cmnd *cmd);
#endif