1024598e40c84666cc311a42c256bbf880db3ac99sewardj 2024598e40c84666cc311a42c256bbf880db3ac99sewardj/*--------------------------------------------------------------------*/ 3024598e40c84666cc311a42c256bbf880db3ac99sewardj/*--- Ptrcheck: a pointer-use checker. ---*/ 4024598e40c84666cc311a42c256bbf880db3ac99sewardj/*--- Exports for stuff shared between sg_ and h_ subtools. ---*/ 5024598e40c84666cc311a42c256bbf880db3ac99sewardj/*--- pc_common.h ---*/ 6024598e40c84666cc311a42c256bbf880db3ac99sewardj/*--------------------------------------------------------------------*/ 7024598e40c84666cc311a42c256bbf880db3ac99sewardj 8024598e40c84666cc311a42c256bbf880db3ac99sewardj/* 9024598e40c84666cc311a42c256bbf880db3ac99sewardj This file is part of Ptrcheck, a Valgrind tool for checking pointer 10024598e40c84666cc311a42c256bbf880db3ac99sewardj use in programs. 11024598e40c84666cc311a42c256bbf880db3ac99sewardj 12ed39800a83baf5bffbe391f3974eb2af0f415f80Elliott Hughes Copyright (C) 2008-2017 OpenWorks Ltd 13024598e40c84666cc311a42c256bbf880db3ac99sewardj info@open-works.co.uk 14024598e40c84666cc311a42c256bbf880db3ac99sewardj 15024598e40c84666cc311a42c256bbf880db3ac99sewardj This program is free software; you can redistribute it and/or 16024598e40c84666cc311a42c256bbf880db3ac99sewardj modify it under the terms of the GNU General Public License as 17024598e40c84666cc311a42c256bbf880db3ac99sewardj published by the Free Software Foundation; either version 2 of the 18024598e40c84666cc311a42c256bbf880db3ac99sewardj License, or (at your option) any later version. 19024598e40c84666cc311a42c256bbf880db3ac99sewardj 20024598e40c84666cc311a42c256bbf880db3ac99sewardj This program is distributed in the hope that it will be useful, but 21024598e40c84666cc311a42c256bbf880db3ac99sewardj WITHOUT ANY WARRANTY; without even the implied warranty of 22024598e40c84666cc311a42c256bbf880db3ac99sewardj MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 23024598e40c84666cc311a42c256bbf880db3ac99sewardj General Public License for more details. 24024598e40c84666cc311a42c256bbf880db3ac99sewardj 25024598e40c84666cc311a42c256bbf880db3ac99sewardj You should have received a copy of the GNU General Public License 26024598e40c84666cc311a42c256bbf880db3ac99sewardj along with this program; if not, write to the Free Software 27024598e40c84666cc311a42c256bbf880db3ac99sewardj Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 28024598e40c84666cc311a42c256bbf880db3ac99sewardj 02111-1307, USA. 29024598e40c84666cc311a42c256bbf880db3ac99sewardj 30024598e40c84666cc311a42c256bbf880db3ac99sewardj The GNU General Public License is contained in the file COPYING. 31024598e40c84666cc311a42c256bbf880db3ac99sewardj*/ 32024598e40c84666cc311a42c256bbf880db3ac99sewardj 33024598e40c84666cc311a42c256bbf880db3ac99sewardj#ifndef __PC_COMMON_H 34024598e40c84666cc311a42c256bbf880db3ac99sewardj 35024598e40c84666cc311a42c256bbf880db3ac99sewardj#define __PC_COMMON_H 36024598e40c84666cc311a42c256bbf880db3ac99sewardj 37024598e40c84666cc311a42c256bbf880db3ac99sewardjtypedef struct _Seg Seg; /* abstract every except in h_main.c */ 38024598e40c84666cc311a42c256bbf880db3ac99sewardj 39024598e40c84666cc311a42c256bbf880db3ac99sewardjvoid sg_record_error_SorG ( ThreadId tid, 40024598e40c84666cc311a42c256bbf880db3ac99sewardj Addr addr, SSizeT sszB, 41f5b019fb45b52a26fefa40b8fa5b518f0686dd99sewardj HChar* expect, HChar* actual, HChar* delta ); 42024598e40c84666cc311a42c256bbf880db3ac99sewardj 43024598e40c84666cc311a42c256bbf880db3ac99sewardjvoid h_record_heap_error( Addr a, SizeT size, Seg* vseg, Bool is_write ); 44024598e40c84666cc311a42c256bbf880db3ac99sewardj 45024598e40c84666cc311a42c256bbf880db3ac99sewardjvoid h_record_arith_error( Seg* seg1, Seg* seg2, HChar* opname ); 46024598e40c84666cc311a42c256bbf880db3ac99sewardj 4719f91bbaedb4caef8a60ce94b0f507193cc0bc10florianvoid h_record_sysparam_error( ThreadId tid, CorePart part, const HChar* s, 48024598e40c84666cc311a42c256bbf880db3ac99sewardj Addr lo, Addr hi, Seg* seglo, Seg* seghi ); 49024598e40c84666cc311a42c256bbf880db3ac99sewardj 508e3fbb5cd8276a7d07d5712bc05f9b3376d81a6aflorianBool pc_eq_Error ( VgRes res, const Error* e1, const Error* e2 ); 518e3fbb5cd8276a7d07d5712bc05f9b3376d81a6aflorianvoid pc_before_pp_Error ( const Error* err ); 528e3fbb5cd8276a7d07d5712bc05f9b3376d81a6aflorianvoid pc_pp_Error ( const Error* err ); 538e3fbb5cd8276a7d07d5712bc05f9b3376d81a6aflorianUInt pc_update_Error_extra ( const Error* err ); 5419f91bbaedb4caef8a60ce94b0f507193cc0bc10florianBool pc_is_recognised_suppression ( const HChar* name, Supp *su ); 5519f91bbaedb4caef8a60ce94b0f507193cc0bc10florianBool pc_read_extra_suppression_info ( Int fd, HChar** bufpp, 56362441db825242200142a91bb07c4a0300b36a3ephilippe SizeT* nBufp, Int* lineno, Supp* su ); 578e3fbb5cd8276a7d07d5712bc05f9b3376d81a6aflorianBool pc_error_matches_suppression (const Error* err, const Supp* su); 588e3fbb5cd8276a7d07d5712bc05f9b3376d81a6aflorianconst HChar* pc_get_error_name ( const Error* err ); 598e3fbb5cd8276a7d07d5712bc05f9b3376d81a6aflorianSizeT pc_get_extra_suppression_info ( const Error* err, 60dbb3584f591710a15a437918c0fc27e300993566florian /*OUT*/HChar* buf, Int nBuf ); 618e3fbb5cd8276a7d07d5712bc05f9b3376d81a6aflorianSizeT pc_print_extra_suppression_use ( const Supp* su, 624e32d67a5b880bf1d871c5141822078d4dcdc3acphilippe /*OUT*/HChar* buf, Int nBuf ); 638e3fbb5cd8276a7d07d5712bc05f9b3376d81a6aflorianvoid pc_update_extra_suppression_use (const Error* err, const Supp* su); 64024598e40c84666cc311a42c256bbf880db3ac99sewardj 65024598e40c84666cc311a42c256bbf880db3ac99sewardjextern Bool h_clo_partial_loads_ok; 664815eb5cc0e96a3b76aae246e3ca7a8b3394c46csewardj/* extern Bool h_clo_lossage_check; */ 674815eb5cc0e96a3b76aae246e3ca7a8b3394c46csewardjextern Bool sg_clo_enable_sg_checks; 68024598e40c84666cc311a42c256bbf880db3ac99sewardj 6919f91bbaedb4caef8a60ce94b0f507193cc0bc10florianBool pc_process_cmd_line_options(const HChar* arg); 70024598e40c84666cc311a42c256bbf880db3ac99sewardjvoid pc_print_usage(void); 71024598e40c84666cc311a42c256bbf880db3ac99sewardjvoid pc_print_debug_usage(void); 72024598e40c84666cc311a42c256bbf880db3ac99sewardj 73024598e40c84666cc311a42c256bbf880db3ac99sewardj 74024598e40c84666cc311a42c256bbf880db3ac99sewardj#endif 75024598e40c84666cc311a42c256bbf880db3ac99sewardj 76024598e40c84666cc311a42c256bbf880db3ac99sewardj/*--------------------------------------------------------------------*/ 77024598e40c84666cc311a42c256bbf880db3ac99sewardj/*--- end pc_common.h ---*/ 78024598e40c84666cc311a42c256bbf880db3ac99sewardj/*--------------------------------------------------------------------*/ 79