33#ifndef _CXGB_OFFLOAD_H
34#define _CXGB_OFFLOAD_H
44 SLIST_ENTRY(uld_info) link;
47 int (*activate)(
struct adapter *);
48 int (*deactivate)(
struct adapter *);
60 CPL_PRIORITY_DATA = 0,
61 CPL_PRIORITY_CONTROL = 1
65#define M_HDR_NDESC 0xf
66#define V_HDR_NDESC(x) ((x) << S_HDR_NDESC)
67#define G_HDR_NDESC(x) (((x) >> S_HDR_NDESC) & M_HDR_NDESC)
71#define V_HDR_QSET(x) ((x) << S_HDR_QSET)
72#define G_HDR_QSET(x) (((x) >> S_HDR_QSET) & M_HDR_QSET)
75#define V_HDR_CTRL(x) ((x) << S_HDR_CTRL)
76#define F_HDR_CTRL V_HDR_CTRL(1U)
79#define V_HDR_DF(x) ((x) << S_HDR_DF)
80#define F_HDR_DF V_HDR_DF(1U)
83#define V_HDR_SGL(x) ((x) << S_HDR_SGL)
84#define F_HDR_SGL V_HDR_SGL(1U)
96#define M_GETHDR_OFLD(qset, ctrl, cpl) \
97 m_gethdr_ofld(qset, ctrl, sizeof(*cpl), (void **)&cpl)
98static inline struct mbuf *
99m_gethdr_ofld(
int qset,
int ctrl,
int cpllen,
void **cpl)
104 m = m_gethdr(M_NOWAIT, MT_DATA);
108 oh = mtod(m,
struct ofld_hdr *);
109 oh->flags = V_HDR_NDESC(1) | V_HDR_QSET(qset) | V_HDR_CTRL(ctrl);
110 *cpl = (
void *)(oh + 1);
111 m->m_pkthdr.len = m->m_len =
sizeof(*oh) + cpllen;
116int t3_register_uld(
struct uld_info *);
117int t3_unregister_uld(
struct uld_info *);
118int t3_activate_uld(
struct adapter *,
int);
119int t3_deactivate_uld(
struct adapter *,
int);
122#define CXGB_UNIMPLEMENTED() \
123 panic("IMPLEMENT: %s:%s:%d", __FUNCTION__, __FILE__, __LINE__)