| Index: base/third_party/valgrind/memcheck.h
|
| diff --git a/base/third_party/valgrind/memcheck.h b/base/third_party/valgrind/memcheck.h
|
| deleted file mode 100644
|
| index f59c21223a8a5ed0be2eab968e3fb50963c06073..0000000000000000000000000000000000000000
|
| --- a/base/third_party/valgrind/memcheck.h
|
| +++ /dev/null
|
| @@ -1,279 +0,0 @@
|
| -
|
| -/*
|
| - ----------------------------------------------------------------
|
| -
|
| - Notice that the following BSD-style license applies to this one
|
| - file (memcheck.h) only. The rest of Valgrind is licensed under the
|
| - terms of the GNU General Public License, version 2, unless
|
| - otherwise indicated. See the COPYING file in the source
|
| - distribution for details.
|
| -
|
| - ----------------------------------------------------------------
|
| -
|
| - This file is part of MemCheck, a heavyweight Valgrind tool for
|
| - detecting memory errors.
|
| -
|
| - Copyright (C) 2000-2010 Julian Seward. All rights reserved.
|
| -
|
| - Redistribution and use in source and binary forms, with or without
|
| - modification, are permitted provided that the following conditions
|
| - are met:
|
| -
|
| - 1. Redistributions of source code must retain the above copyright
|
| - notice, this list of conditions and the following disclaimer.
|
| -
|
| - 2. The origin of this software must not be misrepresented; you must
|
| - not claim that you wrote the original software. If you use this
|
| - software in a product, an acknowledgment in the product
|
| - documentation would be appreciated but is not required.
|
| -
|
| - 3. Altered source versions must be plainly marked as such, and must
|
| - not be misrepresented as being the original software.
|
| -
|
| - 4. The name of the author may not be used to endorse or promote
|
| - products derived from this software without specific prior written
|
| - permission.
|
| -
|
| - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
|
| - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
| - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
| - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
|
| - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
| - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
|
| - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
| - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
| - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
| - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
| - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
| -
|
| - ----------------------------------------------------------------
|
| -
|
| - Notice that the above BSD-style license applies to this one file
|
| - (memcheck.h) only. The entire rest of Valgrind is licensed under
|
| - the terms of the GNU General Public License, version 2. See the
|
| - COPYING file in the source distribution for details.
|
| -
|
| - ----------------------------------------------------------------
|
| -*/
|
| -
|
| -
|
| -#ifndef __MEMCHECK_H
|
| -#define __MEMCHECK_H
|
| -
|
| -
|
| -/* This file is for inclusion into client (your!) code.
|
| -
|
| - You can use these macros to manipulate and query memory permissions
|
| - inside your own programs.
|
| -
|
| - See comment near the top of valgrind.h on how to use them.
|
| -*/
|
| -
|
| -#include "valgrind.h"
|
| -
|
| -/* !! ABIWARNING !! ABIWARNING !! ABIWARNING !! ABIWARNING !!
|
| - This enum comprises an ABI exported by Valgrind to programs
|
| - which use client requests. DO NOT CHANGE THE ORDER OF THESE
|
| - ENTRIES, NOR DELETE ANY -- add new ones at the end. */
|
| -typedef
|
| - enum {
|
| - 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,
|
| -
|
| - /* Not next to VG_USERREQ__COUNT_LEAKS because it was added later. */
|
| - VG_USERREQ__COUNT_LEAK_BLOCKS,
|
| -
|
| - /* This is just for memcheck's internal use - don't use it */
|
| - _VG_USERREQ__MEMCHECK_RECORD_OVERLAP_ERROR
|
| - = VG_USERREQ_TOOL_BASE('M','C') + 256
|
| - } Vg_MemCheckClientRequest;
|
| -
|
| -
|
| -
|
| -/* Client-code macros to manipulate the state of memory. */
|
| -
|
| -/* Mark memory at _qzz_addr as unaddressable for _qzz_len bytes. */
|
| -#define VALGRIND_MAKE_MEM_NOACCESS(_qzz_addr,_qzz_len) \
|
| - VALGRIND_DO_CLIENT_REQUEST_EXPR(0 /* default return */, \
|
| - VG_USERREQ__MAKE_MEM_NOACCESS, \
|
| - (_qzz_addr), (_qzz_len), 0, 0, 0)
|
| -
|
| -/* Similarly, mark memory at _qzz_addr as addressable but undefined
|
| - for _qzz_len bytes. */
|
| -#define VALGRIND_MAKE_MEM_UNDEFINED(_qzz_addr,_qzz_len) \
|
| - VALGRIND_DO_CLIENT_REQUEST_EXPR(0 /* default return */, \
|
| - VG_USERREQ__MAKE_MEM_UNDEFINED, \
|
| - (_qzz_addr), (_qzz_len), 0, 0, 0)
|
| -
|
| -/* Similarly, mark memory at _qzz_addr as addressable and defined
|
| - for _qzz_len bytes. */
|
| -#define VALGRIND_MAKE_MEM_DEFINED(_qzz_addr,_qzz_len) \
|
| - VALGRIND_DO_CLIENT_REQUEST_EXPR(0 /* default return */, \
|
| - VG_USERREQ__MAKE_MEM_DEFINED, \
|
| - (_qzz_addr), (_qzz_len), 0, 0, 0)
|
| -
|
| -/* Similar to VALGRIND_MAKE_MEM_DEFINED except that addressability is
|
| - not altered: bytes which are addressable are marked as defined,
|
| - but those which are not addressable are left unchanged. */
|
| -#define VALGRIND_MAKE_MEM_DEFINED_IF_ADDRESSABLE(_qzz_addr,_qzz_len) \
|
| - VALGRIND_DO_CLIENT_REQUEST_EXPR(0 /* default return */, \
|
| - VG_USERREQ__MAKE_MEM_DEFINED_IF_ADDRESSABLE, \
|
| - (_qzz_addr), (_qzz_len), 0, 0, 0)
|
| -
|
| -/* Create a block-description handle. The description is an ascii
|
| - string which is included in any messages pertaining to addresses
|
| - within the specified memory range. Has no other effect on the
|
| - properties of the memory range. */
|
| -#define VALGRIND_CREATE_BLOCK(_qzz_addr,_qzz_len, _qzz_desc) \
|
| - VALGRIND_DO_CLIENT_REQUEST_EXPR(0 /* default return */, \
|
| - VG_USERREQ__CREATE_BLOCK, \
|
| - (_qzz_addr), (_qzz_len), (_qzz_desc), \
|
| - 0, 0)
|
| -
|
| -/* Discard a block-description-handle. Returns 1 for an
|
| - invalid handle, 0 for a valid handle. */
|
| -#define VALGRIND_DISCARD(_qzz_blkindex) \
|
| - VALGRIND_DO_CLIENT_REQUEST_EXPR(0 /* default return */, \
|
| - VG_USERREQ__DISCARD, \
|
| - 0, (_qzz_blkindex), 0, 0, 0)
|
| -
|
| -
|
| -/* Client-code macros to check the state of memory. */
|
| -
|
| -/* Check that memory at _qzz_addr is addressable for _qzz_len bytes.
|
| - If suitable addressibility is not established, Valgrind prints an
|
| - error message and returns the address of the first offending byte.
|
| - Otherwise it returns zero. */
|
| -#define VALGRIND_CHECK_MEM_IS_ADDRESSABLE(_qzz_addr,_qzz_len) \
|
| - VALGRIND_DO_CLIENT_REQUEST_EXPR(0, \
|
| - VG_USERREQ__CHECK_MEM_IS_ADDRESSABLE, \
|
| - (_qzz_addr), (_qzz_len), 0, 0, 0)
|
| -
|
| -/* Check that memory at _qzz_addr is addressable and defined for
|
| - _qzz_len bytes. If suitable addressibility and definedness are not
|
| - established, Valgrind prints an error message and returns the
|
| - address of the first offending byte. Otherwise it returns zero. */
|
| -#define VALGRIND_CHECK_MEM_IS_DEFINED(_qzz_addr,_qzz_len) \
|
| - VALGRIND_DO_CLIENT_REQUEST_EXPR(0, \
|
| - VG_USERREQ__CHECK_MEM_IS_DEFINED, \
|
| - (_qzz_addr), (_qzz_len), 0, 0, 0)
|
| -
|
| -/* Use this macro to force the definedness and addressibility of an
|
| - lvalue to be checked. If suitable addressibility and definedness
|
| - are not established, Valgrind prints an error message and returns
|
| - the address of the first offending byte. Otherwise it returns
|
| - zero. */
|
| -#define VALGRIND_CHECK_VALUE_IS_DEFINED(__lvalue) \
|
| - VALGRIND_CHECK_MEM_IS_DEFINED( \
|
| - (volatile unsigned char *)&(__lvalue), \
|
| - (unsigned long)(sizeof (__lvalue)))
|
| -
|
| -
|
| -/* Do a full memory leak check (like --leak-check=full) mid-execution. */
|
| -#define VALGRIND_DO_LEAK_CHECK \
|
| - {unsigned long _qzz_res; \
|
| - VALGRIND_DO_CLIENT_REQUEST(_qzz_res, 0, \
|
| - VG_USERREQ__DO_LEAK_CHECK, \
|
| - 0, 0, 0, 0, 0); \
|
| - }
|
| -
|
| -/* Do a summary memory leak check (like --leak-check=summary) mid-execution. */
|
| -#define VALGRIND_DO_QUICK_LEAK_CHECK \
|
| - {unsigned long _qzz_res; \
|
| - VALGRIND_DO_CLIENT_REQUEST(_qzz_res, 0, \
|
| - VG_USERREQ__DO_LEAK_CHECK, \
|
| - 1, 0, 0, 0, 0); \
|
| - }
|
| -
|
| -/* Return number of leaked, dubious, reachable and suppressed bytes found by
|
| - all previous leak checks. They must be lvalues. */
|
| -#define VALGRIND_COUNT_LEAKS(leaked, dubious, reachable, suppressed) \
|
| - /* 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, \
|
| - VG_USERREQ__COUNT_LEAKS, \
|
| - &_qzz_leaked, &_qzz_dubious, \
|
| - &_qzz_reachable, &_qzz_suppressed, 0); \
|
| - leaked = _qzz_leaked; \
|
| - dubious = _qzz_dubious; \
|
| - reachable = _qzz_reachable; \
|
| - suppressed = _qzz_suppressed; \
|
| - }
|
| -
|
| -/* Return number of leaked, dubious, reachable and suppressed bytes found by
|
| - all previous leak checks. They must be lvalues. */
|
| -#define VALGRIND_COUNT_LEAK_BLOCKS(leaked, dubious, reachable, suppressed) \
|
| - /* 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, \
|
| - VG_USERREQ__COUNT_LEAK_BLOCKS, \
|
| - &_qzz_leaked, &_qzz_dubious, \
|
| - &_qzz_reachable, &_qzz_suppressed, 0); \
|
| - leaked = _qzz_leaked; \
|
| - dubious = _qzz_dubious; \
|
| - reachable = _qzz_reachable; \
|
| - suppressed = _qzz_suppressed; \
|
| - }
|
| -
|
| -
|
| -/* Get the validity data for addresses [zza..zza+zznbytes-1] and copy it
|
| - into the provided zzvbits array. Return values:
|
| - 0 if not running on valgrind
|
| - 1 success
|
| - 2 [previously indicated unaligned arrays; these are now allowed]
|
| - 3 if any parts of zzsrc/zzvbits are not addressable.
|
| - The metadata is not copied in cases 0, 2 or 3 so it should be
|
| - impossible to segfault your system by using this call.
|
| -*/
|
| -#define VALGRIND_GET_VBITS(zza,zzvbits,zznbytes) \
|
| - VALGRIND_DO_CLIENT_REQUEST_EXPR(0, \
|
| - VG_USERREQ__GET_VBITS, \
|
| - (const char*)(zza), \
|
| - (char*)(zzvbits), \
|
| - (zznbytes), 0, 0)
|
| -
|
| -/* Set the validity data for addresses [zza..zza+zznbytes-1], copying it
|
| - from the provided zzvbits array. Return values:
|
| - 0 if not running on valgrind
|
| - 1 success
|
| - 2 [previously indicated unaligned arrays; these are now allowed]
|
| - 3 if any parts of zza/zzvbits are not addressable.
|
| - The metadata is not copied in cases 0, 2 or 3 so it should be
|
| - impossible to segfault your system by using this call.
|
| -*/
|
| -#define VALGRIND_SET_VBITS(zza,zzvbits,zznbytes) \
|
| - VALGRIND_DO_CLIENT_REQUEST_EXPR(0, \
|
| - VG_USERREQ__SET_VBITS, \
|
| - (const char*)(zza), \
|
| - (const char*)(zzvbits), \
|
| - (zznbytes), 0, 0 )
|
| -
|
| -#endif
|
| -
|
|
|