FreeBSD kernel pms device code
tdlist.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  tdList_s
 

Macros

#define TDLIST_NEXT_ENTRY(ptr, type, member)    container_of((ptr)->flink, type, member)
 
#define TDLIST_INIT_HDR(hdr)
 
#define TDLIST_INIT_ELEMENT(hdr)
 
#define TDLIST_ENQUEUE_AT_HEAD(toAddHdr, listHdr)
 
#define TDLIST_ENQUEUE_AT_TAIL(toAddHdr, listHdr)
 
#define TDLIST_EMPTY(listHdr)    (((tdList_t *)(listHdr))->flink == ((tdList_t *)(listHdr)))
 
#define TDLIST_NOT_EMPTY(listHdr)    (!TDLIST_EMPTY(listHdr))
 
#define TDLIST_DEQUEUE_THIS(hdr)
 
#define TDLIST_DEQUEUE_FROM_HEAD_FAST(atHeadHdr, listHdr)
 
#define TDLIST_DEQUEUE_FROM_HEAD(atHeadHdr, listHdr)
 
#define TDLIST_DEQUEUE_FROM_TAIL_FAST(atTailHdr, listHdr)
 
#define TDLIST_DEQUEUE_FROM_TAIL(atTailHdr, listHdr)
 
#define TDLIST_ENQUEUE_LIST_AT_TAIL_FAST(toAddListHdr, listHdr)
 
#define TDLIST_ENQUEUE_LIST_AT_TAIL(toAddListHdr, listHdr)
 
#define TDLIST_ENQUEUE_LIST_AT_HEAD_FAST(toAddListHdr, listHdr)
 
#define TDLIST_ENQUEUE_LIST_AT_HEAD(toAddListHdr, listHdr)
 
#define TD_FIELD_OFFSET(baseType, fieldName)    ((bit32)((bitptr)(&(((baseType *)0)->fieldName))))
 
#define TDLIST_OBJECT_BASE(baseType, fieldName, fieldPtr)
 

Typedefs

typedef struct tdList_s tdList_t
 

Detailed Description

The file defines list data structures for SAS/SATA TD layer

Definition in file tdlist.h.

Macro Definition Documentation

◆ TD_FIELD_OFFSET

#define TD_FIELD_OFFSET (   baseType,
  fieldName 
)     ((bit32)((bitptr)(&(((baseType *)0)->fieldName))))

Definition at line 158 of file tdlist.h.

◆ TDLIST_DEQUEUE_FROM_HEAD

#define TDLIST_DEQUEUE_FROM_HEAD (   atHeadHdr,
  listHdr 
)
Value:
do { \
if (TDLIST_NOT_EMPTY((listHdr))) \
{ \
TDLIST_DEQUEUE_FROM_HEAD_FAST(atHeadHdr,listHdr); \
} \
else \
{ \
(*((tdList_t **)(atHeadHdr))) = (tdList_t *)agNULL; \
} \
} while (0)
#define agNULL
Definition: ostypes.h:151
#define TDLIST_NOT_EMPTY(listHdr)
Definition: tdlist.h:76

Definition at line 93 of file tdlist.h.

◆ TDLIST_DEQUEUE_FROM_HEAD_FAST

#define TDLIST_DEQUEUE_FROM_HEAD_FAST (   atHeadHdr,
  listHdr 
)
Value:
do { \
*((tdList_t **)(atHeadHdr)) = ((tdList_t *)(listHdr))->flink; \
(*((tdList_t **)(atHeadHdr)))->flink->blink = (tdList_t *)(listHdr); \
((tdList_t *)(listHdr))->flink = (*(tdList_t **)(atHeadHdr))->flink; \
} while (0)

Definition at line 86 of file tdlist.h.

◆ TDLIST_DEQUEUE_FROM_TAIL

#define TDLIST_DEQUEUE_FROM_TAIL (   atTailHdr,
  listHdr 
)
Value:
do { \
if (TDLIST_NOT_EMPTY((listHdr))) \
{ \
TDLIST_DEQUEUE_FROM_TAIL_FAST(atTailHdr,listHdr); \
} \
else \
{ \
(*((tdList_t **)(atTailHdr))) = (tdList_t *)agNULL; \
} \
} while (0)

Definition at line 112 of file tdlist.h.

◆ TDLIST_DEQUEUE_FROM_TAIL_FAST

#define TDLIST_DEQUEUE_FROM_TAIL_FAST (   atTailHdr,
  listHdr 
)
Value:
do { \
(*((tdList_t **)(atTailHdr))) = ((tdList_t *)(listHdr))->blink; \
(*((tdList_t **)(atTailHdr)))->blink->flink = (tdList_t *)(listHdr); \
((tdList_t *)(listHdr))->blink = (*((tdList_t **)(atTailHdr)))->blink; \
} while (0)

Definition at line 105 of file tdlist.h.

◆ TDLIST_DEQUEUE_THIS

#define TDLIST_DEQUEUE_THIS (   hdr)
Value:
do { \
((tdList_t *)(hdr))->blink->flink = ((tdList_t *)(hdr))->flink; \
((tdList_t *)(hdr))->flink->blink = ((tdList_t *)(hdr))->blink; \
((tdList_t *)(hdr))->flink = ((tdList_t *)(hdr))->blink = agNULL; \
} while (0)
tiIOCTLPayloadHeader_t hdr
Definition: encrypt_ioctl.h:0

Definition at line 79 of file tdlist.h.

◆ TDLIST_EMPTY

#define TDLIST_EMPTY (   listHdr)     (((tdList_t *)(listHdr))->flink == ((tdList_t *)(listHdr)))

Definition at line 73 of file tdlist.h.

◆ TDLIST_ENQUEUE_AT_HEAD

#define TDLIST_ENQUEUE_AT_HEAD (   toAddHdr,
  listHdr 
)
Value:
do { \
((tdList_t *)(toAddHdr))->flink = ((tdList_t *)(listHdr))->flink; \
((tdList_t *)(toAddHdr))->blink = (tdList_t *)(listHdr) ; \
((tdList_t *)(listHdr))->flink->blink = (tdList_t *)(toAddHdr); \
((tdList_t *)(listHdr))->flink = (tdList_t *)(toAddHdr); \
} while (0)

Definition at line 57 of file tdlist.h.

◆ TDLIST_ENQUEUE_AT_TAIL

#define TDLIST_ENQUEUE_AT_TAIL (   toAddHdr,
  listHdr 
)
Value:
do { \
((tdList_t *)(toAddHdr))->flink = (tdList_t *)(listHdr); \
((tdList_t *)(toAddHdr))->blink = ((tdList_t *)(listHdr))->blink; \
((tdList_t *)(listHdr))->blink->flink = (tdList_t *)(toAddHdr); \
((tdList_t *)(listHdr))->blink = (tdList_t *)(toAddHdr); \
} while (0)

Definition at line 65 of file tdlist.h.

◆ TDLIST_ENQUEUE_LIST_AT_HEAD

#define TDLIST_ENQUEUE_LIST_AT_HEAD (   toAddListHdr,
  listHdr 
)
Value:
do { \
if (TDLIST_NOT_EMPTY(toAddListHdr)) \
{ \
TDLIST_ENQUEUE_LIST_AT_HEAD_FAST(toAddListHdr, listHdr); \
} \
} while (0)

Definition at line 150 of file tdlist.h.

◆ TDLIST_ENQUEUE_LIST_AT_HEAD_FAST

#define TDLIST_ENQUEUE_LIST_AT_HEAD_FAST (   toAddListHdr,
  listHdr 
)
Value:
do { \
((tdList_t *)toAddListHdr)->blink->flink = ((tdList_t *)listHdr)->flink; \
((tdList_t *)toAddListHdr)->flink->blink = ((tdList_t *)listHdr); \
((tdList_t *)listHdr)->flink->blink = ((tdList_t *)toAddListHdr)->blink; \
((tdList_t *)listHdr)->flink = ((tdList_t *)toAddListHdr)->flink; \
TDLIST_INIT_HDR(toAddListHdr); \
} while (0)

Definition at line 141 of file tdlist.h.

◆ TDLIST_ENQUEUE_LIST_AT_TAIL

#define TDLIST_ENQUEUE_LIST_AT_TAIL (   toAddListHdr,
  listHdr 
)
Value:
do { \
if (TDLIST_NOT_EMPTY(toAddListHdr)) \
{ \
TDLIST_ENQUEUE_LIST_AT_TAIL_FAST(toAddListHdr, listHdr); \
} \
} while (0)

Definition at line 133 of file tdlist.h.

◆ TDLIST_ENQUEUE_LIST_AT_TAIL_FAST

#define TDLIST_ENQUEUE_LIST_AT_TAIL_FAST (   toAddListHdr,
  listHdr 
)
Value:
do { \
((tdList_t *)toAddListHdr)->blink->flink = ((tdList_t *)listHdr); \
((tdList_t *)toAddListHdr)->flink->blink = ((tdList_t *)listHdr)->blink; \
((tdList_t *)listHdr)->blink->flink = ((tdList_t *)toAddListHdr)->flink; \
((tdList_t *)listHdr)->blink = ((tdList_t *)toAddListHdr)->blink; \
TDLIST_INIT_HDR(toAddListHdr); \
} while (0)

Definition at line 124 of file tdlist.h.

◆ TDLIST_INIT_ELEMENT

#define TDLIST_INIT_ELEMENT (   hdr)
Value:
do { \
((tdList_t *)(hdr))->flink = (tdList_t *)agNULL; \
((tdList_t *)(hdr))->blink = (tdList_t *)agNULL; \
} while (0)

Definition at line 51 of file tdlist.h.

◆ TDLIST_INIT_HDR

#define TDLIST_INIT_HDR (   hdr)
Value:
do { \
((tdList_t *)(hdr))->flink = (tdList_t *)(hdr); \
((tdList_t *)(hdr))->blink = (tdList_t *)(hdr); \
} while (0)

Definition at line 45 of file tdlist.h.

◆ TDLIST_NEXT_ENTRY

#define TDLIST_NEXT_ENTRY (   ptr,
  type,
  member 
)     container_of((ptr)->flink, type, member)

Definition at line 42 of file tdlist.h.

◆ TDLIST_NOT_EMPTY

#define TDLIST_NOT_EMPTY (   listHdr)     (!TDLIST_EMPTY(listHdr))

Definition at line 76 of file tdlist.h.

◆ TDLIST_OBJECT_BASE

#define TDLIST_OBJECT_BASE (   baseType,
  fieldName,
  fieldPtr 
)
Value:
(void *)fieldPtr == (void *)0 ? (baseType *)0 : \
((baseType *)((bit8 *)(fieldPtr) - ((bitptr)(&(((baseType *)0)->fieldName)))))
unsigned long bitptr
Definition: ostypes.h:112
unsigned char bit8
Definition: ostypes.h:97

Definition at line 161 of file tdlist.h.

Typedef Documentation

◆ tdList_t

typedef struct tdList_s tdList_t

Definition at line 35 of file tdlist.h.