Please, help us to better serve our user community by answering the following short survey: https://www.hdfgroup.org/website-survey/
HDF  4.3.0
API Reference
 
Loading...
Searching...
No Matches
hqueue_priv.h File Reference

Macros

#define H4_CIRCLEQ_HEAD(name, type)
 
#define H4_CIRCLEQ_ENTRY(type)
 
#define H4_CIRCLEQ_INIT(head)
 
#define H4_CIRCLEQ_INSERT_AFTER(head, listelm, elm, field)
 
#define H4_CIRCLEQ_INSERT_BEFORE(head, listelm, elm, field)
 
#define H4_CIRCLEQ_INSERT_HEAD(head, elm, field)
 
#define H4_CIRCLEQ_INSERT_TAIL(head, elm, field)
 
#define H4_CIRCLEQ_REMOVE(head, elm, field)
 

Macro Definition Documentation

◆ H4_CIRCLEQ_ENTRY

#define H4_CIRCLEQ_ENTRY ( type)
Value:
struct { \
struct type *cqe_next; /* next element */ \
struct type *cqe_prev; /* previous element */ \
}
intf intf intf intf * type
Definition hproto_fortran.h:46

◆ H4_CIRCLEQ_HEAD

#define H4_CIRCLEQ_HEAD ( name,
type )
Value:
struct name { \
struct type *cqh_first; /* first element */ \
struct type *cqh_last; /* last element */ \
}
intf _fcd name
Definition hproto_fortran.h:762

◆ H4_CIRCLEQ_INIT

#define H4_CIRCLEQ_INIT ( head)
Value:
{ \
(head)->cqh_first = (void *)(head); \
(head)->cqh_last = (void *)(head); \
}

◆ H4_CIRCLEQ_INSERT_AFTER

#define H4_CIRCLEQ_INSERT_AFTER ( head,
listelm,
elm,
field )
Value:
{ \
(elm)->field.cqe_next = (listelm)->field.cqe_next; \
(elm)->field.cqe_prev = (listelm); \
if ((listelm)->field.cqe_next == (void *)(head)) \
(head)->cqh_last = (elm); \
else \
(listelm)->field.cqe_next->field.cqe_prev = (elm); \
(listelm)->field.cqe_next = (elm); \
}
intf _fcd field
Definition hproto_fortran.h:1010

◆ H4_CIRCLEQ_INSERT_BEFORE

#define H4_CIRCLEQ_INSERT_BEFORE ( head,
listelm,
elm,
field )
Value:
{ \
(elm)->field.cqe_next = (listelm); \
(elm)->field.cqe_prev = (listelm)->field.cqe_prev; \
if ((listelm)->field.cqe_prev == (void *)(head)) \
(head)->cqh_first = (elm); \
else \
(listelm)->field.cqe_prev->field.cqe_next = (elm); \
(listelm)->field.cqe_prev = (elm); \
}

◆ H4_CIRCLEQ_INSERT_HEAD

#define H4_CIRCLEQ_INSERT_HEAD ( head,
elm,
field )
Value:
{ \
(elm)->field.cqe_next = (head)->cqh_first; \
(elm)->field.cqe_prev = (void *)(head); \
if ((head)->cqh_last == (void *)(head)) \
(head)->cqh_last = (elm); \
else \
(head)->cqh_first->field.cqe_prev = (elm); \
(head)->cqh_first = (elm); \
}

◆ H4_CIRCLEQ_INSERT_TAIL

#define H4_CIRCLEQ_INSERT_TAIL ( head,
elm,
field )
Value:
{ \
(elm)->field.cqe_next = (void *)(head); \
(elm)->field.cqe_prev = (head)->cqh_last; \
if ((head)->cqh_first == (void *)(head)) \
(head)->cqh_first = (elm); \
else \
(head)->cqh_last->field.cqe_next = (elm); \
(head)->cqh_last = (elm); \
}

◆ H4_CIRCLEQ_REMOVE

#define H4_CIRCLEQ_REMOVE ( head,
elm,
field )
Value:
{ \
if ((elm)->field.cqe_next == (void *)(head)) \
(head)->cqh_last = (elm)->field.cqe_prev; \
else \
(elm)->field.cqe_next->field.cqe_prev = (elm)->field.cqe_prev; \
if ((elm)->field.cqe_prev == (void *)(head)) \
(head)->cqh_first = (elm)->field.cqe_next; \
else \
(elm)->field.cqe_prev->field.cqe_next = (elm)->field.cqe_next; \
}