#include <scsi/scsi_device.h>
#include <scsi/scsi_cmnd.h>
#include <scsi/scsi_transport_sas.h>
-#include <asm/scatterlist.h>
+#include <linux/scatterlist.h>
struct block_device;
/* ---------- Expander Devices ---------- */
-#define ETASK 0xFA
-
#define to_dom_device(_obj) container_of(_obj, struct domain_device, dev_obj)
#define to_dev_attr(_attr) container_of(_attr, struct domain_dev_attribute,\
attr)
u8 attached_sata_dev:1;
u8 attached_sata_ps:1;
- enum sas_proto attached_tproto;
- enum sas_proto attached_iproto;
+ enum sas_protocol attached_tproto;
+ enum sas_protocol attached_iproto;
u8 attached_sas_addr[SAS_ADDR_SIZE];
u8 attached_phy_id;
struct list_head dev_list_node;
- enum sas_proto iproto;
- enum sas_proto tproto;
+ enum sas_protocol iproto;
+ enum sas_protocol tproto;
struct sas_rphy *rphy;
enum sas_class class;
u8 sas_addr[SAS_ADDR_SIZE];
u8 attached_sas_addr[SAS_ADDR_SIZE];
- enum sas_proto iproto;
- enum sas_proto tproto;
+ enum sas_protocol iproto;
+ enum sas_protocol tproto;
enum sas_oob_mode oob_mode;
int id; /* must be set */
enum sas_class class;
- enum sas_proto iproto;
- enum sas_proto tproto;
+ enum sas_protocol iproto;
+ enum sas_protocol tproto;
enum sas_phy_type type;
enum sas_phy_role role;
spinlock_t task_state_lock;
unsigned task_state_flags;
- enum sas_proto task_proto;
+ enum sas_protocol task_proto;
/* Used by the discovery code. */
struct timer_list timer;
struct work_struct abort_work;
};
-
+extern struct kmem_cache *sas_task_cache;
#define SAS_TASK_STATE_PENDING 1
#define SAS_TASK_STATE_DONE 2
static inline struct sas_task *sas_alloc_task(gfp_t flags)
{
- extern struct kmem_cache *sas_task_cache;
struct sas_task *task = kmem_cache_zalloc(sas_task_cache, flags);
if (task) {
static inline void sas_free_task(struct sas_task *task)
{
if (task) {
- extern struct kmem_cache *sas_task_cache;
BUG_ON(!list_empty(&task->list));
kmem_cache_free(sas_task_cache, task);
}
extern int sas_smp_handler(struct Scsi_Host *shost, struct sas_rphy *rphy,
struct request *req);
+
+extern void sas_ssp_task_response(struct device *dev, struct sas_task *task,
+ struct ssp_response_iu *iu);
+struct sas_phy *sas_find_local_phy(struct domain_device *dev);
+
#endif /* _SASLIB_H_ */