Bitdefender Hypervisor Memory Introspection
hlist.h File Reference
#include "introdefs.h"

Go to the source code of this file.

Data Structures

struct  _HLIST_ENTRY
 
struct  _HLIST_HEAD
 

Macros

#define HLIST_HEAD_INIT   { .First = NULL }
 
#define hlist_for_each(_head, _struct_type, _var)   _hlist_for_each(_head, _struct_type, Link, _var)
 
#define hlist_for_each_var(_head, _struct_type, _var)   _hlist_for_each_var(_head, _struct_type, Link, _var)
 
#define hlist_for_each_link(_head, _struct_type, _member, _var)   _hlist_for_each(_head, _struct_type, _member, _var)
 
#define hlist_for_each_link_var(_head, _struct_type, _member, _var)   _hlist_for_each_var(_head, _struct_type, _member, _var)
 
#define hlist_for_each_safe(_head, _struct_type, _var)   _hlist_for_each_safe(_head, _struct_type, Link, _var)
 
#define hlist_for_each_link_safe(_head, _struct_type, _member, _var)   _hlist_for_each_safe(_head, _struct_type, _member, _var)
 
#define _next_h(_var, _member)   _var->_member.Next
 
#define _next_hentry(_var, _member, _type)   _var ? CONTAINING_RECORD(_next_h(_var, _member), _type, _member) : _var
 
#define _hlist_for_each(_head, _type, _member, _var)
 
#define _hlist_for_each_var(_head, _type, _member, _var)
 
#define _hlist_for_each_safe(_head, _type, _member, _var)
 

Typedefs

typedef struct _HLIST_ENTRY HLIST_ENTRY
 
typedef struct _HLIST_HEAD HLIST_HEAD
 

Functions

static void HlistInitalizeHead (HLIST_HEAD *Head)
 
static BOOLEAN HListIsEmpty (const HLIST_HEAD *Head)
 
static void HListRemoveEntry (HLIST_ENTRY *Entry)
 
static void HListInsert (HLIST_HEAD *Head, HLIST_ENTRY *Entry)
 

Macro Definition Documentation

◆ _hlist_for_each

#define _hlist_for_each (   _head,
  _type,
  _member,
  _var 
)
Value:
for (_type *_var = CONTAINING_RECORD((_head).First, _type, _member); \
_var; \
_var = _next_hentry(_var, _member, _type))
#define CONTAINING_RECORD(List, Type, Member)
Definition: introlists.h:36
#define _next_hentry(_var, _member, _type)
Definition: hlist.h:95

Definition at line 97 of file hlist.h.

◆ _hlist_for_each_safe

#define _hlist_for_each_safe (   _head,
  _type,
  _member,
  _var 
)
Value:
for (_type *_var = CONTAINING_RECORD((_head).First, _type, _member), *_n = _next_hentry(_var, _member, _type); \
_var; \
_var = _n, _n = _next_hentry(_var, _member, _type))
#define CONTAINING_RECORD(List, Type, Member)
Definition: introlists.h:36
#define _next_hentry(_var, _member, _type)
Definition: hlist.h:95

Definition at line 108 of file hlist.h.

◆ _hlist_for_each_var

#define _hlist_for_each_var (   _head,
  _type,
  _member,
  _var 
)
Value:
for (_var = CONTAINING_RECORD((_head).First, _type, _member); \
_var; \
_var = _next_hentry(_var, _member, _type))
#define CONTAINING_RECORD(List, Type, Member)
Definition: introlists.h:36
#define _next_hentry(_var, _member, _type)
Definition: hlist.h:95

Definition at line 102 of file hlist.h.

◆ _next_h

#define _next_h (   _var,
  _member 
)    _var->_member.Next

Definition at line 94 of file hlist.h.

◆ _next_hentry

#define _next_hentry (   _var,
  _member,
  _type 
)    _var ? CONTAINING_RECORD(_next_h(_var, _member), _type, _member) : _var

Definition at line 95 of file hlist.h.

◆ hlist_for_each

#define hlist_for_each (   _head,
  _struct_type,
  _var 
)    _hlist_for_each(_head, _struct_type, Link, _var)

Definition at line 80 of file hlist.h.

◆ hlist_for_each_link

#define hlist_for_each_link (   _head,
  _struct_type,
  _member,
  _var 
)    _hlist_for_each(_head, _struct_type, _member, _var)

Definition at line 83 of file hlist.h.

◆ hlist_for_each_link_safe

#define hlist_for_each_link_safe (   _head,
  _struct_type,
  _member,
  _var 
)    _hlist_for_each_safe(_head, _struct_type, _member, _var)

Definition at line 88 of file hlist.h.

◆ hlist_for_each_link_var

#define hlist_for_each_link_var (   _head,
  _struct_type,
  _member,
  _var 
)    _hlist_for_each_var(_head, _struct_type, _member, _var)

Definition at line 84 of file hlist.h.

◆ hlist_for_each_safe

#define hlist_for_each_safe (   _head,
  _struct_type,
  _var 
)    _hlist_for_each_safe(_head, _struct_type, Link, _var)

Definition at line 87 of file hlist.h.

◆ hlist_for_each_var

#define hlist_for_each_var (   _head,
  _struct_type,
  _var 
)    _hlist_for_each_var(_head, _struct_type, Link, _var)

Definition at line 81 of file hlist.h.

◆ HLIST_HEAD_INIT

#define HLIST_HEAD_INIT   { .First = NULL }

Definition at line 78 of file hlist.h.

Typedef Documentation

◆ HLIST_ENTRY

typedef struct _HLIST_ENTRY HLIST_ENTRY

◆ HLIST_HEAD

typedef struct _HLIST_HEAD HLIST_HEAD

Function Documentation

◆ HlistInitalizeHead()

static void HlistInitalizeHead ( HLIST_HEAD Head)
inlinestatic

Definition at line 29 of file hlist.h.

◆ HListInsert()

static void HListInsert ( HLIST_HEAD Head,
HLIST_ENTRY Entry 
)
inlinestatic

Definition at line 57 of file hlist.h.

◆ HListIsEmpty()

static BOOLEAN HListIsEmpty ( const HLIST_HEAD Head)
inlinestatic

Definition at line 36 of file hlist.h.

◆ HListRemoveEntry()

static void HListRemoveEntry ( HLIST_ENTRY Entry)
inlinestatic

Definition at line 43 of file hlist.h.