Move ici specific files to new directory ici; add new file ici/ici.c
[official-gcc.git] / gcc / highlev-plugin-common.h
blob85d9c10aeed9ea2ff1a2a68611b245c4bb633a5f
1 /* Interface for high-level plugins in GCC - Parts common between GCC,
2 ICI and high-level plugins.
4 Copyright (C) 2009 Free Software Foundation, Inc.
6 Contributed by Inria.
8 This file is part of GCC.
10 GCC is free software; you can redistribute it and/or modify it under
11 the terms of the GNU General Public License as published by the Free
12 Software Foundation; either version 3, or (at your option) any later
13 version.
15 GCC is distributed in the hope that it will be useful, but WITHOUT ANY
16 WARRANTY; without even the implied warranty of MERCHANTABILITY or
17 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
18 for more details.
20 You should have received a copy of the GNU General Public License
21 along with GCC; see the file COPYING3. If not see
22 <http://www.gnu.org/licenses/>. */
24 #ifndef HIGHLEV_PLUGIN_COMMON_H
25 #define HIGHLEV_PLUGIN_COMMON_H
27 /* Return codes for invoke_plugin_{,va_}callbacks / call_plugin_event . */
28 #define PLUGEVT_SUCCESS 0
29 #define PLUGEVT_NO_EVENTS 1
30 #define PLUGEVT_NO_SUCH_EVENT 2
31 #define PLUGEVT_NO_CALLBACK 3
33 /* Datatype of event parameter structure. */
34 typedef enum
36 EP_SILENT, /* Used to pass infomation between ICI and plugin,
37 parameter of this type will not be recorded.
38 The data type is int. */
39 EP_VOID,
40 EP_CHAR,
41 EP_UNSIGNED_CHAR,
42 EP_INT,
43 EP_UNSIGNED,
44 EP_LONG,
45 EP_UNSIGNED_LONG
46 } event_parameter_type;
48 #endif /* HIGHLEV_PLUGIN_COMMON_H */