1183 * |
1183 * |
1184 * ========================================================================== |
1184 * ========================================================================== |
1185 */ |
1185 */ |
1186 typedef struct { |
1186 typedef struct { |
1187 /* VM version string: follows the JDK release version naming convention */ |
1187 /* VM version string: follows the JDK release version naming convention */ |
1188 unsigned int jvm_version; /* <major_ver>.<minor_ver>.<micro_ver>[-<identifier>][-<debug_target>][-b<nn>] */ |
1188 unsigned int jvm_version; |
1189 unsigned int update_version : 8; |
1189 unsigned int update_version : 8; |
1190 unsigned int special_update_version : 8; |
1190 unsigned int special_update_version : 8; |
1191 unsigned int reserved1 : 16; |
1191 unsigned int reserved1 : 16; |
1192 unsigned int reserved2; |
1192 unsigned int reserved2; |
1193 |
1193 |
1204 unsigned int : 32; |
1204 unsigned int : 32; |
1205 } jvm_version_info; |
1205 } jvm_version_info; |
1206 |
1206 |
1207 #define JVM_VERSION_MAJOR(version) ((version & 0xFF000000) >> 24) |
1207 #define JVM_VERSION_MAJOR(version) ((version & 0xFF000000) >> 24) |
1208 #define JVM_VERSION_MINOR(version) ((version & 0x00FF0000) >> 16) |
1208 #define JVM_VERSION_MINOR(version) ((version & 0x00FF0000) >> 16) |
1209 #define JVM_VERSION_MICRO(version) ((version & 0x0000FF00) >> 8) |
1209 #define JVM_VERSION_SECURITY(version) ((version & 0x0000FF00) >> 8) |
1210 #define JVM_VERSION_BUILD(version) ((version & 0x000000FF)) |
1210 #define JVM_VERSION_BUILD(version) ((version & 0x000000FF)) |
1211 |
1211 |
1212 JNIEXPORT void JNICALL |
1212 JNIEXPORT void JNICALL |
1213 JVM_GetVersionInfo(JNIEnv* env, jvm_version_info* info, size_t info_size); |
1213 JVM_GetVersionInfo(JNIEnv* env, jvm_version_info* info, size_t info_size); |
1214 |
1214 |
1215 typedef struct { |
1215 typedef struct { |
1216 // Naming convention of RE build version string: n.n.n[_uu[c]][-<identifier>]-bxx |
1216 // Naming convention of RE build version string: n.n.n[_uu[c]][-<identifier>]-bxx |
1217 unsigned int jdk_version; /* Consists of major, minor, micro (n.n.n) */ |
1217 unsigned int jdk_version; /* Consists of major, minor, security (n.n.n) */ |
1218 /* and build number (xx) */ |
1218 /* and build number (xx) */ |
1219 unsigned int update_version : 8; /* Update release version (uu) */ |
1219 unsigned int update_version : 8; /* Update release version (uu) */ |
1220 unsigned int special_update_version : 8; /* Special update release version (c)*/ |
1220 unsigned int special_update_version : 8; /* Special update release version (c)*/ |
1221 unsigned int reserved1 : 16; |
1221 unsigned int reserved1 : 16; |
1222 unsigned int reserved2; |
1222 unsigned int reserved2; |
1236 unsigned int : 32; |
1236 unsigned int : 32; |
1237 } jdk_version_info; |
1237 } jdk_version_info; |
1238 |
1238 |
1239 #define JDK_VERSION_MAJOR(version) ((version & 0xFF000000) >> 24) |
1239 #define JDK_VERSION_MAJOR(version) ((version & 0xFF000000) >> 24) |
1240 #define JDK_VERSION_MINOR(version) ((version & 0x00FF0000) >> 16) |
1240 #define JDK_VERSION_MINOR(version) ((version & 0x00FF0000) >> 16) |
1241 #define JDK_VERSION_MICRO(version) ((version & 0x0000FF00) >> 8) |
1241 #define JDK_VERSION_SECURITY(version) ((version & 0x0000FF00) >> 8) |
1242 |
1242 |
1243 /* Build number is available only for RE build (i.e. JDK_BUILD_NUMBER is set to bNN) |
1243 /* Build number is available only for RE build. |
1244 * It will be zero for internal builds. |
1244 * It will be zero for internal builds. |
1245 */ |
1245 */ |
1246 #define JDK_VERSION_BUILD(version) ((version & 0x000000FF)) |
1246 #define JDK_VERSION_BUILD(version) ((version & 0x000000FF)) |
1247 |
1247 |
1248 /* |
1248 /* |