iPXE
Macros | Enumerations | Functions
memcheck.h File Reference
#include "valgrind.h"

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, _VG_USERREQ__MEMCHECK_RECORD_OVERLAP_ERROR = VG_USERREQ_TOOL_BASE('M','C') + 256
}
 

Functions

 FILE_LICENCE (BSD3)
 
 FILE_SECBOOT (PERMITTED)
 

Macro Definition Documentation

◆ 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; \
}))
#define __extension__
Definition: valgrind.h:4169

Definition at line 112 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; \
}))
#define __extension__
Definition: valgrind.h:4169

Definition at line 122 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; \
}))
#define __extension__
Definition: valgrind.h:4169

Definition at line 132 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; \
}))
#define __extension__
Definition: valgrind.h:4169

Definition at line 143 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; \
}))
#define __extension__
Definition: valgrind.h:4169

Definition at line 155 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; \
}))
#define __extension__
Definition: valgrind.h:4169

Definition at line 166 of file memcheck.h.

◆ 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; \
}))
#define __extension__
Definition: valgrind.h:4169

Definition at line 181 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; \
}))
#define __extension__
Definition: valgrind.h:4169

Definition at line 193 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:193

Definition at line 206 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 213 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 221 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 230 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 252 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; \
}))
#define __extension__
Definition: valgrind.h:4169

Definition at line 282 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; \
}))
#define __extension__
Definition: valgrind.h:4169

Definition at line 301 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 
_VG_USERREQ__MEMCHECK_RECORD_OVERLAP_ERROR 

Definition at line 81 of file memcheck.h.

82  {
91 
94 
96 
98 
99  /* Not next to VG_USERREQ__COUNT_LEAKS because it was added later. */
101 
102  /* This is just for memcheck's internal use - don't use it */
104  = VG_USERREQ_TOOL_BASE('M','C') + 256
Vg_MemCheckClientRequest
Definition: memcheck.h:81
#define VG_USERREQ_TOOL_BASE(a, b)
Definition: valgrind.h:4104

Function Documentation

◆ FILE_LICENCE()

FILE_LICENCE ( BSD3  )

◆ FILE_SECBOOT()

FILE_SECBOOT ( PERMITTED  )