112#define VALGRIND_MAKE_MEM_NOACCESS(_qzz_addr,_qzz_len) \
113 (__extension__({unsigned long _qzz_res; \
114 VALGRIND_DO_CLIENT_REQUEST(_qzz_res, 0 , \
115 VG_USERREQ__MAKE_MEM_NOACCESS, \
116 _qzz_addr, _qzz_len, 0, 0, 0); \
122#define VALGRIND_MAKE_MEM_UNDEFINED(_qzz_addr,_qzz_len) \
123 (__extension__({unsigned long _qzz_res; \
124 VALGRIND_DO_CLIENT_REQUEST(_qzz_res, 0 , \
125 VG_USERREQ__MAKE_MEM_UNDEFINED, \
126 _qzz_addr, _qzz_len, 0, 0, 0); \
132#define VALGRIND_MAKE_MEM_DEFINED(_qzz_addr,_qzz_len) \
133 (__extension__({unsigned long _qzz_res; \
134 VALGRIND_DO_CLIENT_REQUEST(_qzz_res, 0 , \
135 VG_USERREQ__MAKE_MEM_DEFINED, \
136 _qzz_addr, _qzz_len, 0, 0, 0); \
143#define VALGRIND_MAKE_MEM_DEFINED_IF_ADDRESSABLE(_qzz_addr,_qzz_len) \
144 (__extension__({unsigned long _qzz_res; \
145 VALGRIND_DO_CLIENT_REQUEST(_qzz_res, 0 , \
146 VG_USERREQ__MAKE_MEM_DEFINED_IF_ADDRESSABLE, \
147 _qzz_addr, _qzz_len, 0, 0, 0); \
155#define VALGRIND_CREATE_BLOCK(_qzz_addr,_qzz_len, _qzz_desc) \
156 (__extension__({unsigned long _qzz_res; \
157 VALGRIND_DO_CLIENT_REQUEST(_qzz_res, 0 , \
158 VG_USERREQ__CREATE_BLOCK, \
159 _qzz_addr, _qzz_len, _qzz_desc, \
166#define VALGRIND_DISCARD(_qzz_blkindex) \
167 (__extension__ ({unsigned long _qzz_res; \
168 VALGRIND_DO_CLIENT_REQUEST(_qzz_res, 0 , \
169 VG_USERREQ__DISCARD, \
170 0, _qzz_blkindex, 0, 0, 0); \
181#define VALGRIND_CHECK_MEM_IS_ADDRESSABLE(_qzz_addr,_qzz_len) \
182 (__extension__({unsigned long _qzz_res; \
183 VALGRIND_DO_CLIENT_REQUEST(_qzz_res, 0, \
184 VG_USERREQ__CHECK_MEM_IS_ADDRESSABLE,\
185 _qzz_addr, _qzz_len, 0, 0, 0); \
193#define VALGRIND_CHECK_MEM_IS_DEFINED(_qzz_addr,_qzz_len) \
194 (__extension__({unsigned long _qzz_res; \
195 VALGRIND_DO_CLIENT_REQUEST(_qzz_res, 0, \
196 VG_USERREQ__CHECK_MEM_IS_DEFINED, \
197 _qzz_addr, _qzz_len, 0, 0, 0); \
206#define VALGRIND_CHECK_VALUE_IS_DEFINED(__lvalue) \
207 VALGRIND_CHECK_MEM_IS_DEFINED( \
208 (volatile unsigned char *)&(__lvalue), \
209 (unsigned long)(sizeof (__lvalue)))
213#define VALGRIND_DO_LEAK_CHECK \
214 {unsigned long _qzz_res; \
215 VALGRIND_DO_CLIENT_REQUEST(_qzz_res, 0, \
216 VG_USERREQ__DO_LEAK_CHECK, \
221#define VALGRIND_DO_QUICK_LEAK_CHECK \
222 {unsigned long _qzz_res; \
223 VALGRIND_DO_CLIENT_REQUEST(_qzz_res, 0, \
224 VG_USERREQ__DO_LEAK_CHECK, \
230#define VALGRIND_COUNT_LEAKS(leaked, dubious, reachable, suppressed) \
237 {unsigned long _qzz_res; \
238 unsigned long _qzz_leaked = 0, _qzz_dubious = 0; \
239 unsigned long _qzz_reachable = 0, _qzz_suppressed = 0; \
240 VALGRIND_DO_CLIENT_REQUEST(_qzz_res, 0, \
241 VG_USERREQ__COUNT_LEAKS, \
242 &_qzz_leaked, &_qzz_dubious, \
243 &_qzz_reachable, &_qzz_suppressed, 0); \
244 leaked = _qzz_leaked; \
245 dubious = _qzz_dubious; \
246 reachable = _qzz_reachable; \
247 suppressed = _qzz_suppressed; \
252#define VALGRIND_COUNT_LEAK_BLOCKS(leaked, dubious, reachable, suppressed) \
259 {unsigned long _qzz_res; \
260 unsigned long _qzz_leaked = 0, _qzz_dubious = 0; \
261 unsigned long _qzz_reachable = 0, _qzz_suppressed = 0; \
262 VALGRIND_DO_CLIENT_REQUEST(_qzz_res, 0, \
263 VG_USERREQ__COUNT_LEAK_BLOCKS, \
264 &_qzz_leaked, &_qzz_dubious, \
265 &_qzz_reachable, &_qzz_suppressed, 0); \
266 leaked = _qzz_leaked; \
267 dubious = _qzz_dubious; \
268 reachable = _qzz_reachable; \
269 suppressed = _qzz_suppressed; \
282#define VALGRIND_GET_VBITS(zza,zzvbits,zznbytes) \
283 (__extension__({unsigned long _qzz_res; \
284 char* czza = (char*)zza; \
285 char* czzvbits = (char*)zzvbits; \
286 VALGRIND_DO_CLIENT_REQUEST(_qzz_res, 0, \
287 VG_USERREQ__GET_VBITS, \
288 czza, czzvbits, zznbytes, 0, 0 ); \
301#define VALGRIND_SET_VBITS(zza,zzvbits,zznbytes) \
302 (__extension__({unsigned int _qzz_res; \
303 char* czza = (char*)zza; \
304 char* czzvbits = (char*)zzvbits; \
305 VALGRIND_DO_CLIENT_REQUEST(_qzz_res, 0, \
306 VG_USERREQ__SET_VBITS, \
307 czza, czzvbits, zznbytes, 0, 0 ); \
#define FILE_LICENCE(_licence)
Declare a particular licence as applying to a file.
#define FILE_SECBOOT(_status)
Declare a file's UEFI Secure Boot permission status.
@ VG_USERREQ__COUNT_LEAK_BLOCKS
@ VG_USERREQ__MAKE_MEM_UNDEFINED
@ VG_USERREQ__MAKE_MEM_NOACCESS
@ VG_USERREQ__CHECK_MEM_IS_DEFINED
@ VG_USERREQ__DO_LEAK_CHECK
@ VG_USERREQ__CREATE_BLOCK
@ VG_USERREQ__COUNT_LEAKS
@ _VG_USERREQ__MEMCHECK_RECORD_OVERLAP_ERROR
@ VG_USERREQ__CHECK_MEM_IS_ADDRESSABLE
@ VG_USERREQ__MAKE_MEM_DEFINED_IF_ADDRESSABLE
@ VG_USERREQ__MAKE_MEM_DEFINED
#define VG_USERREQ_TOOL_BASE(a, b)