2 * Copyright (C) 2003-2006 Chelsio Communications. All rights reserved.
4 * This program is distributed in the hope that it will be useful, but WITHOUT
5 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
6 * FITNESS FOR A PARTICULAR PURPOSE. See the LICENSE file included in this
7 * release for licensing terms and conditions.
9 * $FreeBSD: src/sys/dev/cxgb/common/cxgb_ctl_defs.h,v 1.3 2007/09/09 01:28:03 kmacy Exp $
12 #ifndef _CXGB3_OFFLOAD_CTL_DEFS_H
13 #define _CXGB3_OFFLOAD_CTL_DEFS_H
16 GET_MAX_OUTSTANDING_WR
,
42 GET_CPUIDX_OF_QSET
= 40,
44 GET_RX_PAGE_INFO
= 50,
48 * Structure used to describe a TID range. Valid TIDs are [base, base+num).
51 unsigned int base
; /* first TID */
52 unsigned int num
; /* number of TIDs in range */
56 * Structure used to request the size and contents of the MTU table.
59 unsigned int size
; /* # of entries in the MTU table */
60 const unsigned short *mtus
; /* the MTU table values */
66 * Structure used to request the adapter net_device owning a given MAC address.
69 struct net_device
*dev
; /* the net_device */
70 const unsigned char *mac_addr
; /* MAC address to lookup */
77 * Structure used to request the TCP DDP parameters.
80 unsigned int llimit
; /* TDDP region start address */
81 unsigned int ulimit
; /* TDDP region end address */
82 unsigned int tag_mask
; /* TDDP tag mask */
87 unsigned int nports
; /* number of ports on this adapter */
88 struct net_device
*lldevs
[2];
92 * Structure used to return information to the iscsi layer.
94 struct ulp_iscsi_info
{
103 unsigned int max_rxsz
;
104 unsigned int max_txsz
;
105 struct pci_dev
*pdev
;
109 * Offload TX/RX page information.
111 struct ofld_page_info
{
112 unsigned int page_size
; /* Page size, should be a power of 2 */
113 unsigned int num
; /* Number of pages */
117 * Structure used to return information to the RDMA layer.
120 unsigned int tpt_base
; /* TPT base address */
121 unsigned int tpt_top
; /* TPT last entry address */
122 unsigned int pbl_base
; /* PBL base address */
123 unsigned int pbl_top
; /* PBL last entry address */
124 unsigned int rqt_base
; /* RQT base address */
125 unsigned int rqt_top
; /* RQT last entry address */
126 unsigned int udbell_len
; /* user doorbell region length */
127 unsigned long udbell_physbase
; /* user doorbell physical start addr */
128 void volatile *kdb_addr
; /* kernel doorbell register address */
129 struct pci_dev
*pdev
; /* associated PCI device */
133 * Structure used to request an operation on an RDMA completion queue.
138 unsigned int credits
;
142 * Structure used to setup RDMA completion queues.
144 struct rdma_cq_setup
{
146 unsigned long long base_addr
;
148 unsigned int credits
;
149 unsigned int credit_thres
;
150 unsigned int ovfl_mode
;
154 * Structure used to setup the RDMA control egress context.
156 struct rdma_ctrlqp_setup
{
157 unsigned long long base_addr
;
160 #endif /* _CXGB3_OFFLOAD_CTL_DEFS_H */