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
Macros
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 */ \
}
type
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 */ \
}
name
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); \
}
field
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; \
}