The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/dev/drm/drm_linux_list.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /* drm_linux_list.h -- linux list functions for the BSDs.
    2  * Created: Mon Apr 7 14:30:16 1999 by anholt@FreeBSD.org
    3  */
    4 /*-
    5  * Copyright 2003 Eric Anholt
    6  * All Rights Reserved.
    7  *
    8  * Permission is hereby granted, free of charge, to any person obtaining a
    9  * copy of this software and associated documentation files (the "Software"),
   10  * to deal in the Software without restriction, including without limitation
   11  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
   12  * and/or sell copies of the Software, and to permit persons to whom the
   13  * Software is furnished to do so, subject to the following conditions:
   14  *
   15  * The above copyright notice and this permission notice (including the next
   16  * paragraph) shall be included in all copies or substantial portions of the
   17  * Software.
   18  *
   19  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
   20  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
   21  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
   22  * VA LINUX SYSTEMS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
   23  * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
   24  * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
   25  * OTHER DEALINGS IN THE SOFTWARE.
   26  *
   27  * Authors:
   28  *    Eric Anholt <anholt@FreeBSD.org>
   29  *
   30  */
   31 
   32 #include <sys/cdefs.h>
   33 __FBSDID("$FreeBSD: releng/6.4/sys/dev/drm/drm_linux_list.h 153401 2005-12-14 00:52:59Z anholt $");
   34 
   35 struct list_head {
   36         struct list_head *next, *prev;
   37 };
   38 
   39 /* Cheat, assume the list_head is at the start of the struct */
   40 #define list_entry(entry, type, member) (type *)(entry)
   41 
   42 static __inline__ void
   43 INIT_LIST_HEAD(struct list_head *head) {
   44         (head)->next = head;
   45         (head)->prev = head;
   46 }
   47 
   48 static __inline__ int
   49 list_empty(struct list_head *head) {
   50         return (head)->next == head;
   51 }
   52 
   53 static __inline__ void
   54 list_add_tail(struct list_head *entry, struct list_head *head) {
   55         (entry)->prev = (head)->prev;
   56         (entry)->next = head;
   57         (head)->prev->next = entry;
   58         (head)->prev = entry;
   59 }
   60 
   61 static __inline__ void
   62 list_del(struct list_head *entry) {
   63         (entry)->next->prev = (entry)->prev;
   64         (entry)->prev->next = (entry)->next;
   65 }
   66 
   67 #define list_for_each(entry, head)                              \
   68     for (entry = (head)->next; entry != head; entry = (entry)->next)
   69 
   70 #define list_for_each_safe(entry, temp, head)                   \
   71     for (entry = (head)->next, temp = (entry)->next;            \
   72         temp != head;                                           \
   73         entry = temp, temp = temp->next)
   74 

Cache object: 05046308974d46a386d9d0de7bd8bd41


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.