2006-03-28 02:45:34 +04:00
# ifndef _SCSI_SAS_INTERNAL_H
# define _SCSI_SAS_INTERNAL_H
# define SAS_HOST_ATTRS 0
2006-06-28 20:22:50 +04:00
# define SAS_PHY_ATTRS 17
# define SAS_PORT_ATTRS 1
2006-03-28 02:45:34 +04:00
# define SAS_RPORT_ATTRS 7
# define SAS_END_DEV_ATTRS 3
# define SAS_EXPANDER_ATTRS 7
struct sas_internal {
struct scsi_transport_template t ;
struct sas_function_template * f ;
struct sas_domain_function_template * dft ;
struct class_device_attribute private_host_attrs [ SAS_HOST_ATTRS ] ;
2006-06-28 20:22:50 +04:00
struct class_device_attribute private_phy_attrs [ SAS_PHY_ATTRS ] ;
struct class_device_attribute private_port_attrs [ SAS_PORT_ATTRS ] ;
2006-03-28 02:45:34 +04:00
struct class_device_attribute private_rphy_attrs [ SAS_RPORT_ATTRS ] ;
struct class_device_attribute private_end_dev_attrs [ SAS_END_DEV_ATTRS ] ;
struct class_device_attribute private_expander_attrs [ SAS_EXPANDER_ATTRS ] ;
struct transport_container phy_attr_cont ;
2006-06-28 20:22:50 +04:00
struct transport_container port_attr_cont ;
2006-03-28 02:45:34 +04:00
struct transport_container rphy_attr_cont ;
struct transport_container end_dev_attr_cont ;
struct transport_container expander_attr_cont ;
/*
* The array of null terminated pointers to attributes
* needed by scsi_sysfs . c
*/
struct class_device_attribute * host_attrs [ SAS_HOST_ATTRS + 1 ] ;
2006-06-28 20:22:50 +04:00
struct class_device_attribute * phy_attrs [ SAS_PHY_ATTRS + 1 ] ;
struct class_device_attribute * port_attrs [ SAS_PORT_ATTRS + 1 ] ;
2006-03-28 02:45:34 +04:00
struct class_device_attribute * rphy_attrs [ SAS_RPORT_ATTRS + 1 ] ;
struct class_device_attribute * end_dev_attrs [ SAS_END_DEV_ATTRS + 1 ] ;
struct class_device_attribute * expander_attrs [ SAS_EXPANDER_ATTRS + 1 ] ;
} ;
# define to_sas_internal(tmpl) container_of(tmpl, struct sas_internal, t)
# endif