1/*
2  This file is part of drd, a thread error detector.
3
4  Copyright (C) 2006-2013 Bart Van Assche <bvanassche@acm.org>.
5
6  This program is free software; you can redistribute it and/or
7  modify it under the terms of the GNU General Public License as
8  published by the Free Software Foundation; either version 2 of the
9  License, or (at your option) any later version.
10
11  This program is distributed in the hope that it will be useful, but
12  WITHOUT ANY WARRANTY; without even the implied warranty of
13  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14  General Public License for more details.
15
16  You should have received a copy of the GNU General Public License
17  along with this program; if not, write to the Free Software
18  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
19  02111-1307, USA.
20
21  The GNU General Public License is contained in the file COPYING.
22*/
23
24#ifndef __MALLOC_WRAPPERS_H
25#define __MALLOC_WRAPPERS_H
26
27
28#include "drd_basics.h"          /* DRD_() */
29#include "pub_tool_basics.h"     /* Bool */
30#include "pub_tool_execontext.h" /* ExeContext */
31
32
33typedef void (*StartUsingMem)(const Addr a1, const SizeT len, UInt ec_uniq);
34typedef void (*StopUsingMem)(const Addr a1, const SizeT len);
35
36
37void DRD_(register_malloc_wrappers)(const StartUsingMem start_callback,
38                                    const StopUsingMem stop_callback);
39void DRD_(malloclike_block)(const ThreadId tid, const Addr p, const SizeT size);
40Bool DRD_(freelike_block)(const ThreadId tid, const Addr p, const Bool dealloc);
41Bool DRD_(heap_addrinfo)(Addr const a,
42                         Addr* const data,
43                         SizeT* const size,
44                         ExeContext** const where);
45void DRD_(print_malloc_stats)(void);
46
47
48#endif // __MALLOC_WRAPPERS_H
49