|
@@ -312,7 +312,6 @@ struct fc_host_attrs {
|
|
u64 permanent_port_name;
|
|
u64 permanent_port_name;
|
|
u32 supported_classes;
|
|
u32 supported_classes;
|
|
u8 supported_fc4s[FC_FC4_LIST_SIZE];
|
|
u8 supported_fc4s[FC_FC4_LIST_SIZE];
|
|
- char symbolic_name[FC_SYMBOLIC_NAME_SIZE];
|
|
|
|
u32 supported_speeds;
|
|
u32 supported_speeds;
|
|
u32 maxframe_size;
|
|
u32 maxframe_size;
|
|
char serial_number[FC_SERIAL_NUMBER_SIZE];
|
|
char serial_number[FC_SERIAL_NUMBER_SIZE];
|
|
@@ -324,6 +323,8 @@ struct fc_host_attrs {
|
|
u8 active_fc4s[FC_FC4_LIST_SIZE];
|
|
u8 active_fc4s[FC_FC4_LIST_SIZE];
|
|
u32 speed;
|
|
u32 speed;
|
|
u64 fabric_name;
|
|
u64 fabric_name;
|
|
|
|
+ char symbolic_name[FC_SYMBOLIC_NAME_SIZE];
|
|
|
|
+ char system_hostname[FC_SYMBOLIC_NAME_SIZE];
|
|
|
|
|
|
/* Private (Transport-managed) Attributes */
|
|
/* Private (Transport-managed) Attributes */
|
|
enum fc_tgtid_binding_type tgtid_bind_type;
|
|
enum fc_tgtid_binding_type tgtid_bind_type;
|
|
@@ -354,8 +355,6 @@ struct fc_host_attrs {
|
|
(((struct fc_host_attrs *)(x)->shost_data)->supported_classes)
|
|
(((struct fc_host_attrs *)(x)->shost_data)->supported_classes)
|
|
#define fc_host_supported_fc4s(x) \
|
|
#define fc_host_supported_fc4s(x) \
|
|
(((struct fc_host_attrs *)(x)->shost_data)->supported_fc4s)
|
|
(((struct fc_host_attrs *)(x)->shost_data)->supported_fc4s)
|
|
-#define fc_host_symbolic_name(x) \
|
|
|
|
- (((struct fc_host_attrs *)(x)->shost_data)->symbolic_name)
|
|
|
|
#define fc_host_supported_speeds(x) \
|
|
#define fc_host_supported_speeds(x) \
|
|
(((struct fc_host_attrs *)(x)->shost_data)->supported_speeds)
|
|
(((struct fc_host_attrs *)(x)->shost_data)->supported_speeds)
|
|
#define fc_host_maxframe_size(x) \
|
|
#define fc_host_maxframe_size(x) \
|
|
@@ -374,6 +373,10 @@ struct fc_host_attrs {
|
|
(((struct fc_host_attrs *)(x)->shost_data)->speed)
|
|
(((struct fc_host_attrs *)(x)->shost_data)->speed)
|
|
#define fc_host_fabric_name(x) \
|
|
#define fc_host_fabric_name(x) \
|
|
(((struct fc_host_attrs *)(x)->shost_data)->fabric_name)
|
|
(((struct fc_host_attrs *)(x)->shost_data)->fabric_name)
|
|
|
|
+#define fc_host_symbolic_name(x) \
|
|
|
|
+ (((struct fc_host_attrs *)(x)->shost_data)->symbolic_name)
|
|
|
|
+#define fc_host_system_hostname(x) \
|
|
|
|
+ (((struct fc_host_attrs *)(x)->shost_data)->system_hostname)
|
|
#define fc_host_tgtid_bind_type(x) \
|
|
#define fc_host_tgtid_bind_type(x) \
|
|
(((struct fc_host_attrs *)(x)->shost_data)->tgtid_bind_type)
|
|
(((struct fc_host_attrs *)(x)->shost_data)->tgtid_bind_type)
|
|
#define fc_host_rports(x) \
|
|
#define fc_host_rports(x) \
|
|
@@ -410,6 +413,7 @@ struct fc_function_template {
|
|
void (*get_host_speed)(struct Scsi_Host *);
|
|
void (*get_host_speed)(struct Scsi_Host *);
|
|
void (*get_host_fabric_name)(struct Scsi_Host *);
|
|
void (*get_host_fabric_name)(struct Scsi_Host *);
|
|
void (*get_host_symbolic_name)(struct Scsi_Host *);
|
|
void (*get_host_symbolic_name)(struct Scsi_Host *);
|
|
|
|
+ void (*set_host_system_hostname)(struct Scsi_Host *);
|
|
|
|
|
|
struct fc_host_statistics * (*get_fc_host_stats)(struct Scsi_Host *);
|
|
struct fc_host_statistics * (*get_fc_host_stats)(struct Scsi_Host *);
|
|
void (*reset_fc_host_stats)(struct Scsi_Host *);
|
|
void (*reset_fc_host_stats)(struct Scsi_Host *);
|
|
@@ -457,6 +461,7 @@ struct fc_function_template {
|
|
unsigned long show_host_speed:1;
|
|
unsigned long show_host_speed:1;
|
|
unsigned long show_host_fabric_name:1;
|
|
unsigned long show_host_fabric_name:1;
|
|
unsigned long show_host_symbolic_name:1;
|
|
unsigned long show_host_symbolic_name:1;
|
|
|
|
+ unsigned long show_host_system_hostname:1;
|
|
};
|
|
};
|
|
|
|
|
|
|
|
|
|
@@ -492,6 +497,25 @@ fc_remote_port_chkready(struct fc_rport *rport)
|
|
return result;
|
|
return result;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+static inline u64 wwn_to_u64(u8 *wwn)
|
|
|
|
+{
|
|
|
|
+ return (u64)wwn[0] << 56 | (u64)wwn[1] << 48 |
|
|
|
|
+ (u64)wwn[2] << 40 | (u64)wwn[3] << 32 |
|
|
|
|
+ (u64)wwn[4] << 24 | (u64)wwn[5] << 16 |
|
|
|
|
+ (u64)wwn[6] << 8 | (u64)wwn[7];
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+static inline void u64_to_wwn(u64 inm, u8 *wwn)
|
|
|
|
+{
|
|
|
|
+ wwn[0] = (inm >> 56) & 0xff;
|
|
|
|
+ wwn[1] = (inm >> 48) & 0xff;
|
|
|
|
+ wwn[2] = (inm >> 40) & 0xff;
|
|
|
|
+ wwn[3] = (inm >> 32) & 0xff;
|
|
|
|
+ wwn[4] = (inm >> 24) & 0xff;
|
|
|
|
+ wwn[5] = (inm >> 16) & 0xff;
|
|
|
|
+ wwn[6] = (inm >> 8) & 0xff;
|
|
|
|
+ wwn[7] = inm & 0xff;
|
|
|
|
+}
|
|
|
|
|
|
struct scsi_transport_template *fc_attach_transport(
|
|
struct scsi_transport_template *fc_attach_transport(
|
|
struct fc_function_template *);
|
|
struct fc_function_template *);
|
|
@@ -503,12 +527,4 @@ void fc_remote_port_delete(struct fc_rport *rport);
|
|
void fc_remote_port_rolechg(struct fc_rport *rport, u32 roles);
|
|
void fc_remote_port_rolechg(struct fc_rport *rport, u32 roles);
|
|
int scsi_is_fc_rport(const struct device *);
|
|
int scsi_is_fc_rport(const struct device *);
|
|
|
|
|
|
-static inline u64 wwn_to_u64(u8 *wwn)
|
|
|
|
-{
|
|
|
|
- return (u64)wwn[0] << 56 | (u64)wwn[1] << 48 |
|
|
|
|
- (u64)wwn[2] << 40 | (u64)wwn[3] << 32 |
|
|
|
|
- (u64)wwn[4] << 24 | (u64)wwn[5] << 16 |
|
|
|
|
- (u64)wwn[6] << 8 | (u64)wwn[7];
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
#endif /* SCSI_TRANSPORT_FC_H */
|
|
#endif /* SCSI_TRANSPORT_FC_H */
|