Motr  M0
tlist.h File Reference
#include "lib/list.h"
#include "lib/list_xc.h"
#include "lib/types.h"
Include dependency graph for tlist.h:

Go to the source code of this file.

Data Structures

struct  m0_tl_descr
 
struct  m0_tl
 
struct  m0_tlink
 

Macros

#define __MOTR_LIB_TLIST_H__
 
#define M0_TL_DESCR(name, ambient_type, link_field, link_magic_field, link_magic, head_magic)
 
#define m0_tlist_for(descr, head, obj)
 
#define m0_tlist_endfor   ;(void)__tl; } while (0)
 
#define m0_tlist_forall(descr, var, head, ...)
 
#define M0_TL_DESCR_DECLARE(name, scope)   scope const struct m0_tl_descr name ## _tl
 
#define M0_TL_DECLARE(name, scope, amb_type)
 
#define __AUN   __attribute__((unused))
 
#define M0_TL_DESCR_DEFINE(name, hname, scope, amb_type, amb_link_field, amb_magic_field, amb_magic, head_magic)
 
#define M0_TL_DEFINE(name, scope, amb_type)
 
#define m0_tl_for(name, head, obj)   m0_tlist_for(& name ## _tl, head, obj)
 
#define m0_tl_endfor   m0_tlist_endfor
 
#define m0_tl_teardown(name, head, obj)   while (((obj) = name ## _tlist_pop(head)) != NULL)
 
#define m0_tl_forall(name, var, head, ...)
 
#define m0_tl_find(name, var, head, ...)
 
#define m0_tl_exists(name, var, head, ...)   (!m0_tl_forall(name, var, head, !({ __VA_ARGS__ ; })))
 

Functions

struct m0_tl_descr M0_XCA_DOMAIN (be)
 
M0_INTERNAL void m0_tlist_init (const struct m0_tl_descr *d, struct m0_tl *list)
 
M0_INTERNAL void m0_tlist_fini (const struct m0_tl_descr *d, struct m0_tl *list)
 
M0_INTERNAL void m0_tlink_init (const struct m0_tl_descr *d, void *obj)
 
M0_INTERNAL void m0_tlink_fini (const struct m0_tl_descr *d, void *obj)
 
M0_INTERNAL void m0_tlink_init_at (const struct m0_tl_descr *d, void *obj, struct m0_tl *list)
 
M0_INTERNAL void m0_tlink_init_at_tail (const struct m0_tl_descr *d, void *obj, struct m0_tl *list)
 
M0_INTERNAL void m0_tlink_del_fini (const struct m0_tl_descr *d, void *obj)
 
M0_INTERNAL bool m0_tlist_invariant (const struct m0_tl_descr *d, const struct m0_tl *list)
 
M0_INTERNAL bool m0_tlist_invariant_ext (const struct m0_tl_descr *d, const struct m0_tl *list, bool(*check)(const void *, void *), void *datum)
 
M0_INTERNAL bool m0_tlink_invariant (const struct m0_tl_descr *d, const void *obj)
 
M0_INTERNAL bool m0_tlist_is_empty (const struct m0_tl_descr *d, const struct m0_tl *list)
 
M0_INTERNAL bool m0_tlink_is_in (const struct m0_tl_descr *d, const void *obj)
 
M0_INTERNAL bool m0_tlist_contains (const struct m0_tl_descr *d, const struct m0_tl *list, const void *obj)
 
M0_INTERNAL size_t m0_tlist_length (const struct m0_tl_descr *d, const struct m0_tl *list)
 
M0_INTERNAL void m0_tlist_add (const struct m0_tl_descr *d, struct m0_tl *list, void *obj)
 
M0_INTERNAL void m0_tlist_add_tail (const struct m0_tl_descr *d, struct m0_tl *list, void *obj)
 
M0_INTERNAL void m0_tlist_add_after (const struct m0_tl_descr *d, void *obj, void *new)
 
M0_INTERNAL void m0_tlist_add_before (const struct m0_tl_descr *d, void *obj, void *new)
 
M0_INTERNAL void m0_tlist_del (const struct m0_tl_descr *d, void *obj)
 
M0_INTERNAL void m0_tlist_remove (const struct m0_tl_descr *d, void *obj)
 
M0_INTERNAL void m0_tlist_move (const struct m0_tl_descr *d, struct m0_tl *list, void *obj)
 
M0_INTERNAL void m0_tlist_move_tail (const struct m0_tl_descr *d, struct m0_tl *list, void *obj)
 
void * m0_tlist_head (const struct m0_tl_descr *d, const struct m0_tl *list)
 
M0_INTERNAL void * m0_tlist_pop (const struct m0_tl_descr *d, const struct m0_tl *list)
 
M0_INTERNAL void * m0_tlist_tail (const struct m0_tl_descr *d, const struct m0_tl *list)
 
void * m0_tlist_next (const struct m0_tl_descr *d, const struct m0_tl *list, const void *obj)
 
M0_INTERNAL void * m0_tlist_prev (const struct m0_tl_descr *d, const struct m0_tl *list, const void *obj)
 

Variables

const char * td_name
 
int td_link_offset
 
int td_link_magic_offset
 
uint64_t td_link_magic
 
uint64_t td_head_magic
 
size_t td_container_size
 
uint64_t t_magic
 
struct m0_list t_head
 
struct m0_list_link t_link
 

Macro Definition Documentation

◆ __MOTR_LIB_TLIST_H__

#define __MOTR_LIB_TLIST_H__

Definition at line 26 of file tlist.h.