(cherry picked from commit aa00b5a0ab
)
Conflicts:
platforms/android/service/engine/jni/BinderComponent/TegraDetector.cpp
pull/1640/head
parent
ba26f6d48a
commit
09e66adadc
7 changed files with 52 additions and 79 deletions
@ -1,61 +0,0 @@ |
|||||||
#include "TegraDetector.h" |
|
||||||
#include <zlib.h> |
|
||||||
#include <string.h> |
|
||||||
|
|
||||||
#define KERNEL_CONFIG "/proc/config.gz" |
|
||||||
#define KERNEL_CONFIG_MAX_LINE_WIDTH 512 |
|
||||||
#define KERNEL_CONFIG_TEGRA_MAGIC "CONFIG_ARCH_TEGRA=y" |
|
||||||
#define KERNEL_CONFIG_TEGRA2_MAGIC "CONFIG_ARCH_TEGRA_2x_SOC=y" |
|
||||||
#define KERNEL_CONFIG_TEGRA3_MAGIC "CONFIG_ARCH_TEGRA_3x_SOC=y" |
|
||||||
#define KERNEL_CONFIG_TEGRA4_MAGIC "CONFIG_ARCH_TEGRA_11x_SOC=y" |
|
||||||
#define MAX_DATA_LEN 4096 |
|
||||||
|
|
||||||
int DetectTegra() |
|
||||||
{ |
|
||||||
int result = TEGRA_NOT_TEGRA; |
|
||||||
gzFile kernelConfig = gzopen(KERNEL_CONFIG, "r"); |
|
||||||
if (kernelConfig != 0) |
|
||||||
{ |
|
||||||
char tmpbuf[KERNEL_CONFIG_MAX_LINE_WIDTH]; |
|
||||||
const char *tegra_config = KERNEL_CONFIG_TEGRA_MAGIC; |
|
||||||
const char *tegra2_config = KERNEL_CONFIG_TEGRA2_MAGIC; |
|
||||||
const char *tegra3_config = KERNEL_CONFIG_TEGRA3_MAGIC; |
|
||||||
const char *tegra4_config = KERNEL_CONFIG_TEGRA4_MAGIC; |
|
||||||
int len = strlen(tegra_config); |
|
||||||
int len2 = strlen(tegra2_config); |
|
||||||
int len3 = strlen(tegra3_config); |
|
||||||
int len4 = strlen(tegra4_config); |
|
||||||
while (0 != gzgets(kernelConfig, tmpbuf, KERNEL_CONFIG_MAX_LINE_WIDTH)) |
|
||||||
{ |
|
||||||
if (0 == strncmp(tmpbuf, tegra_config, len)) |
|
||||||
{ |
|
||||||
result = 1; |
|
||||||
} |
|
||||||
|
|
||||||
if (0 == strncmp(tmpbuf, tegra2_config, len2)) |
|
||||||
{ |
|
||||||
result = 2; |
|
||||||
break; |
|
||||||
} |
|
||||||
|
|
||||||
if (0 == strncmp(tmpbuf, tegra3_config, len3)) |
|
||||||
{ |
|
||||||
result = 3; |
|
||||||
break; |
|
||||||
} |
|
||||||
|
|
||||||
if (0 == strncmp(tmpbuf, tegra4_config, len4)) |
|
||||||
{ |
|
||||||
result = 4; |
|
||||||
break; |
|
||||||
} |
|
||||||
} |
|
||||||
gzclose(kernelConfig); |
|
||||||
} |
|
||||||
else |
|
||||||
{ |
|
||||||
result = TEGRA_DETECTOR_ERROR; |
|
||||||
} |
|
||||||
|
|
||||||
return result; |
|
||||||
} |
|
Loading…
Reference in new issue