1 2/*--------------------------------------------------------------------*/ 3/*--- Basic definitions for all of Helgrind. ---*/ 4/*--- hg_basics.c ---*/ 5/*--------------------------------------------------------------------*/ 6 7/* 8 This file is part of Helgrind, a Valgrind tool for detecting errors 9 in threaded programs. 10 11 Copyright (C) 2007-2011 OpenWorks Ltd 12 info@open-works.co.uk 13 14 This program is free software; you can redistribute it and/or 15 modify it under the terms of the GNU General Public License as 16 published by the Free Software Foundation; either version 2 of the 17 License, or (at your option) any later version. 18 19 This program is distributed in the hope that it will be useful, but 20 WITHOUT ANY WARRANTY; without even the implied warranty of 21 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 22 General Public License for more details. 23 24 You should have received a copy of the GNU General Public License 25 along with this program; if not, write to the Free Software 26 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 27 02111-1307, USA. 28 29 The GNU General Public License is contained in the file COPYING. 30*/ 31 32#include "pub_tool_basics.h" 33#include "pub_tool_libcbase.h" 34#include "pub_tool_libcassert.h" 35#include "pub_tool_mallocfree.h" 36#include "pub_tool_threadstate.h" 37 38#include "hg_basics.h" /* self */ 39 40 41/*----------------------------------------------------------------*/ 42/*--- Very basic stuff ---*/ 43/*----------------------------------------------------------------*/ 44 45void* HG_(zalloc) ( HChar* cc, SizeT n ) 46{ 47 void* p; 48 tl_assert(n > 0); 49 p = VG_(malloc)( cc, n ); 50 tl_assert(p); 51 VG_(memset)(p, 0, n); 52 return p; 53} 54 55void HG_(free) ( void* p ) 56{ 57 tl_assert(p); 58 VG_(free)(p); 59} 60 61Char* HG_(strdup) ( HChar* cc, const Char* s ) 62{ 63 return VG_(strdup)( cc, s ); 64} 65 66 67/*----------------------------------------------------------------*/ 68/*--- Command line options ---*/ 69/*----------------------------------------------------------------*/ 70 71/* Description of these flags is in hg_basics.h. */ 72 73Bool HG_(clo_track_lockorders) = True; 74 75Bool HG_(clo_cmp_race_err_addrs) = False; 76 77UWord HG_(clo_history_level) = 2; 78 79UWord HG_(clo_conflict_cache_size) = 1000000; 80 81Word HG_(clo_sanity_flags) = 0; 82 83Bool HG_(clo_free_is_write) = False; 84 85UWord HG_(clo_vts_pruning) = 1; 86 87Bool HG_(clo_check_stack_refs) = True; 88 89/*--------------------------------------------------------------------*/ 90/*--- end hg_basics.c ---*/ 91/*--------------------------------------------------------------------*/ 92