GNU Radio's TEST Package
Llist

Files

file  lib/fosphor/llist.h
 Simple double-linked list.
 
file  obj-aarch64-linux-gnu/lib/fosphor/llist.h
 Simple double-linked list.
 

Classes

struct  llist_head
 

Macros

#define LLIST_HEAD_INIT(name)   { &(name), &(name) }
 
#define LLIST_HEAD(name)    struct llist_head name = LLIST_HEAD_INIT(name)
 
#define llist_entry(ptr, type, member)    ((type *)( (char *)(ptr) - offsetof(type, member) ))
 Get the struct for this entry. More...
 
#define llist_for_each_entry(type, pos, head, member)
 Iterate over llist of given type. More...
 
#define LLIST_HEAD_INIT(name)   { &(name), &(name) }
 
#define LLIST_HEAD(name)    struct llist_head name = LLIST_HEAD_INIT(name)
 
#define llist_entry(ptr, type, member)    ((type *)( (char *)(ptr) - offsetof(type, member) ))
 Get the struct for this entry. More...
 
#define llist_for_each_entry(type, pos, head, member)
 Iterate over llist of given type. More...
 

Functions

static void llist_add (struct llist_head *_new, struct llist_head *head)
 Add a new entry after the specified head. More...
 
static void llist_del (struct llist_head *entry)
 Deletes entry from llist. More...
 

Detailed Description

Macro Definition Documentation

◆ llist_entry [1/2]

#define llist_entry (   ptr,
  type,
  member 
)     ((type *)( (char *)(ptr) - offsetof(type, member) ))

Get the struct for this entry.

Parameters
[in]ptrthe &struct llist_head pointer
[in]typethe type of the struct this is embedded in
[in]memberthe name of the llist_struct within the struct
Returns
The struct for this entry

◆ llist_entry [2/2]

#define llist_entry (   ptr,
  type,
  member 
)     ((type *)( (char *)(ptr) - offsetof(type, member) ))

Get the struct for this entry.

Parameters
[in]ptrthe &struct llist_head pointer
[in]typethe type of the struct this is embedded in
[in]memberthe name of the llist_struct within the struct
Returns
The struct for this entry

◆ llist_for_each_entry [1/2]

#define llist_for_each_entry (   type,
  pos,
  head,
  member 
)
Value:
for (pos = llist_entry((head)->next, type, member); \
&pos->member != (head); \
pos = llist_entry(pos->member.next, type, member))
#define llist_entry(ptr, type, member)
Get the struct for this entry.
Definition: lib/fosphor/llist.h:66

Iterate over llist of given type.

Parameters
[in]typethe type of the loop counter
[out]posthe type * to use as a loop counter
[in]headthe head for your llist
[in]memberthe name of the llist_struct within the struct

◆ llist_for_each_entry [2/2]

#define llist_for_each_entry (   type,
  pos,
  head,
  member 
)
Value:
for (pos = llist_entry((head)->next, type, member); \
&pos->member != (head); \
pos = llist_entry(pos->member.next, type, member))

Iterate over llist of given type.

Parameters
[in]typethe type of the loop counter
[out]posthe type * to use as a loop counter
[in]headthe head for your llist
[in]memberthe name of the llist_struct within the struct

◆ LLIST_HEAD [1/2]

#define LLIST_HEAD (   name)     struct llist_head name = LLIST_HEAD_INIT(name)

◆ LLIST_HEAD [2/2]

#define LLIST_HEAD (   name)     struct llist_head name = LLIST_HEAD_INIT(name)

◆ LLIST_HEAD_INIT [1/2]

#define LLIST_HEAD_INIT (   name)    { &(name), &(name) }

◆ LLIST_HEAD_INIT [2/2]

#define LLIST_HEAD_INIT (   name)    { &(name), &(name) }

Function Documentation

◆ llist_add()

static void llist_add ( struct llist_head _new,
struct llist_head head 
)
inlinestatic

Add a new entry after the specified head.

Parameters
[in]newnew entry to be added
[in]headllist head to add it after

References llist_head::next, and llist_head::prev.

◆ llist_del()

static void llist_del ( struct llist_head entry)
inlinestatic

Deletes entry from llist.

Parameters
[in]entrythe element to delete from the llist

References llist_head::next, and llist_head::prev.