offload.h revision 56b2bdd1f04d465cfe4a95b88ae5cba5884154e4
/*
* This file and its contents are supplied under the terms of the
* Common Development and Distribution License ("CDDL"), version 1.0.
* You may only use this file in accordance with the terms of version
* 1.0 of the CDDL.
*
* A full copy of the text of the CDDL should have accompanied this
* source. A copy of the CDDL is also available via the Internet at
*/
/*
* This file is part of the Chelsio T4 support code.
*
* Copyright (C) 2010-2013 Chelsio Communications. All rights reserved.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the LICENSE file included in this
* release for licensing terms and conditions.
*/
#ifndef __CXGBE_OFFLOAD_H
#define __CXGBE_OFFLOAD_H
/*
* Max # of ATIDs. The absolute HW max is 16K but we keep it lower.
*/
#define MAX_ATIDS 8192U
V_FW_WR_ATOMIC(atomic)); \
V_FW_WR_FLOWID(tid)); \
} while (0)
#define INIT_TP_WR(w, tid) do { \
V_FW_WR_IMMDLEN(sizeof (*w) - sizeof (w->wr))); \
V_FW_WR_FLOWID(tid)); \
} while (0)
INIT_TP_WR(w, tid); \
} while (0)
union serv_entry {
void *data;
union serv_entry *next;
};
union aopen_entry {
void *data;
union aopen_entry *next;
};
/*
* Holds the size, base address, free list start, etc of the TID, server TID,
* and active-open TID tables. The tables themselves are allocated dynamically.
*/
struct tid_info {
void **tid_tab;
unsigned int ntids;
union serv_entry *stid_tab;
unsigned int nstids;
unsigned int stid_base;
union aopen_entry *atid_tab;
unsigned int natids;
struct filter_entry *ftid_tab;
unsigned int nftids;
unsigned int ftid_base;
unsigned int ftids_in_use;
union aopen_entry *afree;
unsigned int atids_in_use;
union serv_entry *sfree;
unsigned int stids_in_use;
unsigned int tids_in_use;
};
struct t4_range {
unsigned int start;
unsigned int size;
};
struct t4_virt_res { /* virtualized HW resources */
};
struct adapter;
struct port_info;
enum {
ULD_TOM = 1,
};
enum cxgb4_control {
};
struct uld_info {
int refcount;
int uld_id;
int (*detach)(void *);
};
struct uld_softc {
void *softc;
};
struct tom_tunables {
int sndbuf;
int ddp;
int indsz;
int ddp_thres;
};
#ifndef TCP_OFFLOAD_DISABLE
struct offload_req {
};
struct offload_settings {
};
#endif
#endif /* __CXGBE_OFFLOAD_H */