#include <linux/scatterlist.h>
#include <linux/slab.h>
#include <scsi/scsi_host.h>
#include <scsi/scsi_eh.h>
#include "sas_internal.h"
#include <scsi/scsi_transport.h>
#include <scsi/scsi_transport_sas.h>
#include <scsi/sas_ata.h>
#include "scsi_sas_internal.h"
void sas_init_dev(struct domain_device *dev)
{ … }
static int sas_get_port_device(struct asd_sas_port *port)
{ … }
int sas_notify_lldd_dev_found(struct domain_device *dev)
{ … }
void sas_notify_lldd_dev_gone(struct domain_device *dev)
{ … }
static void sas_probe_devices(struct asd_sas_port *port)
{ … }
static void sas_suspend_devices(struct work_struct *work)
{ … }
static void sas_resume_devices(struct work_struct *work)
{ … }
static int sas_discover_end_dev(struct domain_device *dev)
{ … }
void sas_free_device(struct kref *kref)
{ … }
static void sas_unregister_common_dev(struct asd_sas_port *port, struct domain_device *dev)
{ … }
void sas_destruct_devices(struct asd_sas_port *port)
{ … }
static void sas_destruct_ports(struct asd_sas_port *port)
{ … }
static bool sas_abort_cmd(struct request *req, void *data)
{ … }
static void sas_abort_device_scsi_cmds(struct domain_device *dev)
{ … }
void sas_unregister_dev(struct asd_sas_port *port, struct domain_device *dev)
{ … }
void sas_unregister_domain_devices(struct asd_sas_port *port, int gone)
{ … }
void sas_device_set_phy(struct domain_device *dev, struct sas_port *port)
{ … }
static void sas_discover_domain(struct work_struct *work)
{ … }
static void sas_revalidate_domain(struct work_struct *work)
{ … }
static void sas_chain_work(struct sas_ha_struct *ha, struct sas_work *sw)
{ … }
static void sas_chain_event(int event, unsigned long *pending,
struct sas_work *sw,
struct sas_ha_struct *ha)
{ … }
void sas_discover_event(struct asd_sas_port *port, enum discover_event ev)
{ … }
void sas_init_disc(struct sas_discovery *disc, struct asd_sas_port *port)
{ … }