LCOV - code coverage report
Current view: directory - memory/jemalloc - linkedlist.h (source / functions) Found Hit Coverage
Test: app.info Lines: 18 0 0.0 %
Date: 2012-06-02 Functions: 4 0 0.0 %

       1                 : /* -*- Mode: C; tab-width: 8; c-basic-offset: 8; indent-tabs-mode: t -*- */
       2                 : /* vim:set softtabstop=8 shiftwidth=8 noet: */
       3                 : /*-
       4                 :  * Copyright (C) the Mozilla Foundation.
       5                 :  * All rights reserved.
       6                 :  *
       7                 :  * Redistribution and use in source and binary forms, with or without
       8                 :  * modification, are permitted provided that the following conditions
       9                 :  * are met:
      10                 :  * 1. Redistributions of source code must retain the above copyright
      11                 :  *    notice(s), this list of conditions and the following disclaimer as
      12                 :  *    the first lines of this file unmodified other than the possible
      13                 :  *    addition of one or more copyright notices.
      14                 :  * 2. Redistributions in binary form must reproduce the above copyright
      15                 :  *    notice(s), this list of conditions and the following disclaimer in
      16                 :  *    the documentation and/or other materials provided with the
      17                 :  *    distribution.
      18                 :  *
      19                 :  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) ``AS IS'' AND ANY
      20                 :  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
      21                 :  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
      22                 :  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT HOLDER(S) BE
      23                 :  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
      24                 :  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
      25                 :  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
      26                 :  * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
      27                 :  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
      28                 :  * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
      29                 :  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
      30                 :  *
      31                 :  *******************************************************************************/
      32                 : 
      33                 : #ifndef linkedlist_h__
      34                 : #define linkedlist_h__
      35                 : 
      36                 : #include <stddef.h>
      37                 : 
      38                 : typedef struct LinkedList_s LinkedList;
      39                 : 
      40                 : struct LinkedList_s {
      41                 :         LinkedList *next;
      42                 :         LinkedList *prev;
      43                 : };
      44                 : 
      45                 : /* Convert from LinkedList* to foo*. */
      46                 : #define LinkedList_Get(e, type, prop) \
      47                 :   (type*)((char*)(e) - offsetof(type, prop))
      48                 : 
      49                 : /* Insert |e| at the beginning of |l|.  */
      50               0 : void LinkedList_InsertHead(LinkedList *l, LinkedList *e)
      51                 : {
      52               0 :         e->next = l;
      53               0 :         e->prev = l->prev;
      54               0 :         e->next->prev = e;
      55               0 :         e->prev->next = e;
      56               0 : }
      57                 : 
      58               0 : void LinkedList_Remove(LinkedList *e)
      59                 : {
      60               0 :         e->prev->next = e->next;
      61               0 :         e->next->prev = e->prev;
      62               0 :         e->next = e;
      63               0 :         e->prev = e;
      64               0 : }
      65                 : 
      66               0 : bool LinkedList_IsEmpty(LinkedList *e)
      67                 : {
      68               0 :         return e->next == e;
      69                 : }
      70                 : 
      71               0 : void LinkedList_Init(LinkedList *e)
      72                 : {
      73               0 :         e->next = e;
      74               0 :         e->prev = e;
      75               0 : }
      76                 : 
      77                 : #endif

Generated by: LCOV version 1.7