Print this page
DLPX-25998 TCP congestion control is inadequate
Reviewed at: http://reviews.delphix.com/r/34808/

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/sys/queue.h
          +++ new/usr/src/uts/common/sys/queue.h
↓ open down ↓ 314 lines elided ↑ open up ↑
 315  315                  struct type *curelm = (head)->stqh_first;               \
 316  316                  while (curelm->field.stqe_next != (elm))                \
 317  317                          curelm = curelm->field.stqe_next;               \
 318  318                  if ((curelm->field.stqe_next =                          \
 319  319                          curelm->field.stqe_next->field.stqe_next) == NULL) \
 320  320                              (head)->stqh_last = &(curelm)->field.stqe_next; \
 321  321          }                                                               \
 322  322          _NOTE(CONSTCOND)                                                \
 323  323  } while (0)
 324  324  
 325      -#define STAILQ_FOREACH(var, head, field)                                \
 326      -        for ((var) = ((head)->stqh_first);                              \
 327      -                (var);                                                  \
 328      -                (var) = ((var)->field.stqe_next))
 329      -
 330  325  /*
 331  326   * Singly-linked Tail queue access methods.
 332  327   */
 333  328  #define STAILQ_EMPTY(head)      ((head)->stqh_first == NULL)
 334  329  #define STAILQ_FIRST(head)      ((head)->stqh_first)
 335  330  #define STAILQ_NEXT(elm, field) ((elm)->field.stqe_next)
 336  331  
      332 +#define STAILQ_FOREACH(var, head, field)                                \
      333 +        for ((var) = ((head)->stqh_first);                              \
      334 +                (var);                                                  \
      335 +                (var) = ((var)->field.stqe_next))
 337  336  
      337 +#define STAILQ_FOREACH_SAFE(var, head, field, tvar)                     \
      338 +        for ((var) = STAILQ_FIRST((head));                              \
      339 +                (var) && ((tvar) = STAILQ_NEXT((var), field), 1);       \
      340 +                (var) = (tvar))
      341 +
      342 +
 338  343  /*
 339  344   * Simple queue definitions.
 340  345   */
 341  346  #define SIMPLEQ_HEAD(name, type)                                        \
 342  347  struct name {                                                           \
 343  348          struct type *sqh_first; /* first element */             \
 344  349          struct type **sqh_last; /* addr of last next element */ \
 345  350  }
 346  351  
 347  352  #define SIMPLEQ_HEAD_INITIALIZER(head)                                  \
↓ open down ↓ 331 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX