FD.io VPP  v19.04.4-rc0-5-ge88582fac
Vector Packet Processing
memcheck.h File Reference
+ Include dependency graph for memcheck.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define VALGRIND_MAKE_MEM_NOACCESS(_qzz_addr, _qzz_len)
 
#define VALGRIND_MAKE_MEM_UNDEFINED(_qzz_addr, _qzz_len)
 
#define VALGRIND_MAKE_MEM_DEFINED(_qzz_addr, _qzz_len)
 
#define VALGRIND_MAKE_MEM_DEFINED_IF_ADDRESSABLE(_qzz_addr, _qzz_len)
 
#define VALGRIND_CREATE_BLOCK(_qzz_addr, _qzz_len, _qzz_desc)
 
#define VALGRIND_DISCARD(_qzz_blkindex)
 
#define VALGRIND_CHECK_MEM_IS_ADDRESSABLE(_qzz_addr, _qzz_len)
 
#define VALGRIND_CHECK_MEM_IS_DEFINED(_qzz_addr, _qzz_len)
 
#define VALGRIND_CHECK_VALUE_IS_DEFINED(__lvalue)
 
#define VALGRIND_DO_LEAK_CHECK
 
#define VALGRIND_DO_QUICK_LEAK_CHECK
 
#define VALGRIND_COUNT_LEAKS(leaked, dubious, reachable, suppressed)
 
#define VALGRIND_COUNT_LEAK_BLOCKS(leaked, dubious, reachable, suppressed)
 
#define VALGRIND_GET_VBITS(zza, zzvbits, zznbytes)
 
#define VALGRIND_SET_VBITS(zza, zzvbits, zznbytes)
 

Enumerations

enum  Vg_MemCheckClientRequest {
  VG_USERREQ__MAKE_MEM_NOACCESS = VG_USERREQ_TOOL_BASE ('M', 'C'), VG_USERREQ__MAKE_MEM_UNDEFINED, VG_USERREQ__MAKE_MEM_DEFINED, VG_USERREQ__DISCARD,
  VG_USERREQ__CHECK_MEM_IS_ADDRESSABLE, VG_USERREQ__CHECK_MEM_IS_DEFINED, VG_USERREQ__DO_LEAK_CHECK, VG_USERREQ__COUNT_LEAKS,
  VG_USERREQ__GET_VBITS, VG_USERREQ__SET_VBITS, VG_USERREQ__CREATE_BLOCK, VG_USERREQ__MAKE_MEM_DEFINED_IF_ADDRESSABLE,
  VG_USERREQ__COUNT_LEAK_BLOCKS
}
 

Macro Definition Documentation

◆ VALGRIND_CHECK_MEM_IS_ADDRESSABLE

#define VALGRIND_CHECK_MEM_IS_ADDRESSABLE (   _qzz_addr,
  _qzz_len 
)
Value:
(__extension__({unsigned long _qzz_res; \
VALGRIND_DO_CLIENT_REQUEST(_qzz_res, 0, \
_qzz_addr, _qzz_len, 0, 0, 0); \
_qzz_res; \
}))

Definition at line 178 of file memcheck.h.

◆ VALGRIND_CHECK_MEM_IS_DEFINED

#define VALGRIND_CHECK_MEM_IS_DEFINED (   _qzz_addr,
  _qzz_len 
)
Value:
(__extension__({unsigned long _qzz_res; \
VALGRIND_DO_CLIENT_REQUEST(_qzz_res, 0, \
_qzz_addr, _qzz_len, 0, 0, 0); \
_qzz_res; \
}))

Definition at line 190 of file memcheck.h.

◆ VALGRIND_CHECK_VALUE_IS_DEFINED

#define VALGRIND_CHECK_VALUE_IS_DEFINED (   __lvalue)
Value:
(volatile unsigned char *)&(__lvalue), \
(unsigned long)(sizeof (__lvalue)))
#define VALGRIND_CHECK_MEM_IS_DEFINED(_qzz_addr, _qzz_len)
Definition: memcheck.h:190

Definition at line 203 of file memcheck.h.

◆ VALGRIND_COUNT_LEAK_BLOCKS

#define VALGRIND_COUNT_LEAK_BLOCKS (   leaked,
  dubious,
  reachable,
  suppressed 
)
Value:
/* For safety on 64-bit platforms we assign the results to private
unsigned long variables, then assign these to the lvalues the user
specified, which works no matter what type 'leaked', 'dubious', etc
are. We also initialise '_qzz_leaked', etc because
VG_USERREQ__COUNT_LEAKS doesn't mark the values returned as
defined. */ \
{unsigned long _qzz_res; \
unsigned long _qzz_leaked = 0, _qzz_dubious = 0; \
unsigned long _qzz_reachable = 0, _qzz_suppressed = 0; \
VALGRIND_DO_CLIENT_REQUEST(_qzz_res, 0, \
&_qzz_leaked, &_qzz_dubious, \
&_qzz_reachable, &_qzz_suppressed, 0); \
leaked = _qzz_leaked; \
dubious = _qzz_dubious; \
reachable = _qzz_reachable; \
suppressed = _qzz_suppressed; \
}

Definition at line 249 of file memcheck.h.

◆ VALGRIND_COUNT_LEAKS

#define VALGRIND_COUNT_LEAKS (   leaked,
  dubious,
  reachable,
  suppressed 
)
Value:
/* For safety on 64-bit platforms we assign the results to private
unsigned long variables, then assign these to the lvalues the user
specified, which works no matter what type 'leaked', 'dubious', etc
are. We also initialise '_qzz_leaked', etc because
VG_USERREQ__COUNT_LEAKS doesn't mark the values returned as
defined. */ \
{unsigned long _qzz_res; \
unsigned long _qzz_leaked = 0, _qzz_dubious = 0; \
unsigned long _qzz_reachable = 0, _qzz_suppressed = 0; \
VALGRIND_DO_CLIENT_REQUEST(_qzz_res, 0, \
&_qzz_leaked, &_qzz_dubious, \
&_qzz_reachable, &_qzz_suppressed, 0); \
leaked = _qzz_leaked; \
dubious = _qzz_dubious; \
reachable = _qzz_reachable; \
suppressed = _qzz_suppressed; \
}

Definition at line 227 of file memcheck.h.

◆ VALGRIND_CREATE_BLOCK

#define VALGRIND_CREATE_BLOCK (   _qzz_addr,
  _qzz_len,
  _qzz_desc 
)
Value:
(__extension__({unsigned long _qzz_res; \
VALGRIND_DO_CLIENT_REQUEST(_qzz_res, 0 /* default return */, \
_qzz_addr, _qzz_len, _qzz_desc, \
0, 0); \
_qzz_res; \
}))

Definition at line 152 of file memcheck.h.

◆ VALGRIND_DISCARD

#define VALGRIND_DISCARD (   _qzz_blkindex)
Value:
(__extension__ ({unsigned long _qzz_res; \
VALGRIND_DO_CLIENT_REQUEST(_qzz_res, 0 /* default return */, \
0, _qzz_blkindex, 0, 0, 0); \
_qzz_res; \
}))

Definition at line 163 of file memcheck.h.

◆ VALGRIND_DO_LEAK_CHECK

#define VALGRIND_DO_LEAK_CHECK
Value:
{unsigned long _qzz_res; \
VALGRIND_DO_CLIENT_REQUEST(_qzz_res, 0, \
0, 0, 0, 0, 0); \
}

Definition at line 210 of file memcheck.h.

◆ VALGRIND_DO_QUICK_LEAK_CHECK

#define VALGRIND_DO_QUICK_LEAK_CHECK
Value:
{unsigned long _qzz_res; \
VALGRIND_DO_CLIENT_REQUEST(_qzz_res, 0, \
1, 0, 0, 0, 0); \
}

Definition at line 218 of file memcheck.h.

◆ VALGRIND_GET_VBITS

#define VALGRIND_GET_VBITS (   zza,
  zzvbits,
  zznbytes 
)
Value:
(__extension__({unsigned long _qzz_res; \
char* czza = (char*)zza; \
char* czzvbits = (char*)zzvbits; \
VALGRIND_DO_CLIENT_REQUEST(_qzz_res, 0, \
czza, czzvbits, zznbytes, 0, 0 ); \
_qzz_res; \
}))

Definition at line 279 of file memcheck.h.

◆ VALGRIND_MAKE_MEM_DEFINED

#define VALGRIND_MAKE_MEM_DEFINED (   _qzz_addr,
  _qzz_len 
)
Value:
(__extension__({unsigned long _qzz_res; \
VALGRIND_DO_CLIENT_REQUEST(_qzz_res, 0 /* default return */, \
_qzz_addr, _qzz_len, 0, 0, 0); \
_qzz_res; \
}))

Definition at line 129 of file memcheck.h.

◆ VALGRIND_MAKE_MEM_DEFINED_IF_ADDRESSABLE

#define VALGRIND_MAKE_MEM_DEFINED_IF_ADDRESSABLE (   _qzz_addr,
  _qzz_len 
)
Value:
(__extension__({unsigned long _qzz_res; \
VALGRIND_DO_CLIENT_REQUEST(_qzz_res, 0 /* default return */, \
_qzz_addr, _qzz_len, 0, 0, 0); \
_qzz_res; \
}))

Definition at line 140 of file memcheck.h.

◆ VALGRIND_MAKE_MEM_NOACCESS

#define VALGRIND_MAKE_MEM_NOACCESS (   _qzz_addr,
  _qzz_len 
)
Value:
(__extension__({unsigned long _qzz_res; \
VALGRIND_DO_CLIENT_REQUEST(_qzz_res, 0 /* default return */, \
_qzz_addr, _qzz_len, 0, 0, 0); \
_qzz_res; \
}))

Definition at line 109 of file memcheck.h.

◆ VALGRIND_MAKE_MEM_UNDEFINED

#define VALGRIND_MAKE_MEM_UNDEFINED (   _qzz_addr,
  _qzz_len 
)
Value:
(__extension__({unsigned long _qzz_res; \
VALGRIND_DO_CLIENT_REQUEST(_qzz_res, 0 /* default return */, \
_qzz_addr, _qzz_len, 0, 0, 0); \
_qzz_res; \
}))

Definition at line 119 of file memcheck.h.

◆ VALGRIND_SET_VBITS

#define VALGRIND_SET_VBITS (   zza,
  zzvbits,
  zznbytes 
)
Value:
(__extension__({unsigned int _qzz_res; \
char* czza = (char*)zza; \
char* czzvbits = (char*)zzvbits; \
VALGRIND_DO_CLIENT_REQUEST(_qzz_res, 0, \
czza, czzvbits, zznbytes, 0, 0 ); \
_qzz_res; \
}))

Definition at line 298 of file memcheck.h.

Enumeration Type Documentation

◆ Vg_MemCheckClientRequest

Enumerator
VG_USERREQ__MAKE_MEM_NOACCESS 
VG_USERREQ__MAKE_MEM_UNDEFINED 
VG_USERREQ__MAKE_MEM_DEFINED 
VG_USERREQ__DISCARD 
VG_USERREQ__CHECK_MEM_IS_ADDRESSABLE 
VG_USERREQ__CHECK_MEM_IS_DEFINED 
VG_USERREQ__DO_LEAK_CHECK 
VG_USERREQ__COUNT_LEAKS 
VG_USERREQ__GET_VBITS 
VG_USERREQ__SET_VBITS 
VG_USERREQ__CREATE_BLOCK 
VG_USERREQ__MAKE_MEM_DEFINED_IF_ADDRESSABLE 
VG_USERREQ__COUNT_LEAK_BLOCKS 

Definition at line 78 of file memcheck.h.