linux/drivers/scsi/bfa/include/bfi/bfi_fcxp.h
<<
>>
Prefs
   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
  18#ifndef __BFI_FCXP_H__
  19#define __BFI_FCXP_H__
  20
  21#include "bfi.h"
  22
  23#pragma pack(1)
  24
  25enum bfi_fcxp_h2i {
  26        BFI_FCXP_H2I_SEND_REQ = 1,
  27};
  28
  29enum bfi_fcxp_i2h {
  30        BFI_FCXP_I2H_SEND_RSP = BFA_I2HM(1),
  31};
  32
  33#define BFA_FCXP_MAX_SGES       2
  34
  35/**
  36 * FCXP send request structure
  37 */
  38struct bfi_fcxp_send_req_s {
  39        struct bfi_mhdr_s  mh;          /*  Common msg header               */
  40        u16        fcxp_tag;    /*  driver request tag              */
  41        u16        max_frmsz;   /*  max send frame size     */
  42        u16        vf_id;               /*  vsan tag if applicable          */
  43        u16        rport_fw_hndl;       /*  FW Handle for the remote port  */
  44        u8         class;               /*  FC class used for req/rsp       */
  45        u8         rsp_timeout; /*  timeout in secs, 0-no response */
  46        u8         cts;         /*  continue sequence               */
  47        u8         lp_tag;              /*  lport tag                       */
  48        struct fchs_s   fchs;           /*  request FC header structure    */
  49        u32        req_len;     /*  request payload length          */
  50        u32        rsp_maxlen;  /*  max response length expected   */
  51        struct bfi_sge_s   req_sge[BFA_FCXP_MAX_SGES];  /*  request buf    */
  52        struct bfi_sge_s   rsp_sge[BFA_FCXP_MAX_SGES];  /*  response buf   */
  53};
  54
  55/**
  56 * FCXP send response structure
  57 */
  58struct bfi_fcxp_send_rsp_s {
  59        struct bfi_mhdr_s  mh;          /*  Common msg header               */
  60        u16        fcxp_tag;    /*  send request tag                */
  61        u8         req_status;  /*  request status                  */
  62        u8         rsvd;
  63        u32        rsp_len;     /*  actual response length          */
  64        u32        residue_len; /*  residual response length        */
  65        struct fchs_s   fchs;           /*  response FC header structure   */
  66};
  67
  68#pragma pack()
  69
  70#endif /* __BFI_FCXP_H__ */
  71
  72