37 return "solaris";
38 } else if (os.equals("Linux")) {
39 return "linux";
40 } else if (os.equals("FreeBSD")) {
41 return "bsd";
42 } else if (os.equals("NetBSD")) {
43 return "bsd";
44 } else if (os.equals("OpenBSD")) {
45 return "bsd";
46 } else if (os.contains("Darwin") || os.contains("OS X")) {
47 return "darwin";
48 } else if (os.startsWith("Windows")) {
49 return "win32";
50 } else {
51 throw new UnsupportedPlatformException("Operating system " + os + " not yet supported");
52 }
53 }
54
55 public static boolean knownCPU(String cpu) {
56 final String[] KNOWN =
57 new String[] {"i386", "x86", "x86_64", "amd64", "sparc", "sparcv9", "ppc64", "aarch64"};
58
59 for(String s : KNOWN) {
60 if(s.equals(cpu))
61 return true;
62 }
63
64 return false;
65 }
66
67 /* Returns "sparc" for SPARC based platforms "x86" for x86 based
68 platforms and x86_64 for 64bit x86 based platform. Otherwise
69 returns the value of os.arch. If the value is not recognized as supported,
70 an exception is thrown instead. */
71
72 public static String getCPU() throws UnsupportedPlatformException {
73 String cpu = System.getProperty("os.arch");
74
75 // Let any additional CPU mangling fire first
76 try {
77 Class pic = Class.forName("sun.jvm.hotspot.utilities.PlatformInfoClosed");
80 return api.getCPU(cpu);
81 }
82 } catch (Exception e) {
83 // Ignored
84 }
85
86 // Check that CPU is supported
87 if (!knownCPU(cpu)) {
88 throw new UnsupportedPlatformException("CPU type " + cpu + " not yet supported");
89 }
90
91 // Tweeks
92 if (cpu.equals("i386"))
93 return "x86";
94
95 if (cpu.equals("sparcv9"))
96 return "sparc";
97
98 if (cpu.equals("x86_64"))
99 return "amd64";
100
101 return cpu;
102
103 }
104
105 // this main is invoked from Makefile to make platform specific agent Makefile(s).
106 public static void main(String[] args) {
107 System.out.println(getOS());
108 }
109 }
|
37 return "solaris";
38 } else if (os.equals("Linux")) {
39 return "linux";
40 } else if (os.equals("FreeBSD")) {
41 return "bsd";
42 } else if (os.equals("NetBSD")) {
43 return "bsd";
44 } else if (os.equals("OpenBSD")) {
45 return "bsd";
46 } else if (os.contains("Darwin") || os.contains("OS X")) {
47 return "darwin";
48 } else if (os.startsWith("Windows")) {
49 return "win32";
50 } else {
51 throw new UnsupportedPlatformException("Operating system " + os + " not yet supported");
52 }
53 }
54
55 public static boolean knownCPU(String cpu) {
56 final String[] KNOWN =
57 new String[] {"i386", "x86", "x86_64", "amd64", "sparc", "sparcv9", "ppc64", "ppc64le", "aarch64"};
58
59 for(String s : KNOWN) {
60 if(s.equals(cpu))
61 return true;
62 }
63
64 return false;
65 }
66
67 /* Returns "sparc" for SPARC based platforms "x86" for x86 based
68 platforms and x86_64 for 64bit x86 based platform. Otherwise
69 returns the value of os.arch. If the value is not recognized as supported,
70 an exception is thrown instead. */
71
72 public static String getCPU() throws UnsupportedPlatformException {
73 String cpu = System.getProperty("os.arch");
74
75 // Let any additional CPU mangling fire first
76 try {
77 Class pic = Class.forName("sun.jvm.hotspot.utilities.PlatformInfoClosed");
80 return api.getCPU(cpu);
81 }
82 } catch (Exception e) {
83 // Ignored
84 }
85
86 // Check that CPU is supported
87 if (!knownCPU(cpu)) {
88 throw new UnsupportedPlatformException("CPU type " + cpu + " not yet supported");
89 }
90
91 // Tweeks
92 if (cpu.equals("i386"))
93 return "x86";
94
95 if (cpu.equals("sparcv9"))
96 return "sparc";
97
98 if (cpu.equals("x86_64"))
99 return "amd64";
100
101 if (cpu.equals("ppc64le"))
102 return "ppc64";
103
104 return cpu;
105
106 }
107
108 // this main is invoked from Makefile to make platform specific agent Makefile(s).
109 public static void main(String[] args) {
110 System.out.println(getOS());
111 }
112 }
|