< prev index next >

src/hotspot/share/utilities/macros.hpp

Print this page

 32 #define STR(a)  #a
 33 
 34 // Makes a string of the macro expansion of a
 35 #define XSTR(a) STR(a)
 36 
 37 // Allow commas in macro arguments.
 38 #define COMMA ,
 39 
 40 // Apply pre-processor token pasting to the expansions of x and y.
 41 // The token pasting operator (##) prevents its arguments from being
 42 // expanded.  This macro allows expansion of its arguments before the
 43 // concatenation is performed.  Note: One auxilliary level ought to be
 44 // sufficient, but two are used because of bugs in some preprocesors.
 45 #define PASTE_TOKENS(x, y) PASTE_TOKENS_AUX(x, y)
 46 #define PASTE_TOKENS_AUX(x, y) PASTE_TOKENS_AUX2(x, y)
 47 #define PASTE_TOKENS_AUX2(x, y) x ## y
 48 
 49 // -DINCLUDE_<something>=0 | 1 can be specified on the command line to include
 50 // or exclude functionality.
 51 




 52 #ifndef INCLUDE_JVMTI
 53 #define INCLUDE_JVMTI 1
 54 #endif  // INCLUDE_JVMTI
 55 
 56 #if INCLUDE_JVMTI
 57 #define JVMTI_ONLY(x) x
 58 #define NOT_JVMTI(x)
 59 #define NOT_JVMTI_RETURN
 60 #define NOT_JVMTI_RETURN_(code) /* next token must be ; */
 61 #else
 62 #define JVMTI_ONLY(x)
 63 #define NOT_JVMTI(x) x
 64 #define NOT_JVMTI_RETURN { return; }
 65 #define NOT_JVMTI_RETURN_(code) { return code; }
 66 #endif // INCLUDE_JVMTI
 67 
 68 #ifndef INCLUDE_VM_STRUCTS
 69 #define INCLUDE_VM_STRUCTS 1
 70 #endif
 71 

 32 #define STR(a)  #a
 33 
 34 // Makes a string of the macro expansion of a
 35 #define XSTR(a) STR(a)
 36 
 37 // Allow commas in macro arguments.
 38 #define COMMA ,
 39 
 40 // Apply pre-processor token pasting to the expansions of x and y.
 41 // The token pasting operator (##) prevents its arguments from being
 42 // expanded.  This macro allows expansion of its arguments before the
 43 // concatenation is performed.  Note: One auxilliary level ought to be
 44 // sufficient, but two are used because of bugs in some preprocesors.
 45 #define PASTE_TOKENS(x, y) PASTE_TOKENS_AUX(x, y)
 46 #define PASTE_TOKENS_AUX(x, y) PASTE_TOKENS_AUX2(x, y)
 47 #define PASTE_TOKENS_AUX2(x, y) x ## y
 48 
 49 // -DINCLUDE_<something>=0 | 1 can be specified on the command line to include
 50 // or exclude functionality.
 51 
 52 #ifndef FILE_AND_LINE
 53 #define FILE_AND_LINE __FILE__ ":" XSTR(__LINE__)
 54 #endif
 55 
 56 #ifndef INCLUDE_JVMTI
 57 #define INCLUDE_JVMTI 1
 58 #endif  // INCLUDE_JVMTI
 59 
 60 #if INCLUDE_JVMTI
 61 #define JVMTI_ONLY(x) x
 62 #define NOT_JVMTI(x)
 63 #define NOT_JVMTI_RETURN
 64 #define NOT_JVMTI_RETURN_(code) /* next token must be ; */
 65 #else
 66 #define JVMTI_ONLY(x)
 67 #define NOT_JVMTI(x) x
 68 #define NOT_JVMTI_RETURN { return; }
 69 #define NOT_JVMTI_RETURN_(code) { return code; }
 70 #endif // INCLUDE_JVMTI
 71 
 72 #ifndef INCLUDE_VM_STRUCTS
 73 #define INCLUDE_VM_STRUCTS 1
 74 #endif
 75 
< prev index next >