diff options
author | Navdeep Parhar <np@FreeBSD.org> | 2012-06-19 07:34:13 +0000 |
---|---|---|
committer | Navdeep Parhar <np@FreeBSD.org> | 2012-06-19 07:34:13 +0000 |
commit | 09fe63205c597be4f762c7f3017e2854c121d6d1 (patch) | |
tree | 9255a545bbd49a0458ed8850371b4fe6ed2cd01f /sys/dev/cxgb/ulp/tom/cxgb_toepcb.h | |
parent | 41b8cbda7d45229258c6205b697b5fbf80888493 (diff) |
Notes
Diffstat (limited to 'sys/dev/cxgb/ulp/tom/cxgb_toepcb.h')
-rw-r--r-- | sys/dev/cxgb/ulp/tom/cxgb_toepcb.h | 69 |
1 files changed, 22 insertions, 47 deletions
diff --git a/sys/dev/cxgb/ulp/tom/cxgb_toepcb.h b/sys/dev/cxgb/ulp/tom/cxgb_toepcb.h index 1b28e965a18c..d0046c86a097 100644 --- a/sys/dev/cxgb/ulp/tom/cxgb_toepcb.h +++ b/sys/dev/cxgb/ulp/tom/cxgb_toepcb.h @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2007-2008, Chelsio Inc. + * Copyright (c) 2007-2009, Chelsio Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -32,88 +32,63 @@ #include <sys/condvar.h> #include <sys/mbufq.h> +#define TP_DATASENT (1 << 0) +#define TP_TX_WAIT_IDLE (1 << 1) +#define TP_FIN_SENT (1 << 2) +#define TP_ABORT_RPL_PENDING (1 << 3) +#define TP_ABORT_SHUTDOWN (1 << 4) +#define TP_ABORT_RPL_RCVD (1 << 5) +#define TP_ABORT_REQ_RCVD (1 << 6) +#define TP_ATTACHED (1 << 7) +#define TP_CPL_DONE (1 << 8) +#define TP_IS_A_SYNQ_ENTRY (1 << 9) +#define TP_ABORT_RPL_SENT (1 << 10) +#define TP_SEND_FIN (1 << 11) + struct toepcb { - struct toedev *tp_toedev; + TAILQ_ENTRY(toepcb) link; /* toep_list */ + int tp_flags; + struct toedev *tp_tod; struct l2t_entry *tp_l2t; - unsigned int tp_tid; + int tp_tid; int tp_wr_max; int tp_wr_avail; int tp_wr_unacked; int tp_delack_mode; - int tp_mtu_idx; int tp_ulp_mode; - int tp_qset_idx; - int tp_mss_clamp; int tp_qset; - int tp_flags; - int tp_enqueued_bytes; - int tp_page_count; - int tp_state; - - tcp_seq tp_iss; - tcp_seq tp_delack_seq; - tcp_seq tp_rcv_wup; - tcp_seq tp_copied_seq; - uint64_t tp_write_seq; + int tp_enqueued; + int tp_rx_credits; - volatile int tp_refcount; - vm_page_t *tp_pages; - - struct tcpcb *tp_tp; - struct mbuf *tp_m_last; - bus_dma_tag_t tp_tx_dmat; - bus_dma_tag_t tp_rx_dmat; - bus_dmamap_t tp_dmamap; + struct inpcb *tp_inp; + struct mbuf *tp_m_last; - LIST_ENTRY(toepcb) synq_entry; struct mbuf_head wr_list; struct mbuf_head out_of_order_queue; - struct ddp_state tp_ddp_state; - struct cv tp_cv; - }; static inline void reset_wr_list(struct toepcb *toep) { - mbufq_init(&toep->wr_list); } static inline void -purge_wr_queue(struct toepcb *toep) -{ - struct mbuf *m; - - while ((m = mbufq_dequeue(&toep->wr_list)) != NULL) - m_freem(m); -} - -static inline void enqueue_wr(struct toepcb *toep, struct mbuf *m) { - mbufq_tail(&toep->wr_list, m); } static inline struct mbuf * peek_wr(const struct toepcb *toep) { - return (mbufq_peek(&toep->wr_list)); } static inline struct mbuf * dequeue_wr(struct toepcb *toep) { - return (mbufq_dequeue(&toep->wr_list)); } -#define wr_queue_walk(toep, m) \ - for (m = peek_wr(toep); m; m = m->m_nextpkt) - - - #endif - |