tdev
void tdev(struct pinfo *, VARENT *, enum mode);
VAR6("tdev", "TDEV", 0, tdev, POFF(p_tdev), INT32),
struct toedev tdev;
return container_of(d, struct adapter, tdev);
e->tdev = dev;
struct toedev *dev = e->tdev;
offload_tx(struct toedev *tdev, struct mbuf *m)
ret = t3_offload_tx(tdev, m);
static int offload_close(struct toedev *tdev);
offload_close(&sc->tdev);
TAILQ_FOREACH(tdev, &ofld_dev_list, ofld_entry) {
if (offload_activated(tdev))
client->add(tdev);
struct toedev *tdev;
struct toedev *tdev = TOEDEV(rt->rt_ifp);
BUG_ON(!tdev);
t3_l2t_update(tdev, rt);
set_l2t_ix(struct toedev *tdev, u32 tid, struct l2t_entry *e)
tdev->send(tdev, m);
struct toedev *tdev;
tdev = TOEDEV(olddev);
BUG_ON(!tdev);
if (tdev != TOEDEV(newdev)) {
TAILQ_FOREACH(tdev, &ofld_dev_list, ofld_entry) {
e = t3_l2t_get(tdev, new, ((struct port_info *)new->rt_ifp->if_softc)->port_id);
ti = &(TOE_DATA(tdev))->tid_maps;
if (offload_activated(tdev))
l2t_hold(L2DATA(tdev), e);
set_l2t_ix(tdev, tid, e);
client->remove(tdev);
l2t_release(L2DATA(tdev), e);
struct toedev *dev = &adapter->tdev;
cxgb_add_clients(struct toedev *tdev)
struct toedev *tdev = &adapter->tdev;
struct toe_data *t = TOE_DATA(tdev);
TOE_DATA(tdev) = NULL;
t3_free_l2t(L2DATA(tdev));
L2DATA(tdev) = NULL;
register_tdev(struct toedev *tdev)
snprintf(tdev->name, sizeof(tdev->name), "ofld_dev%d", unit++);
TAILQ_INSERT_TAIL(&ofld_dev_list, tdev, ofld_entry);
unregister_tdev(struct toedev *tdev)
client->add(tdev);
TAILQ_REMOVE(&ofld_dev_list, tdev, ofld_entry);
struct toedev *tdev = &adapter->tdev;
cxgb_set_dummy_ops(tdev);
tdev->send = t3_offload_tx;
tdev->ctl = cxgb_offload_ctl;
tdev->type = adapter->params.rev == 0 ?
register_tdev(tdev);
offload_proc_dev_init(tdev);
struct toedev *tdev = &adapter->tdev;
offload_proc_dev_cleanup(tdev);
offload_proc_dev_exit(tdev);
tdev->recv = NULL;
tdev->neigh_update = NULL;
unregister_tdev(tdev);
cxgb_remove_clients(struct toedev *tdev)
client->remove(tdev);
cxgb_offload_ctl(struct toedev *tdev, unsigned int req, void *data)
struct adapter *adapter = tdev2adap(tdev);
cxgb_free_atid(struct toedev *tdev, int atid)
struct tid_info *t = &(TOE_DATA(tdev))->tid_maps;
cxgb_free_stid(struct toedev *tdev, int stid)
struct tid_info *t = &(TOE_DATA(tdev))->tid_maps;
cxgb_insert_tid(struct toedev *tdev, struct cxgb_client *client,
struct tid_info *t = &(TOE_DATA(tdev))->tid_maps;
struct toedev *tdev = data;
struct toe_data *td = TOE_DATA(tdev);
cxgb_ofld_send(tdev, m);
cxgb_queue_tid_release(struct toedev *tdev, unsigned int tid)
struct toe_data *td = TOE_DATA(tdev);
cxgb_remove_tid(struct toedev *tdev, void *ctx, unsigned int tid)
struct tid_info *t = &(TOE_DATA(tdev))->tid_maps;
if (tdev->type == T3A)
cxgb_ofld_send(tdev, m);
cxgb_queue_tid_release(tdev, tid);
cxgb_alloc_atid(struct toedev *tdev, struct cxgb_client *client,
struct tid_info *t = &(TOE_DATA(tdev))->tid_maps;
cxgb_alloc_stid(struct toedev *tdev, struct cxgb_client *client,
struct tid_info *t = &(TOE_DATA(tdev))->tid_maps;
offload_activated(struct toedev *tdev)
struct adapter *adapter = tdev2adap(tdev);
struct toedev *tdev;
void cxgb_add_clients(struct toedev *tdev);
void cxgb_remove_clients(struct toedev *tdev);
t3_offload_tx(struct toedev *tdev, struct mbuf *m)
adapter_t *adap = tdev2adap(tdev);
device_t tdev;
tdev = periph->periph_dev;
error = config_detach(tdev, flags);
dev_t tdev; /* dev_t of terminal */
if (ep->tdev != 0 && ep->tdev == kp->p_tdev &&
ep->tdev = 0;
ep->tdev = st.st_rdev;
if (ep->tdev == 0) {
(void) sysctl(mib, 2, &ep->tdev, &size, NULL, 0);