forked from edf-hpc/verrou
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathverrou.h
95 lines (75 loc) · 3.54 KB
/
verrou.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
/*--------------------------------------------------------------------*/
/*--- Verrou: a FPU instrumentation tool. ---*/
/*--- Headers for the public API. ---*/
/*--- verrou.h ---*/
/*--------------------------------------------------------------------*/
/*
This file is part of Verrou, a FPU instrumentation tool.
Copyright (C) 2014-2021 EDF
F. Févotte <[email protected]>
B. Lathuilière <[email protected]>
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307, USA.
The GNU General Public License is contained in the file COPYING.
*/
#ifndef __VERROU_H
#define __VERROU_H
#ifdef VERROU_SYNCHRO_INCLUDE
#include "../include/valgrind.h"
#else
#include "valgrind.h"
#endif
/* !! ABIWARNING !! ABIWARNING !! ABIWARNING !! ABIWARNING !!
This enum comprises an ABI exported by Valgrind to programs
which use client requests. DO NOT CHANGE THE ORDER OF THESE
ENTRIES, NOR DELETE ANY -- add new ones at the end.
*/
typedef
enum {
VR_USERREQ__START_INSTRUMENTATION = VG_USERREQ_TOOL_BASE('V', 'R'),
VR_USERREQ__STOP_INSTRUMENTATION,
VR_USERREQ__START_DETERMINISTIC,
VR_USERREQ__STOP_DETERMINISTIC,
VR_USERREQ__DISPLAY_COUNTERS,
VR_USERREQ__DUMP_COVER,
VR_USERREQ__COUNT_FP_INSTRUMENTED,
VR_USERREQ__COUNT_FP_NOT_INSTRUMENTED,
} Vg_VerrouClientRequest;
#define VERROU_START_INSTRUMENTATION \
VALGRIND_DO_CLIENT_REQUEST_STMT(VR_USERREQ__START_INSTRUMENTATION, \
0, 0, 0, 0, 0)
#define VERROU_STOP_INSTRUMENTATION \
VALGRIND_DO_CLIENT_REQUEST_STMT(VR_USERREQ__STOP_INSTRUMENTATION, \
0, 0, 0, 0, 0)
#define VERROU_START_DETERMINISTIC(LEVEL) \
VALGRIND_DO_CLIENT_REQUEST_STMT(VR_USERREQ__START_DETERMINISTIC, \
LEVEL, 0, 0, 0, 0)
#define VERROU_STOP_DETERMINISTIC(LEVEL) \
VALGRIND_DO_CLIENT_REQUEST_STMT(VR_USERREQ__STOP_DETERMINISTIC, \
LEVEL, 0, 0, 0, 0)
#define VERROU_DISPLAY_COUNTERS \
VALGRIND_DO_CLIENT_REQUEST_STMT(VR_USERREQ__DISPLAY_COUNTERS, \
0, 0, 0, 0, 0)
#define VERROU_DUMP_COVER \
(unsigned int)VALGRIND_DO_CLIENT_REQUEST_EXPR(0 /* if not */, \
VR_USERREQ__DUMP_COVER, \
0, 0, 0, 0, 0)
#define VERROU_COUNT_FP_INSTRUMENTED \
(unsigned int)VALGRIND_DO_CLIENT_REQUEST_EXPR(0 /* if not */, \
VR_USERREQ__COUNT_FP_INSTRUMENTED,\
0, 0, 0, 0, 0)
#define VERROU_COUNT_FP_NOT_INSTRUMENTED \
(unsigned int)VALGRIND_DO_CLIENT_REQUEST_EXPR(0 /* if not */, \
VR_USERREQ__COUNT_FP_NOT_INSTRUMENTED,\
0, 0, 0, 0, 0)
#endif /* __VERROU_H */