Print this page
*** NO COMMENTS ***


 573         uint_t  tcp_label_len;  /* length of cached label */
 574 
 575         /*
 576          * tcp_closemp_used is protected by listener's tcp_eager_lock
 577          * when used for eagers. When used for a tcp in TIME_WAIT state
 578          * or in tcp_close(), it is not protected by any lock as we
 579          * do not expect any other thread to use it concurrently.
 580          * We do allow re-use of tcp_closemp in tcp_time_wait_collector()
 581          * and tcp_close() but not concurrently.
 582          */
 583         boolean_t tcp_closemp_used;
 584 
 585         /*
 586          * previous and next eagers in the list of droppable eagers. See
 587          * the comments before MAKE_DROPPABLE(). These pointers are
 588          * protected by listener's tcp_eager_lock.
 589          */
 590         struct tcp_s    *tcp_eager_prev_drop_q0;
 591         struct tcp_s    *tcp_eager_next_drop_q0;
 592 


 593         /*
 594          * Have we flow controlled xmitter?
 595          * This variable can be modified outside the squeue and hence must
 596          * not be declared as a bit field along with the rest that are
 597          * modified only within the squeue.
 598          * protected by the tcp_non_sq_lock lock.
 599          */
 600         boolean_t       tcp_flow_stopped;
 601 
 602         /*
 603          * tcp_sodirect is used by tcp on the receive side to push mblk_t(s)
 604          * directly to sockfs. Also, to schedule asynchronous copyout directly
 605          * to a pending user-land uio buffer.
 606          */
 607         sodirect_t      *tcp_sodirect;
 608 
 609 #ifdef DEBUG
 610         pc_t                    tcmp_stk[15];
 611 #endif
 612 } tcp_t;




 573         uint_t  tcp_label_len;  /* length of cached label */
 574 
 575         /*
 576          * tcp_closemp_used is protected by listener's tcp_eager_lock
 577          * when used for eagers. When used for a tcp in TIME_WAIT state
 578          * or in tcp_close(), it is not protected by any lock as we
 579          * do not expect any other thread to use it concurrently.
 580          * We do allow re-use of tcp_closemp in tcp_time_wait_collector()
 581          * and tcp_close() but not concurrently.
 582          */
 583         boolean_t tcp_closemp_used;
 584 
 585         /*
 586          * previous and next eagers in the list of droppable eagers. See
 587          * the comments before MAKE_DROPPABLE(). These pointers are
 588          * protected by listener's tcp_eager_lock.
 589          */
 590         struct tcp_s    *tcp_eager_prev_drop_q0;
 591         struct tcp_s    *tcp_eager_next_drop_q0;
 592 
 593         boolean_t       tcp_dtrace_connect_established; /* trace this event */
 594 
 595         /*
 596          * Have we flow controlled xmitter?
 597          * This variable can be modified outside the squeue and hence must
 598          * not be declared as a bit field along with the rest that are
 599          * modified only within the squeue.
 600          * protected by the tcp_non_sq_lock lock.
 601          */
 602         boolean_t       tcp_flow_stopped;
 603 
 604         /*
 605          * tcp_sodirect is used by tcp on the receive side to push mblk_t(s)
 606          * directly to sockfs. Also, to schedule asynchronous copyout directly
 607          * to a pending user-land uio buffer.
 608          */
 609         sodirect_t      *tcp_sodirect;
 610 
 611 #ifdef DEBUG
 612         pc_t                    tcmp_stk[15];
 613 #endif
 614 } tcp_t;