2
/*--------------------------------------------------------------------*/
3
/*--- Internal client requests. coregrind.h ---*/
4
/*--------------------------------------------------------------------*/
7
This file is part of Valgrind, a dynamic binary instrumentation
10
Copyright (C) 2000-2005 Julian Seward
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, write to the Free Software
25
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
28
The GNU General Public License is contained in the file COPYING.
34
//--------------------------------------------------------------------
35
// PURPOSE: This file is the counterpart to valgrind.h. It contains
36
// the client requests that are internal to Valgrind, and not to be seen
37
// by client programs.
38
//--------------------------------------------------------------------
42
// The strange choice of values here is due to historical reasons -- there
43
// used to be many more internal client requests.
46
/* Denote the finish of __libc_freeres_wrapper(). Also causes exit. */
47
VG_USERREQ__LIBC_FREERES_DONE = 0x3029,
49
/* Get the tool's malloc-wrapping functions */
50
VG_USERREQ__GET_MALLOCFUNCS = 0x3030,
52
/* Internal equivalent of VALGRIND_PRINTF . */
53
VG_USERREQ__INTERNAL_PRINTF = 0x3103,
55
} Vg_InternalClientRequest;
57
// Function for printing from code within Valgrind, but which runs on the
58
// sim'd CPU. Must be a function rather than macros so that va_list can
61
int VALGRIND_INTERNAL_PRINTF(char *format, ...);
62
__attribute__((format(__printf__, 1, 2)))
64
int VALGRIND_INTERNAL_PRINTF(char *format, ...)
66
unsigned long _qzz_res = 0;
68
va_start(vargs, format);
69
VALGRIND_MAGIC_SEQUENCE(_qzz_res, 0, VG_USERREQ__INTERNAL_PRINTF,
70
(unsigned long)format, (unsigned long)vargs, 0, 0);
76
#endif // __COREGRIND_H
78
/*--------------------------------------------------------------------*/
80
/*--------------------------------------------------------------------*/