SRP_LOGIN_REJ_CHANNEL_LIMIT_REACHED = 0x00010006
};
-enum {
- SRP_REV10_IB_IO_CLASS = 0xff00,
- SRP_REV16A_IB_IO_CLASS = 0x0100
-};
-
struct srp_direct_buf {
__be64 va;
__be32 key;
/*
* We need the packed attribute because the SRP spec puts the list of
- * descriptors at an offset of 20, which is not aligned to the size of
- * struct srp_direct_buf. The whole structure must be packed to avoid
- * having the 20-byte structure padded to 24 bytes on 64-bit architectures.
+ * descriptors at an offset of 20, which is not aligned to the size
+ * of struct srp_direct_buf.
*/
struct srp_indirect_buf {
struct srp_direct_buf table_desc;
__be32 len;
- struct srp_direct_buf desc_list[0];
-} __attribute__((packed));
+ struct srp_direct_buf desc_list[0] __attribute__((packed));
+};
enum {
SRP_MULTICHAN_SINGLE = 0,
u8 target_port_id[16];
};
-/*
- * The SRP spec defines the size of the LOGIN_RSP structure to be 52
- * bytes, so it needs to be packed to avoid having it padded to 56
- * bytes on 64-bit architectures.
- */
struct srp_login_rsp {
u8 opcode;
u8 reserved1[3];
__be16 buf_fmt;
u8 rsp_flags;
u8 reserved2[25];
-} __attribute__((packed));
+};
struct srp_login_rej {
u8 opcode;
SRP_RSP_FLAG_DIUNDER = 1 << 5
};
-/*
- * The SRP spec defines the size of the RSP structure to be 36 bytes,
- * so it needs to be packed to avoid having it padded to 40 bytes on
- * 64-bit architectures.
- */
struct srp_rsp {
u8 opcode;
u8 sol_not;
__be32 sense_data_len;
__be32 resp_data_len;
u8 data[0];
-} __attribute__((packed));
+};
#endif /* SCSI_SRP_H */