security/nss/lib/jar/jar-ds.h

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     1 /* This Source Code Form is subject to the terms of the Mozilla Public
     2  * License, v. 2.0. If a copy of the MPL was not distributed with this
     3  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
     5 #ifndef __JAR_DS_h_
     6 #define __JAR_DS_h_
     8 /* Typedefs */
     9 typedef struct ZZLinkStr ZZLink;
    10 typedef struct ZZListStr ZZList;
    12 /*
    13 ** Circular linked list. Each link contains a pointer to the object that
    14 ** is actually in the list.
    15 */
    16 struct ZZLinkStr {
    17     ZZLink *next;
    18     ZZLink *prev;
    19     JAR_Item *thing;
    20 };
    22 struct ZZListStr {
    23     ZZLink link;
    24 };
    26 #define ZZ_InitList(lst)	 \
    27 { \
    28     (lst)->link.next = &(lst)->link; \
    29     (lst)->link.prev = &(lst)->link; \
    30     (lst)->link.thing = 0; \
    31 }
    33 #define ZZ_ListEmpty(lst) ((lst)->link.next == &(lst)->link)
    35 #define ZZ_ListHead(lst) ((lst)->link.next)
    37 #define ZZ_ListTail(lst) ((lst)->link.prev)
    39 #define ZZ_ListIterDone(lst,lnk) ((lnk) == &(lst)->link)
    41 #define ZZ_AppendLink(lst,lnk)	    \
    42 { \
    43     (lnk)->next = &(lst)->link; \
    44     (lnk)->prev = (lst)->link.prev; \
    45     (lst)->link.prev->next = (lnk); \
    46     (lst)->link.prev = (lnk); \
    47 }
    49 #define ZZ_InsertLink(lst,lnk)	    \
    50 { \
    51     (lnk)->next = (lst)->link.next; \
    52     (lnk)->prev = &(lst)->link; \
    53     (lst)->link.next->prev = (lnk); \
    54     (lst)->link.next = (lnk); \
    55 }
    57 #define ZZ_RemoveLink(lnk)	 \
    58 { \
    59     (lnk)->next->prev = (lnk)->prev; \
    60     (lnk)->prev->next = (lnk)->next; \
    61     (lnk)->next = 0; \
    62     (lnk)->prev = 0; \
    63 }
    65 extern ZZLink *
    66 ZZ_NewLink(JAR_Item *thing);
    68 extern void 
    69 ZZ_DestroyLink(ZZLink *link);
    71 extern ZZList *
    72 ZZ_NewList(void);
    74 extern void 
    75 ZZ_DestroyList(ZZList *list);
    78 #endif /* __JAR_DS_h_ */

mercurial