Print this page
XXXX update sendmail to 8.14.9

Split Close
Expand all
Collapse all
          --- old/usr/src/cmd/sendmail/include/sm/tailq.h
          +++ new/usr/src/cmd/sendmail/include/sm/tailq.h
↓ open down ↓ 27 lines elided ↑ open up ↑
  28   28   * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  29   29   * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  30   30   * SUCH DAMAGE.
  31   31   *
  32   32   *      @(#)queue.h     8.5 (Berkeley) 8/20/94
  33   33   */
  34   34  
  35   35  #ifndef SM_TAILQ_H_
  36   36  #define SM_TAILQ_H_
  37   37  
  38      -#pragma ident   "%Z%%M% %I%     %E% SMI"
  39      -
  40   38  /*
  41      - * $Id: tailq.h,v 1.2 2007/06/29 23:09:57 ca Exp $
       39 + * $Id: tailq.h,v 1.3 2012-01-21 00:12:14 ashish Exp $
  42   40   *
  43   41   * This file is a modified copy of queue.h from a BSD system:
  44   42   * we only need tail queues here.
  45   43   * We do not use queue.h directly because there is a conflict with
  46   44   * some versions of that file on some OSs.
  47   45   *
  48   46   * A tail queue is headed by a pair of pointers, one to the head of the
  49   47   * list and the other to the tail of the list. The elements are doubly
  50   48   * linked so that an arbitrary element can be removed without a need to
  51   49   * traverse the list. New elements can be added to the list before or
↓ open down ↓ 12 lines elided ↑ open up ↑
  64   62  
  65   63  #define SM_TAILQ_HEAD_INITIALIZER(head)                                 \
  66   64          { NULL, &(head).tqh_first }
  67   65  
  68   66  #define SM_TAILQ_ENTRY(type)                                            \
  69   67  struct {                                                                \
  70   68          struct type *tqe_next;  /* next element */                      \
  71   69          struct type **tqe_prev; /* address of previous next element */  \
  72   70  }
  73   71  
  74      -/* 
  75      - * tail queue access methods 
       72 +/*
       73 + * tail queue access methods
  76   74   */
  77   75  #define SM_TAILQ_FIRST(head)            ((head)->tqh_first)
  78   76  #define SM_TAILQ_END(head)              NULL
  79   77  #define SM_TAILQ_NEXT(elm, field)       ((elm)->field.tqe_next)
  80   78  #define SM_TAILQ_LAST(head, headname)                                   \
  81   79          (*(((struct headname *)((head)->tqh_last))->tqh_last))
  82   80  /* XXX */
  83   81  #define SM_TAILQ_PREV(elm, headname, field)                             \
  84   82          (*(((struct headname *)((elm)->field.tqe_prev))->tqh_last))
  85   83  #define SM_TAILQ_EMPTY(head)                                            \
↓ open down ↓ 74 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX