Coda Distributed File System
Loading...
Searching...
No Matches
Classes | Macros
dllist.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  list_head
 

Macros

#define list_entry(ptr, type, member)    ((type *)((char *)(ptr) - (unsigned long)(&((type *)0)->member)))
 
#define list_init(head)
 
#define list_add(entry, head)
 
#define list_del(entry)
 
#define list_empty(head)   ((head)->next == head)
 
#define list_for_each(ptr, head)    for (ptr = (head)->next; ptr != head; ptr = ptr->next)
 

Macro Definition Documentation

◆ list_add

#define list_add (   entry,
  head 
)
Value:
do { \
struct list_head *h = head, *e = entry; \
h->next->prev = e; \
e->next = h->next; \
e->prev = h; \
h->next = e; \
} while (0);
Definition codamergedump.cc:54
Definition dllist.h:24
struct list_head * prev
Definition dllist.h:25
struct list_head * next
Definition dllist.h:25
PROC * head
Definition util.c:73

◆ list_del

#define list_del (   entry)
Value:
do { \
struct list_head *e = entry; \
e->prev->next = e->next; \
e->next->prev = e->prev; \
e->prev = e->next = e; \
} while (0);

◆ list_empty

#define list_empty (   head)    ((head)->next == head)

◆ list_entry

#define list_entry (   ptr,
  type,
  member 
)     ((type *)((char *)(ptr) - (unsigned long)(&((type *)0)->member)))

◆ list_for_each

#define list_for_each (   ptr,
  head 
)     for (ptr = (head)->next; ptr != head; ptr = ptr->next)

◆ list_init

#define list_init (   head)
Value:
do { \
struct list_head *h = head; \
h->prev = h->next = h; \
} while (0);