1 /* 2 * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * This code is free software; you can redistribute it and/or modify it 6 * under the terms of the GNU General Public License version 2 only, as 7 * published by the Free Software Foundation. 8 * 9 * This code is distributed in the hope that it will be useful, but WITHOUT 10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 12 * version 2 for more details (a copy is included in the LICENSE file that 13 * accompanied this code). 14 * 15 * You should have received a copy of the GNU General Public License version 16 * 2 along with this work; if not, write to the Free Software Foundation, 17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 18 * 19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 20 * or visit www.oracle.com if you need additional information or have any 21 * questions. 22 * 23 */ 24 25 #ifndef SHARE_VM_UTILITIES_MACROS_HPP 26 #define SHARE_VM_UTILITIES_MACROS_HPP 27 28 // Use this to mark code that needs to be cleaned up (for development only) 29 #define NEEDS_CLEANUP 30 31 // Makes a string of the argument (which is not macro-expanded) 32 #define STR(a) #a 33 34 // Makes a string of the macro expansion of a 35 #define XSTR(a) STR(a) 36 37 // KERNEL variant 38 #ifdef KERNEL 39 #define COMPILER1 40 #define SERIALGC 41 42 #define JVMTI_KERNEL 43 #define FPROF_KERNEL 44 #define VM_STRUCTS_KERNEL 45 #define JNICHECK_KERNEL 46 #define SERVICES_KERNEL 47 48 #define KERNEL_RETURN {} 49 #define KERNEL_RETURN_(code) { return code; } 50 51 #else // KERNEL 52 53 #define KERNEL_RETURN /* next token must be ; */ 54 #define KERNEL_RETURN_(code) /* next token must be ; */ 55 56 #endif // KERNEL 57 58 // COMPILER1 variant 59 #ifdef COMPILER1 60 #ifdef COMPILER2 61 #define TIERED 62 #endif 63 #define COMPILER1_PRESENT(code) code 64 #else // COMPILER1 65 #define COMPILER1_PRESENT(code) 66 #endif // COMPILER1 67 68 // COMPILER2 variant 69 #ifdef COMPILER2 70 #define COMPILER2_PRESENT(code) code 71 #define NOT_COMPILER2(code) 72 #else // COMPILER2 73 #define COMPILER2_PRESENT(code) 74 #define NOT_COMPILER2(code) code 75 #endif // COMPILER2 76 | 1 /* 2 * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * This code is free software; you can redistribute it and/or modify it 6 * under the terms of the GNU General Public License version 2 only, as 7 * published by the Free Software Foundation. 8 * 9 * This code is distributed in the hope that it will be useful, but WITHOUT 10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 12 * version 2 for more details (a copy is included in the LICENSE file that 13 * accompanied this code). 14 * 15 * You should have received a copy of the GNU General Public License version 16 * 2 along with this work; if not, write to the Free Software Foundation, 17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 18 * 19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 20 * or visit www.oracle.com if you need additional information or have any 21 * questions. 22 * 23 */ 24 25 #ifndef SHARE_VM_UTILITIES_MACROS_HPP 26 #define SHARE_VM_UTILITIES_MACROS_HPP 27 28 // Use this to mark code that needs to be cleaned up (for development only) 29 #define NEEDS_CLEANUP 30 31 // Makes a string of the argument (which is not macro-expanded) 32 #define STR(a) #a 33 34 // Makes a string of the macro expansion of a 35 #define XSTR(a) STR(a) 36 37 // -DINCLUDE_<something>=0 | 1 can be specified on the command line to include 38 // or exclude functionality. 39 40 #ifndef INCLUDE_JVMTI 41 #define INCLUDE_JVMTI 1 42 #endif // INCLUDE_JVMTI 43 44 #if INCLUDE_JVMTI 45 #define JVMTI_ONLY(x) x 46 #define NOT_JVMTI(x) 47 #define NOT_JVMTI_RETURN 48 #define NOT_JVMTI_RETURN_(code) /* next token must be ; */ 49 #else 50 #define JVMTI_ONLY(x) 51 #define NOT_JVMTI(x) x 52 #define NOT_JVMTI_RETURN { return; } 53 #define NOT_JVMTI_RETURN_(code) { return code; } 54 #endif // INCLUDE_JVMTI 55 56 #ifndef INCLUDE_FPROF 57 #define INCLUDE_FPROF 1 58 #endif 59 60 #if INCLUDE_FPROF 61 #define NOT_FPROF_RETURN /* next token must be ; */ 62 #define NOT_FPROF_RETURN_(code) /* next token must be ; */ 63 #else 64 #define NOT_FPROF_RETURN {} 65 #define NOT_FPROF_RETURN_(code) { return code; } 66 #endif // INCLUDE_FPROF 67 68 #ifndef INCLUDE_VM_STRUCTS 69 #define INCLUDE_VM_STRUCTS 1 70 #endif 71 72 #if INCLUDE_VM_STRUCTS 73 #define NOT_VM_STRUCTS_RETURN /* next token must be ; */ 74 #define NOT_VM_STRUCTS_RETURN_(code) /* next token must be ; */ 75 #else 76 #define NOT_VM_STRUCTS_RETURN {} 77 #define NOT_VM_STRUCTS_RETURN_(code) { return code; } 78 #endif // INCLUDE_VM_STRUCTS 79 80 #ifndef INCLUDE_JNI_CHECK 81 #define INCLUDE_JNI_CHECK 1 82 #endif 83 84 #if INCLUDE_JNI_CHECK 85 #define NOT_JNI_CHECK_RETURN /* next token must be ; */ 86 #define NOT_JNI_CHECK_RETURN_(code) /* next token must be ; */ 87 #else 88 #define NOT_JNI_CHECK_RETURN {} 89 #define NOT_JNI_CHECK_RETURN_(code) { return code; } 90 #endif // INCLUDE_JNI_CHECK 91 92 #ifndef INCLUDE_SERVICES 93 #define INCLUDE_SERVICES 1 94 #endif 95 96 #if INCLUDE_SERVICES 97 #define NOT_SERVICES_RETURN /* next token must be ; */ 98 #define NOT_SERVICES_RETURN_(code) /* next token must be ; */ 99 #else 100 #define NOT_SERVICES_RETURN {} 101 #define NOT_SERVICES_RETURN_(code) { return code; } 102 #endif // INCLUDE_SERVICES 103 104 #ifndef INCLUDE_CDS 105 #define INCLUDE_CDS 1 106 #endif 107 108 #if INCLUDE_CDS 109 #define CDS_ONLY(x) x 110 #define NOT_CDS(x) 111 #define NOT_CDS_RETURN /* next token must be ; */ 112 #define NOT_CDS_RETURN_(code) /* next token must be ; */ 113 #else 114 #define CDS_ONLY(x) 115 #define NOT_CDS(x) x 116 #define NOT_CDS_RETURN {} 117 #define NOT_CDS_RETURN_(code) { return code; } 118 #endif // INCLUDE_CDS 119 120 #ifndef INCLUDE_MANAGEMENT 121 #define INCLUDE_MANAGEMENT 1 122 #endif // INCLUDE_MANAGEMENT 123 124 #if INCLUDE_MANAGEMENT 125 #define NOT_MANAGEMENT_RETURN /* next token must be ; */ 126 #define NOT_MANAGEMENT_RETURN_(code) /* next token must be ; */ 127 #else 128 #define NOT_MANAGEMENT_RETURN {} 129 #define NOT_MANAGEMENT_RETURN_(code) { return code; } 130 #endif // INCLUDE_MANAGEMENT 131 132 /* 133 * When INCLUDE_ALTERNATE_GCS is false the only garbage collectors 134 * included in the JVM are defaultNewGeneration and markCompact. 135 * 136 * When INCLUDE_ALTERNATE_GCS is true all garbage collectors are 137 * included in the JVM. 138 */ 139 #ifndef INCLUDE_ALTERNATE_GCS 140 #define INCLUDE_ALTERNATE_GCS 1 141 #endif // INCLUDE_ALTERNATE_GCS 142 143 #if INCLUDE_ALTERNATE_GCS 144 #define NOT_ALTERNATE_GCS_RETURN /* next token must be ; */ 145 #define NOT_ALTERNATE_GCS_RETURN_(code) /* next token must be ; */ 146 #else 147 #define NOT_ALTERNATE_GCS_RETURN {} 148 #define NOT_ALTERNATE_GCS_RETURN_(code) { return code; } 149 #endif // INCLUDE_ALTERNATE_GCS 150 151 #ifndef INCLUDE_NMT 152 #define INCLUDE_NMT 1 153 #endif // INCLUDE_NMT 154 155 #if INCLUDE_NMT 156 #define NOT_NMT_RETURN /* next token must be ; */ 157 #define NOT_NMT_RETURN_(code) /* next token must be ; */ 158 #else 159 #define NOT_NMT_RETURN {} 160 #define NOT_NMT_RETURN_(code) { return code; } 161 #endif // INCLUDE_NMT 162 163 // COMPILER1 variant 164 #ifdef COMPILER1 165 #ifdef COMPILER2 166 #define TIERED 167 #endif 168 #define COMPILER1_PRESENT(code) code 169 #else // COMPILER1 170 #define COMPILER1_PRESENT(code) 171 #endif // COMPILER1 172 173 // COMPILER2 variant 174 #ifdef COMPILER2 175 #define COMPILER2_PRESENT(code) code 176 #define NOT_COMPILER2(code) 177 #else // COMPILER2 178 #define COMPILER2_PRESENT(code) 179 #define NOT_COMPILER2(code) code 180 #endif // COMPILER2 181 |