non-linux regtest: update cmdline expecteds
[valgrind.git] / VEX / pub / libvex_inner.h
blob023d1f6a3e8161b166503f8bb07574e216328337
2 /*--------------------------------------------------------------------*/
3 /*--- Utilities for inner Valgrind libvex_inner.h ---*/
4 /*--------------------------------------------------------------------*/
6 /*
7 This file is part of Valgrind, a dynamic binary instrumentation
8 framework.
10 Copyright (C) 2017-2017 Philippe Waroquiers
11 philippe.waroquiers@skynet.be
13 This program is free software; you can redistribute it and/or
14 modify it under the terms of the GNU General Public License as
15 published by the Free Software Foundation; either version 2 of the
16 License, or (at your option) any later version.
18 This program is distributed in the hope that it will be useful, but
19 WITHOUT ANY WARRANTY; without even the implied warranty of
20 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
21 General Public License for more details.
23 You should have received a copy of the GNU General Public License
24 along with this program; if not, see <http://www.gnu.org/licenses/>.
26 The GNU General Public License is contained in the file COPYING.
29 #ifndef __LIBVEX_INNER_H
30 #define __LIBVEX_INNER_H
32 //--------------------------------------------------------------------
33 // PURPOSE: This header should be imported by every file in Valgrind
34 // which needs specific behaviour when running as an "inner" Valgrind.
35 // Valgrind can self-host itself (i.e. Valgrind can run Valgrind) :
36 // The outer Valgrind executes the inner Valgrind.
37 // For more details, see README_DEVELOPPERS.
38 //--------------------------------------------------------------------
40 #include "config.h"
42 // The code of the inner Valgrind (core or tool code) contains client
43 // requests (e.g. from helgrind.h, memcheck.h, ...) to help the
44 // outer Valgrind finding (relevant) errors in the inner Valgrind.
45 // Such client requests should only be compiled in for an inner Valgrind.
46 // Use the macro INNER_REQUEST to allow a central enabling/disabling
47 // of these client requests.
48 #if defined(ENABLE_INNER)
50 // By default, the inner Valgrind annotates various actions to help
51 // the outer tool (memcheck or helgrind).
52 // Undefine the below to have an inner Valgrind without any annotation.
53 #define ENABLE_INNER_CLIENT_REQUEST 1
55 #if defined(ENABLE_INNER_CLIENT_REQUEST)
56 #define INNER_REQUEST(__zza) __zza
57 #else
58 #define INNER_REQUEST(__zza) do {} while (0)
59 #endif
61 #else
63 #define INNER_REQUEST(__zza) do {} while (0)
65 #endif
67 #endif // __LIBVEX_INNER_H
69 /*--------------------------------------------------------------------*/
70 /*--- end ---*/
71 /*--------------------------------------------------------------------*/