Author: mturk Date: Mon Apr 13 14:04:31 2009 New Revision: 764474 URL: http://svn.apache.org/viewvc?rev=764474&view=rev Log: Return OS.getProcessor as unified string
Modified: commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/OS.java commons/sandbox/runtime/trunk/src/main/native/include/acr_memory.h commons/sandbox/runtime/trunk/src/main/native/include/acr_string.h commons/sandbox/runtime/trunk/src/main/native/os/darwin/os.c commons/sandbox/runtime/trunk/src/main/native/os/hpux/os.c commons/sandbox/runtime/trunk/src/main/native/os/linux/os.c commons/sandbox/runtime/trunk/src/main/native/os/solaris/os.c commons/sandbox/runtime/trunk/src/main/native/os/win32/os.c commons/sandbox/runtime/trunk/src/main/native/shared/string.c commons/sandbox/runtime/trunk/src/test/org/apache/commons/runtime/TestOS.java Modified: commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/OS.java URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/OS.java?rev=764474&r1=764473&r2=764474&view=diff ============================================================================== --- commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/OS.java (original) +++ commons/sandbox/runtime/trunk/src/main/java/org/apache/commons/runtime/OS.java Mon Apr 13 14:04:31 2009 @@ -115,4 +115,9 @@ */ public static native String getHardwarePlatform(); + /** + * Data model (32 or 64 bit). + */ + public static native int getDataModel(); + } Modified: commons/sandbox/runtime/trunk/src/main/native/include/acr_memory.h URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/native/include/acr_memory.h?rev=764474&r1=764473&r2=764474&view=diff ============================================================================== --- commons/sandbox/runtime/trunk/src/main/native/include/acr_memory.h (original) +++ commons/sandbox/runtime/trunk/src/main/native/include/acr_memory.h Mon Apr 13 14:04:31 2009 @@ -67,7 +67,7 @@ * @param file Source file where the function was called * @param line Source file line where the function was called */ -ACR_DECLARE(void) ACR_Free(JNIEnv *_E, const char *file, int line, +ACR_DECLARE(void) ACR_Free(JNIEnv *env, const char *file, int line, void *mem); /** @@ -79,7 +79,7 @@ * @param file Source file where the function was called * @param line Source file line where the function was called */ -ACR_DECLARE(acr_sbh_t *) ACR_SbhCreate(JNIEnv *_E, const char *file, int line, +ACR_DECLARE(acr_sbh_t *) ACR_SbhCreate(JNIEnv *env, const char *file, int line, void *buff, acr_size_t size); /** @@ -89,7 +89,7 @@ * @param file Source file where the function was called * @param line Source file line where the function was called */ -ACR_DECLARE(void ) ACR_SbhReset(JNIEnv *_E, const char *file, int line, +ACR_DECLARE(void ) ACR_SbhReset(JNIEnv *env, const char *file, int line, acr_sbh_t *sbh); /** @@ -99,7 +99,7 @@ * @param file Source file where the function was called * @param line Source file line where the function was called */ -ACR_DECLARE(void ) ACR_SbhDestroy(JNIEnv *_E, const char *file, int line, +ACR_DECLARE(void ) ACR_SbhDestroy(JNIEnv *env, const char *file, int line, acr_sbh_t *sbh); /** @@ -111,7 +111,7 @@ * @param line Source file line where the function was called * @return Pointer to allocated memory. */ -ACR_DECLARE(void *) ACR_SbhMalloc(JNIEnv *_E, const char *file, int line, +ACR_DECLARE(void *) ACR_SbhMalloc(JNIEnv *env, const char *file, int line, acr_sbh_t *sbh, acr_size_t size); /** @@ -123,7 +123,7 @@ * @param line Source file line where the function was called * @return Pointer to allocated memory. */ -ACR_DECLARE(void *) ACR_SbhCalloc(JNIEnv *_E, const char *file, int line, +ACR_DECLARE(void *) ACR_SbhCalloc(JNIEnv *env, const char *file, int line, acr_sbh_t *sbh, acr_size_t size); #ifdef __cplusplus Modified: commons/sandbox/runtime/trunk/src/main/native/include/acr_string.h URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/native/include/acr_string.h?rev=764474&r1=764473&r2=764474&view=diff ============================================================================== --- commons/sandbox/runtime/trunk/src/main/native/include/acr_string.h (original) +++ commons/sandbox/runtime/trunk/src/main/native/include/acr_string.h Mon Apr 13 14:04:31 2009 @@ -62,6 +62,18 @@ */ ACR_DECLARE(char *) ACR_Ltoa(acr_long_t n); +/** Convert string to lower case + * @param str String to convert. + * @remark Conversion is done in place. + */ +ACR_DECLARE(char *) ACR_StrLwr(char *src); + +/** Convert string to upper case + * @param str String to convert. + * @remark Conversion is done in place. + */ +ACR_DECLARE(char *) ACR_StrUpr(char *src); + #ifdef __cplusplus } Modified: commons/sandbox/runtime/trunk/src/main/native/os/darwin/os.c URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/native/os/darwin/os.c?rev=764474&r1=764473&r2=764474&view=diff ============================================================================== --- commons/sandbox/runtime/trunk/src/main/native/os/darwin/os.c (original) +++ commons/sandbox/runtime/trunk/src/main/native/os/darwin/os.c Mon Apr 13 14:04:31 2009 @@ -16,6 +16,7 @@ #include "acr.h" #include "acr_private.h" +#include "acr_string.h" #include <sys/utsname.h> #include <sys/sysctl.h> #include <mach/machine.h> @@ -98,8 +99,19 @@ s = sizeof(cpu_type_t); if ((sysctlbyname("hw.cputype", &cpu, &s, NULL, 0) == 0) && - (ai = NXGetArchInfoFromCpuType(cpu, CPU_SUBTYPE_MULTIPLE)) != NULL) - return CSTR_TO_JSTRING(ai->name); + (ai = NXGetArchInfoFromCpuType(cpu, CPU_SUBTYPE_MULTIPLE)) != NULL) { + ACR_CopyStrn(string, ai->name, MAXSIZESYSSTRING); + ACR_StrLwr(string); + if (strstr(string, "86")) { +#if CC_SIZEOF_VOIDP == 8 + return CSTR_TO_JSTRING("x86_64"); +#else + return CSTR_TO_JSTRING("ia32"); +#endif + } + else + return CSTR_TO_JSTRING(string); + } else return CSTR_TO_JSTRING(unknown); } @@ -119,3 +131,13 @@ return CSTR_TO_JSTRING(string); } +ACR_JNI_EXPORT_DECLARE(jint, OS, getDataModel)(ACR_JNISTDARGS) +{ + UNREFERENCED_STDARGS; +#if CC_SIZEOF_VOIDP == 8 + return 64; +#else + return 32; +#endif +} + Modified: commons/sandbox/runtime/trunk/src/main/native/os/hpux/os.c URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/native/os/hpux/os.c?rev=764474&r1=764473&r2=764474&view=diff ============================================================================== --- commons/sandbox/runtime/trunk/src/main/native/os/hpux/os.c (original) +++ commons/sandbox/runtime/trunk/src/main/native/os/hpux/os.c Mon Apr 13 14:04:31 2009 @@ -91,9 +91,9 @@ */ #if HAS_BIG_ENDIAN #if CC_SIZEOF_VOIDP == 8 - return CSTR_TO_JSTRING("parisc64"); + return CSTR_TO_JSTRING("pa64"); #else - return CSTR_TO_JSTRING("parisc"); + return CSTR_TO_JSTRING("pa32"); #endif #else #if CC_SIZEOF_VOIDP == 8 @@ -109,3 +109,13 @@ return CSTR_TO_JSTRING(unknown); } +ACR_JNI_EXPORT_DECLARE(jint, OS, getDataModel)(ACR_JNISTDARGS) +{ + UNREFERENCED_STDARGS; +#if CC_SIZEOF_VOIDP == 8 + return 64; +#else + return 32; +#endif +} + Modified: commons/sandbox/runtime/trunk/src/main/native/os/linux/os.c URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/native/os/linux/os.c?rev=764474&r1=764473&r2=764474&view=diff ============================================================================== --- commons/sandbox/runtime/trunk/src/main/native/os/linux/os.c (original) +++ commons/sandbox/runtime/trunk/src/main/native/os/linux/os.c Mon Apr 13 14:04:31 2009 @@ -17,6 +17,7 @@ #include "acr.h" #include "acr_private.h" #include "acr_arch.h" +#include "acr_string.h" #include <sys/utsname.h> #define MAXSIZESYSSTRING 256 @@ -86,15 +87,30 @@ ACR_JNI_EXPORT_DECLARE(jstring, OS, getProcessor)(ACR_JNISTDARGS) { + char string[MAXSIZESYSSTRING]; struct utsname sys; if (!uname(&sys)) { - if (strstr(sys.machine, "86") || !strcmp(sys.machine, "ia64")) { + ACR_CopyStrn(string, sys.machine, MAXSIZESYSSTRING); + ACR_StrLwr(string); + +#if HAS_BIG_ENDIAN + /* TODO: Name BE machines (PPC ?) */ +#else + if (strstr(string, "64")) { #if CC_SIZEOF_VOIDP == 8 - return CSTR_TO_JSTRING(sys.machine); + return CSTR_TO_JSTRING(string); #else return CSTR_TO_JSTRING("ia32"); #endif } + else if (strstr(string, "86")) { + return CSTR_TO_JSTRING("ia32"); + } + else +#endif + { + return CSTR_TO_JSTRING(string); + } } return CSTR_TO_JSTRING(unknown); } @@ -104,3 +120,12 @@ return CSTR_TO_JSTRING(unknown); } +ACR_JNI_EXPORT_DECLARE(jint, OS, getDataModel)(ACR_JNISTDARGS) +{ + UNREFERENCED_STDARGS; +#if CC_SIZEOF_VOIDP == 8 + return 64; +#else + return 32; +#endif +} Modified: commons/sandbox/runtime/trunk/src/main/native/os/solaris/os.c URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/native/os/solaris/os.c?rev=764474&r1=764473&r2=764474&view=diff ============================================================================== --- commons/sandbox/runtime/trunk/src/main/native/os/solaris/os.c (original) +++ commons/sandbox/runtime/trunk/src/main/native/os/solaris/os.c Mon Apr 13 14:04:31 2009 @@ -81,11 +81,19 @@ ACR_JNI_EXPORT_DECLARE(jstring, OS, getProcessor)(ACR_JNISTDARGS) { - char string[MAXSIZESYSSTRING]; - if (sysinfo(SI_ARCHITECTURE, string, sizeof(string)) < 0) - return CSTR_TO_JSTRING(unknown); - else - return CSTR_TO_JSTRING(string); +#if HAS_BIG_ENDIAN +#if CC_SIZEOF_VOIDP == 8 + return CSTR_TO_JSTRING("sparc64"); +#else + return CSTR_TO_JSTRING("sparc32"); +#endif +#else +#if CC_SIZEOF_VOIDP == 8 + return CSTR_TO_JSTRING("x86_64"); +#else + return CSTR_TO_JSTRING("ia32"); +#endif +#endif } ACR_JNI_EXPORT_DECLARE(jstring, OS, getHardwarePlatform)(ACR_JNISTDARGS) @@ -96,3 +104,13 @@ else return CSTR_TO_JSTRING(string); } + +ACR_JNI_EXPORT_DECLARE(jint, OS, getDataModel)(ACR_JNISTDARGS) +{ + UNREFERENCED_STDARGS; +#if CC_SIZEOF_VOIDP == 8 + return 64; +#else + return 32; +#endif +} Modified: commons/sandbox/runtime/trunk/src/main/native/os/win32/os.c URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/native/os/win32/os.c?rev=764474&r1=764473&r2=764474&view=diff ============================================================================== --- commons/sandbox/runtime/trunk/src/main/native/os/win32/os.c (original) +++ commons/sandbox/runtime/trunk/src/main/native/os/win32/os.c Mon Apr 13 14:04:31 2009 @@ -198,29 +198,22 @@ { char buf[32]; +#if !defined(_WIN64) + strcpy(buf, "ia32"); +#else switch (acr_osinf->wProcessorArchitecture) { case PROCESSOR_ARCHITECTURE_AMD64: + case PROCESSOR_ARCHITECTURE_INTEL: strcpy(buf, "x86_64"); break; case PROCESSOR_ARCHITECTURE_IA64: strcpy(buf, "ia64"); - case PROCESSOR_ARCHITECTURE_INTEL: -#if !defined(_WIN64) - if (acr_osinf->wProcessorLevel > 2 && acr_osinf->wProcessorLevel < 7) - sprintf(buf, "i%d86", acr_osinf->wProcessorLevel); - else -#endif - { - /* TODO: Figure out the proper names for - * other Intel processors - */ - strcpy(buf, "ia32"); - } break; default: strcpy(buf, unknown); break; } +#endif return CSTR_TO_JSTRING(buf); } @@ -252,3 +245,13 @@ return CSTR_TO_JSTRING(buf); } + +ACR_JNI_EXPORT_DECLARE(jint, OS, getDataModel)(ACR_JNISTDARGS) +{ + UNREFERENCED_STDARGS; +#if CC_SIZEOF_VOIDP == 8 + return 64; +#else + return 32; +#endif +} Modified: commons/sandbox/runtime/trunk/src/main/native/shared/string.c URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/native/shared/string.c?rev=764474&r1=764473&r2=764474&view=diff ============================================================================== --- commons/sandbox/runtime/trunk/src/main/native/shared/string.c (original) +++ commons/sandbox/runtime/trunk/src/main/native/shared/string.c Mon Apr 13 14:04:31 2009 @@ -138,3 +138,29 @@ } return start; } + +ACR_DECLARE(char *) ACR_StrLwr(char *src) +{ + + char *p = src; + if (src) { + while (*p) { + *p = acr_tolower(*p); + p++; + } + } + return src; +} + +ACR_DECLARE(char *) ACR_StrUpr(char *src) +{ + + char *p = src; + if (src) { + while (*p) { + *p = acr_toupper(*p); + p++; + } + } + return src; +} Modified: commons/sandbox/runtime/trunk/src/test/org/apache/commons/runtime/TestOS.java URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/test/org/apache/commons/runtime/TestOS.java?rev=764474&r1=764473&r2=764474&view=diff ============================================================================== --- commons/sandbox/runtime/trunk/src/test/org/apache/commons/runtime/TestOS.java (original) +++ commons/sandbox/runtime/trunk/src/test/org/apache/commons/runtime/TestOS.java Mon Apr 13 14:04:31 2009 @@ -49,14 +49,15 @@ /* The following are just for display purpose */ System.out.println(""); - System.out.println("Name " + OS.getSysname()); - System.out.println("Node " + OS.getNodename()); - System.out.println("Release " + OS.getRelease()); - System.out.println("Version " + OS.getVersion()); + System.out.println("Name " + OS.getSysname()); + System.out.println("Node " + OS.getNodename()); + System.out.println("Release " + OS.getRelease()); + System.out.println("Version " + OS.getVersion()); - System.out.println("Machine " + OS.getMachine()); - System.out.println("Processor " + OS.getProcessor()); - System.out.println("Hardware " + OS.getHardwarePlatform()); + System.out.println("Machine " + OS.getMachine()); + System.out.println("Processor " + OS.getProcessor()); + System.out.println("Data Model " + OS.getDataModel()); + System.out.println("Hardware " + OS.getHardwarePlatform()); }