/drivers/scsi/bfa/include/bfi/bfi_rport.h

https://bitbucket.org/abioy/linux · C Header · 104 lines · 72 code · 16 blank · 16 comment · 0 complexity · e1d485206229ca02f2ea03c89d873e64 MD5 · raw file

  1. /*
  2. * Copyright (c) 2005-2009 Brocade Communications Systems, Inc.
  3. * All rights reserved
  4. * www.brocade.com
  5. *
  6. * Linux driver for Brocade Fibre Channel Host Bus Adapter.
  7. *
  8. * This program is free software; you can redistribute it and/or modify it
  9. * under the terms of the GNU General Public License (GPL) Version 2 as
  10. * published by the Free Software Foundation
  11. *
  12. * This program is distributed in the hope that it will be useful, but
  13. * WITHOUT ANY WARRANTY; without even the implied warranty of
  14. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  15. * General Public License for more details.
  16. */
  17. #ifndef __BFI_RPORT_H__
  18. #define __BFI_RPORT_H__
  19. #include <bfi/bfi.h>
  20. #pragma pack(1)
  21. enum bfi_rport_h2i_msgs {
  22. BFI_RPORT_H2I_CREATE_REQ = 1,
  23. BFI_RPORT_H2I_DELETE_REQ = 2,
  24. BFI_RPORT_H2I_SET_SPEED_REQ = 3,
  25. };
  26. enum bfi_rport_i2h_msgs {
  27. BFI_RPORT_I2H_CREATE_RSP = BFA_I2HM(1),
  28. BFI_RPORT_I2H_DELETE_RSP = BFA_I2HM(2),
  29. BFI_RPORT_I2H_QOS_SCN = BFA_I2HM(3),
  30. };
  31. struct bfi_rport_create_req_s {
  32. struct bfi_mhdr_s mh; /* common msg header */
  33. u16 bfa_handle; /* host rport handle */
  34. u16 max_frmsz; /* max rcv pdu size */
  35. u32 pid:24, /* remote port ID */
  36. lp_tag:8; /* local port tag */
  37. u32 local_pid:24, /* local port ID */
  38. cisc:8;
  39. u8 fc_class; /* supported FC classes */
  40. u8 vf_en; /* virtual fabric enable */
  41. u16 vf_id; /* virtual fabric ID */
  42. };
  43. struct bfi_rport_create_rsp_s {
  44. struct bfi_mhdr_s mh; /* common msg header */
  45. u8 status; /* rport creation status */
  46. u8 rsvd[3];
  47. u16 bfa_handle; /* host rport handle */
  48. u16 fw_handle; /* firmware rport handle */
  49. struct bfa_rport_qos_attr_s qos_attr; /* QoS Attributes */
  50. };
  51. struct bfa_rport_speed_req_s {
  52. struct bfi_mhdr_s mh; /* common msg header */
  53. u16 fw_handle; /* firmware rport handle */
  54. u8 speed; /*! rport's speed via RPSC */
  55. u8 rsvd;
  56. };
  57. struct bfi_rport_delete_req_s {
  58. struct bfi_mhdr_s mh; /* common msg header */
  59. u16 fw_handle; /* firmware rport handle */
  60. u16 rsvd;
  61. };
  62. struct bfi_rport_delete_rsp_s {
  63. struct bfi_mhdr_s mh; /* common msg header */
  64. u16 bfa_handle; /* host rport handle */
  65. u8 status; /* rport deletion status */
  66. u8 rsvd;
  67. };
  68. struct bfi_rport_qos_scn_s {
  69. struct bfi_mhdr_s mh; /* common msg header */
  70. u16 bfa_handle; /* host rport handle */
  71. u16 rsvd;
  72. struct bfa_rport_qos_attr_s old_qos_attr; /* Old QoS Attributes */
  73. struct bfa_rport_qos_attr_s new_qos_attr; /* New QoS Attributes */
  74. };
  75. union bfi_rport_h2i_msg_u {
  76. struct bfi_msg_s *msg;
  77. struct bfi_rport_create_req_s *create_req;
  78. struct bfi_rport_delete_req_s *delete_req;
  79. struct bfi_rport_speed_req_s *speed_req;
  80. };
  81. union bfi_rport_i2h_msg_u {
  82. struct bfi_msg_s *msg;
  83. struct bfi_rport_create_rsp_s *create_rsp;
  84. struct bfi_rport_delete_rsp_s *delete_rsp;
  85. struct bfi_rport_qos_scn_s *qos_scn_evt;
  86. };
  87. #pragma pack()
  88. #endif /* __BFI_RPORT_H__ */