ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
internal.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file internal.h
1 /* internal.h
2 
3  Internal definitions used by Expat. This is not needed to compile
4  client code.
5 
6  The following calling convention macros are defined for frequently
7  called functions:
8 
9  FASTCALL - Used for those internal functions that have a simple
10  body and a low number of arguments and local variables.
11 
12  PTRCALL - Used for functions called though function pointers.
13 
14  PTRFASTCALL - Like PTRCALL, but for low number of arguments.
15 
16  inline - Used for selected internal functions for which inlining
17  may improve performance on some platforms.
18 
19  Note: Use of these macros is based on judgement, not hard rules,
20  and therefore subject to change.
21 */
22 
23 #if defined(__GNUC__) && defined(__i386__) && !defined(__MINGW32__)
24 /* We'll use this version by default only where we know it helps.
25 
26  regparm() generates warnings on Solaris boxes. See SF bug #692878.
27 
28  Instability reported with egcs on a RedHat Linux 7.3.
29  Let's comment out:
30  #define FASTCALL __attribute__((stdcall, regparm(3)))
31  and let's try this:
32 */
33 #define FASTCALL __attribute__((regparm(3)))
34 #define PTRFASTCALL __attribute__((regparm(3)))
35 #endif
36 
37 /* Using __fastcall seems to have an unexpected negative effect under
38  MS VC++, especially for function pointers, so we won't use it for
39  now on that platform. It may be reconsidered for a future release
40  if it can be made more effective.
41  Likely reason: __fastcall on Windows is like stdcall, therefore
42  the compiler cannot perform stack optimizations for call clusters.
43 */
44 
45 /* Make sure all of these are defined if they aren't already. */
46 
47 #ifndef FASTCALL
48 #define FASTCALL
49 #endif
50 
51 #ifndef PTRCALL
52 #define PTRCALL
53 #endif
54 
55 #ifndef PTRFASTCALL
56 #define PTRFASTCALL
57 #endif
58 
59 #ifndef XML_MIN_SIZE
60 #if !defined(__cplusplus) && !defined(inline)
61 #ifdef __GNUC__
62 #define inline __inline
63 #endif /* __GNUC__ */
64 #endif
65 #endif /* XML_MIN_SIZE */
66 
67 #ifdef __cplusplus
68 #define inline inline
69 #else
70 #ifndef inline
71 #define inline
72 #endif
73 #endif