~ubuntu-branches/ubuntu/precise/linux-lowlatency/precise

« back to all changes in this revision

Viewing changes to drivers/net/ethernet/chelsio/cxgb3/cxgb3_ctl_defs.h

  • Committer: Package Import Robot
  • Author(s): Alessio Igor Bogani
  • Date: 2011-10-26 11:13:05 UTC
  • Revision ID: package-import@ubuntu.com-20111026111305-tz023xykf0i6eosh
Tags: upstream-3.2.0
ImportĀ upstreamĀ versionĀ 3.2.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * Copyright (c) 2003-2008 Chelsio, Inc. All rights reserved.
 
3
 *
 
4
 * This software is available to you under a choice of one of two
 
5
 * licenses.  You may choose to be licensed under the terms of the GNU
 
6
 * General Public License (GPL) Version 2, available from the file
 
7
 * COPYING in the main directory of this source tree, or the
 
8
 * OpenIB.org BSD license below:
 
9
 *
 
10
 *     Redistribution and use in source and binary forms, with or
 
11
 *     without modification, are permitted provided that the following
 
12
 *     conditions are met:
 
13
 *
 
14
 *      - Redistributions of source code must retain the above
 
15
 *        copyright notice, this list of conditions and the following
 
16
 *        disclaimer.
 
17
 *
 
18
 *      - Redistributions in binary form must reproduce the above
 
19
 *        copyright notice, this list of conditions and the following
 
20
 *        disclaimer in the documentation and/or other materials
 
21
 *        provided with the distribution.
 
22
 *
 
23
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 
24
 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 
25
 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 
26
 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
 
27
 * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
 
28
 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
 
29
 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 
30
 * SOFTWARE.
 
31
 */
 
32
#ifndef _CXGB3_OFFLOAD_CTL_DEFS_H
 
33
#define _CXGB3_OFFLOAD_CTL_DEFS_H
 
34
 
 
35
enum {
 
36
        GET_MAX_OUTSTANDING_WR  = 0,
 
37
        GET_TX_MAX_CHUNK        = 1,
 
38
        GET_TID_RANGE           = 2,
 
39
        GET_STID_RANGE          = 3,
 
40
        GET_RTBL_RANGE          = 4,
 
41
        GET_L2T_CAPACITY        = 5,
 
42
        GET_MTUS                = 6,
 
43
        GET_WR_LEN              = 7,
 
44
        GET_IFF_FROM_MAC        = 8,
 
45
        GET_DDP_PARAMS          = 9,
 
46
        GET_PORTS               = 10,
 
47
 
 
48
        ULP_ISCSI_GET_PARAMS    = 11,
 
49
        ULP_ISCSI_SET_PARAMS    = 12,
 
50
 
 
51
        RDMA_GET_PARAMS         = 13,
 
52
        RDMA_CQ_OP              = 14,
 
53
        RDMA_CQ_SETUP           = 15,
 
54
        RDMA_CQ_DISABLE         = 16,
 
55
        RDMA_CTRL_QP_SETUP      = 17,
 
56
        RDMA_GET_MEM            = 18,
 
57
        RDMA_GET_MIB            = 19,
 
58
 
 
59
        GET_RX_PAGE_INFO        = 50,
 
60
        GET_ISCSI_IPV4ADDR      = 51,
 
61
 
 
62
        GET_EMBEDDED_INFO       = 70,
 
63
};
 
64
 
 
65
/*
 
66
 * Structure used to describe a TID range.  Valid TIDs are [base, base+num).
 
67
 */
 
68
struct tid_range {
 
69
        unsigned int base;      /* first TID */
 
70
        unsigned int num;       /* number of TIDs in range */
 
71
};
 
72
 
 
73
/*
 
74
 * Structure used to request the size and contents of the MTU table.
 
75
 */
 
76
struct mtutab {
 
77
        unsigned int size;      /* # of entries in the MTU table */
 
78
        const unsigned short *mtus;     /* the MTU table values */
 
79
};
 
80
 
 
81
struct net_device;
 
82
 
 
83
/*
 
84
 * Structure used to request the adapter net_device owning a given MAC address.
 
85
 */
 
86
struct iff_mac {
 
87
        struct net_device *dev; /* the net_device */
 
88
        const unsigned char *mac_addr;  /* MAC address to lookup */
 
89
        u16 vlan_tag;
 
90
};
 
91
 
 
92
/* Structure used to request a port's iSCSI IPv4 address */
 
93
struct iscsi_ipv4addr {
 
94
        struct net_device *dev; /* the net_device */
 
95
        __be32 ipv4addr;        /* the return iSCSI IPv4 address */
 
96
};
 
97
 
 
98
struct pci_dev;
 
99
 
 
100
/*
 
101
 * Structure used to request the TCP DDP parameters.
 
102
 */
 
103
struct ddp_params {
 
104
        unsigned int llimit;    /* TDDP region start address */
 
105
        unsigned int ulimit;    /* TDDP region end address */
 
106
        unsigned int tag_mask;  /* TDDP tag mask */
 
107
        struct pci_dev *pdev;
 
108
};
 
109
 
 
110
struct adap_ports {
 
111
        unsigned int nports;    /* number of ports on this adapter */
 
112
        struct net_device *lldevs[2];
 
113
};
 
114
 
 
115
/*
 
116
 * Structure used to return information to the iscsi layer.
 
117
 */
 
118
struct ulp_iscsi_info {
 
119
        unsigned int offset;
 
120
        unsigned int llimit;
 
121
        unsigned int ulimit;
 
122
        unsigned int tagmask;
 
123
        u8 pgsz_factor[4];
 
124
        unsigned int max_rxsz;
 
125
        unsigned int max_txsz;
 
126
        struct pci_dev *pdev;
 
127
};
 
128
 
 
129
/*
 
130
 * Structure used to return information to the RDMA layer.
 
131
 */
 
132
struct rdma_info {
 
133
        unsigned int tpt_base;  /* TPT base address */
 
134
        unsigned int tpt_top;   /* TPT last entry address */
 
135
        unsigned int pbl_base;  /* PBL base address */
 
136
        unsigned int pbl_top;   /* PBL last entry address */
 
137
        unsigned int rqt_base;  /* RQT base address */
 
138
        unsigned int rqt_top;   /* RQT last entry address */
 
139
        unsigned int udbell_len;        /* user doorbell region length */
 
140
        unsigned long udbell_physbase;  /* user doorbell physical start addr */
 
141
        void __iomem *kdb_addr; /* kernel doorbell register address */
 
142
        struct pci_dev *pdev;   /* associated PCI device */
 
143
};
 
144
 
 
145
/*
 
146
 * Structure used to request an operation on an RDMA completion queue.
 
147
 */
 
148
struct rdma_cq_op {
 
149
        unsigned int id;
 
150
        unsigned int op;
 
151
        unsigned int credits;
 
152
};
 
153
 
 
154
/*
 
155
 * Structure used to setup RDMA completion queues.
 
156
 */
 
157
struct rdma_cq_setup {
 
158
        unsigned int id;
 
159
        unsigned long long base_addr;
 
160
        unsigned int size;
 
161
        unsigned int credits;
 
162
        unsigned int credit_thres;
 
163
        unsigned int ovfl_mode;
 
164
};
 
165
 
 
166
/*
 
167
 * Structure used to setup the RDMA control egress context.
 
168
 */
 
169
struct rdma_ctrlqp_setup {
 
170
        unsigned long long base_addr;
 
171
        unsigned int size;
 
172
};
 
173
 
 
174
/*
 
175
 * Offload TX/RX page information.
 
176
 */
 
177
struct ofld_page_info {
 
178
        unsigned int page_size;  /* Page size, should be a power of 2 */
 
179
        unsigned int num;        /* Number of pages */
 
180
};
 
181
 
 
182
/*
 
183
 * Structure used to get firmware and protocol engine versions.
 
184
 */
 
185
struct ch_embedded_info {
 
186
        u32 fw_vers;
 
187
        u32 tp_vers;
 
188
};
 
189
#endif                          /* _CXGB3_OFFLOAD_CTL_DEFS_H */