summaryrefslogtreecommitdiff
path: root/Source/Android
diff options
context:
space:
mode:
authorRyan Houdek <Sonicadvance1@gmail.com>2016-03-04 16:47:37 -0500
committerRyan Houdek <Sonicadvance1@gmail.com>2016-03-04 16:47:37 -0500
commit5b040ec67bb0b5ee62fc6fdd831974d82032016e (patch)
treeec2fd56d25034f95e1503203d4bbaa11124a0bd6 /Source/Android
parentc24c278ce9168db64b8d2af507f9d356626761bf (diff)
parent309b0c53bf7b98f3de0977d933f960b49049a854 (diff)
Merge pull request #3704 from Tsunamical/arm
[Android] Remove CPUHelper Class
Diffstat (limited to 'Source/Android')
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/CPUHelper.java395
1 files changed, 0 insertions, 395 deletions
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/CPUHelper.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/CPUHelper.java
deleted file mode 100644
index 6fc6ce4008..0000000000
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/CPUHelper.java
+++ /dev/null
@@ -1,395 +0,0 @@
-package org.dolphinemu.dolphinemu.utils;
-
-import android.content.Context;
-import android.os.Build;
-
-import org.dolphinemu.dolphinemu.R;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileReader;
-import java.io.IOException;
-
-
-/**
- * Utility class for retrieving information
- * from a device's CPU.
- */
-public final class CPUHelper
-{
- private int revision;
- private int variant;
- private int numCores;
- private String implementerID = "N/A";
- private String part = "N/A";
- private String hardware = "N/A";
- private String processorInfo = "N/A";
- private String features = "N/A";
-
- private final Context ctx;
-
- /**
- * Constructor
- *
- * @param ctx The current {@link Context}.
- */
- public CPUHelper(Context ctx)
- {
- this.ctx = ctx;
-
- try
- {
- // TODO: Should do other architectures as well (x86 and MIPS).
- // Can do differentiating between platforms by using
- // android.os.Build.CPU_ABI.
- //
- // CPU_ABI.contains("armeabi") == get ARM info.
- // CPU_ABI.contains("x86") == get x86 info.
- // CPU_ABI.contains("mips") == get MIPS info.
- //
- // However additional testing should be done across devices,
- // I highly doubt /proc/cpuinfo retains the same formatting
- // on different architectures.
- //
- // If push comes to shove, we can simply spit out the cpuinfo
- // contents. I would like to avoid this if possible, however.
-
- if (Build.CPU_ABI.contains("arm"))
- {
- getARMInfo();
- }
- else
- {
- Log.error("[CPUHelper] CPU architecture not supported yet.");
- }
- }
- catch (IOException ioe)
- {
- Log.error("[CPUHelper] " + ioe.getMessage());
- }
- }
-
- /**
- * Gets the revision number of the CPU.
- *
- * @return the revision number of the CPU.
- */
- public int getRevision()
- {
- return revision;
- }
-
-
- /**
- * Gets the CPU variant number.
- *
- * @return the CPU variant number.
- */
- public int getVariant()
- {
- return variant;
- }
-
- /**
- * Gets the total number of cores in the CPU.
- *
- * @return the total number of cores in the CPU.
- */
- public int getNumCores()
- {
- return numCores;
- }
-
- /**
- * Gets the name of the implementer of the CPU.
- *
- * @return the name of the implementer of the CPU.
- */
- public String getImplementer()
- {
- return implementerID;
- }
-
- /**
- * Gets the specific processor type of the CPU.
- *
- * @return the specific processor type.
- */
- public String getProcessorType()
- {
- return part;
- }
-
- /**
- * Gets the internal name of the hardware.
- *
- * @return the internal name of the hardware.
- */
- public String getHardware()
- {
- return hardware;
- }
-
- /**
- * Get the processor info string.
- *
- * @return the processor info string.
- */
- public String getProcessorInfo()
- {
- return processorInfo;
- }
-
- /**
- * Gets the features supported by the CPU.
- *
- * @return the features supported by the CPU.
- */
- public String getFeatures()
- {
- return features;
- }
-
- /**
- * Whether or not this CPU is using the ARM architecture.
- *
- * @return true if this CPU uses the ARM architecture; false otherwise.
- */
- public static boolean isARM()
- {
- return Build.CPU_ABI.contains("arm");
- }
-
- /**
- * Whether or not this CPU is using the ARM64 architecture.
- *
- * @return true if this CPU uses the ARM64 architecture; false otherwise.
- */
- public static boolean isARM64() { return Build.CPU_ABI.contains("arm64"); }
-
- /**
- * Whether or not this CPU is using the x86 architecture.
- *
- * @return true if this CPU uses the x86 architecture; false otherwise.
- */
- public static boolean isX86()
- {
- return Build.CPU_ABI.contains("x86");
- }
-
- /**
- * Whether or not this CPU is using the MIPS architecture.
- *
- * @return true if this CPU uses the MIPS architecture; false otherwise.
- */
- public static boolean isMIPS()
- {
- return Build.CPU_ABI.contains("mips");
- }
-
- // Retrieves information for ARM CPUs.
- private void getARMInfo() throws IOException
- {
- File info = new File("/proc/cpuinfo");
- if (info.exists())
- {
- BufferedReader br = new BufferedReader(new FileReader(info));
-
- String line;
- while ((line = br.readLine()) != null)
- {
- if (line.contains("Processor\t:"))
- {
- this.processorInfo = parseLine(line);
- }
- else if (line.contains("Hardware\t:"))
- {
- this.hardware = parseLine(line);
- }
- else if (line.contains("Features\t:"))
- {
- this.features = parseLine(line);
- }
- else if (line.contains("CPU implementer\t:"))
- {
- this.implementerID = parseArmID(Integer.decode(parseLine(line)));
- }
- else if (line.contains("CPU part\t:"))
- {
- this.part = parseArmPartNumber(Integer.decode(parseLine(line)));
- }
- else if (line.contains("CPU revision\t:"))
- {
- this.revision = Integer.decode(parseLine(line));
- }
- else if (line.contains("CPU variant\t:"))
- {
- this.variant = Integer.decode(parseLine(line));
- }
- else if (line.contains("processor\t:")) // Lower case indicates a specific core number
- {
- this.numCores++;
- }
- }
-
- br.close();
- }
- }
-
- // Basic function for parsing cpuinfo format strings.
- // cpuinfo format strings consist of [label:info] parts.
- // We only want to retrieve the info portion so we split
- // them using ':' as a delimeter.
- private String parseLine(String line)
- {
- String[] temp = line.split(":");
- if (temp.length != 2)
- return "N/A";
-
- return temp[1].trim();
- }
-
- // Parses an ARM CPU ID.
- private String parseArmID(int id)
- {
- switch (id)
- {
- case 0x41:
- return "ARM Limited";
-
- case 0x44:
- return "Digital Equipment Corporation";
-
- case 0x4D:
- return "Freescale Semiconductor Inc.";
-
- case 0x4E:
- return "Nvidia Corporation";
-
- case 0x51:
- return "Qualcomm Inc.";
-
- case 0x56:
- return "Marvell Semiconductor Inc.";
-
- case 0x69:
- return "Intel Corporation";
-
- default:
- return "N/A";
- }
- }
-
- // Parses the ARM CPU Part number.
- private String parseArmPartNumber(int partNum)
- {
- switch (partNum)
- {
- // Qualcomm part numbers.
- case 0x00F:
- return "Qualcomm Scorpion";
-
- case 0x02D:
- return "Qualcomm Dual Scorpion";
-
- case 0x04D:
- return "Qualcomm Dual Krait";
-
- case 0x06F:
- return "Qualcomm Quad Krait";
-
- // Marvell Semiconductor part numbers
- case 0x131:
- return "Marvell Feroceon";
-
- case 0x581:
- return "Marvell PJ4/PJ4b";
-
- case 0x584:
- return "Marvell Dual PJ4/PJ4b";
-
- // Official ARM part numbers.
- case 0x920:
- return "ARM920";
-
- case 0x922:
- return "ARM922";
-
- case 0x926:
- return "ARM926";
-
- case 0x940:
- return "ARM940";
-
- case 0x946:
- return "ARM946";
-
- case 0x966:
- return "ARM966";
-
- case 0x968:
- return "ARM968";
-
- case 0xB02:
- return "ARM11 MPCore";
-
- case 0xB36:
- return "ARM1136";
-
- case 0xB56:
- return "ARM1156";
-
- case 0xB76:
- return "ARM1176";
-
- case 0xC05:
- return "ARM Cortex A5";
-
- case 0xC07:
- return "ARM Cortex-A7 MPCore";
-
- case 0xC08:
- return "ARM Cortex A8";
-
- case 0xC09:
- return "ARM Cortex A9";
-
- case 0xC0C:
- return "ARM Cortex A12";
-
- case 0xC0F:
- return "ARM Cortex A15";
-
- case 0xC14:
- return "ARM Cortex R4";
-
- case 0xC15:
- return "ARM Cortex R5";
-
- case 0xC20:
- return "ARM Cortex M0";
-
- case 0xC21:
- return "ARM Cortex M1";
-
- case 0xC23:
- return "ARM Cortex M3";
-
- case 0xC24:
- return "ARM Cortex M4";
-
- case 0xC60:
- return "ARM Cortex M0+";
-
- case 0xD03:
- return "ARM Cortex A53";
-
- case 0xD07:
- return "ARM Cortex A57 MPCore";
-
-
- default: // Unknown/Not yet added to list.
- return String.format(ctx.getString(R.string.unknown_part_num), partNum);
- }
- }
-}