linux/include/scsi/scsi_transport_spi.h

/* SPDX-License-Identifier: GPL-2.0-or-later */
/* 
 *  Parallel SCSI (SPI) transport specific attributes exported to sysfs.
 *
 *  Copyright (c) 2003 Silicon Graphics, Inc.  All rights reserved.
 */
#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 {};

/* accessor functions */
#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)



/* The functions by which the transport class and the driver communicate */
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 /* SCSI_TRANSPORT_SPI_H */