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-2013 OpenWorks Ltd 12 info (at) 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 45 void* HG_(zalloc) ( const 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 55 void HG_(free) ( void* p ) 56 { 57 tl_assert(p); 58 VG_(free)(p); 59 } 60 61 HChar* HG_(strdup) ( const HChar* cc, const HChar* 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 73 Bool HG_(clo_track_lockorders) = True; 74 75 Bool HG_(clo_cmp_race_err_addrs) = False; 76 77 UWord HG_(clo_history_level) = 2; 78 79 UWord HG_(clo_conflict_cache_size) = 1000000; 80 81 Word HG_(clo_sanity_flags) = 0; 82 83 Bool HG_(clo_free_is_write) = False; 84 85 UWord HG_(clo_vts_pruning) = 1; 86 87 Bool HG_(clo_check_stack_refs) = True; 88 89 /*--------------------------------------------------------------------*/ 90 /*--- end hg_basics.c ---*/ 91 /*--------------------------------------------------------------------*/ 92