- register struct sockbuf *xxsb = &((tpcb)->tp_sock->so_rcv);\
- register int xxi = ((xxsb)->sb_hiwat-(xxsb)->sb_cc);\
- register int maxcredit = ((tpcb)->tp_xtd_format?0xffff:0xf);\
- maxcredit = ((tpcb)->tp_decbit?1:maxcredit);\
- xxi = (xxi<0) ? 0 : ((xxi)>>(tpcb)->tp_tpdusize);\
- (tpcb)->tp_lcredit = MIN( xxi ,maxcredit );\
+ register struct sockbuf *xxsb = &((tpcb)->tp_sock->so_rcv);\
+ register int xxi = ((xxsb)->sb_hiwat-(xxsb)->sb_cc);\
+ register int maxcredit = ((tpcb)->tp_xtd_format?0xffff:0xf);\
+ xxi = (xxi<0) ? 0 : ((xxi)>>(tpcb)->tp_tpdusize);\
+ xxi = MIN(xxi, maxcredit); \
+ if (!(tpcb->tp_cebit_off)) { \
+ (tpcb)->tp_lcredit = ROUND((tpcb)->tp_win_recv); \
+ if (xxi < (tpcb)->tp_lcredit) { \
+ (tpcb)->tp_lcredit = xxi; \
+ } \
+ } \
+ else { \
+ (tpcb)->tp_lcredit = xxi; \
+ } \