aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRob Savoye <rob.savoye@linaro.org>2014-07-10 11:53:47 -0600
committerRob Savoye <rob.savoye@linaro.org>2014-07-10 11:53:47 -0600
commit4bf02973b67f5409fd975e620e33751a4aa4f8fb (patch)
treeb0664b87bb02508d04b33506bb71fe913354382d
parent6513ec383f8e986e8f184ff46bf7846c4d0a81de (diff)
cleanup t work on armv7 board
-rw-r--r--loadavg.cc19
1 files changed, 9 insertions, 10 deletions
diff --git a/loadavg.cc b/loadavg.cc
index 2b6c94b..311649c 100644
--- a/loadavg.cc
+++ b/loadavg.cc
@@ -120,7 +120,10 @@ main(int argc, char *argv[])
struct utsname utsname;
memset(&utsname, 0, sizeof(struct utsname));
-
+
+ char *arch = 0;
+ cpuinfo(&arch);
+
while (1) {
DMUCS_DEBUG((stderr, "doing Sopen with %s, %s\n",
serverName.str().c_str(), clientPortStr.str().c_str()));
@@ -134,9 +137,7 @@ main(int argc, char *argv[])
}
// Send initialization msg
- char *arch = 0;
- cpuinfo(&arch);
- if (*utsname.machine == 0) {
+ if (utsname.machine[0] == 0) {
uname(&utsname);
std::string clientReqStr = "host " + std::string(inet_ntoa(in)) +
" " + utsname.machine + "-" + arch;
@@ -229,16 +230,14 @@ cpuinfo(char **arch)
const char *ipat = "microcode";
bool hit = false;
while (fgets(buf, sizeof(buf), cpuinfo) != NULL) {
- if (strncmp(ipat, buf, sizeof(ipat)) == 0) {
- hit = true;
- }
- if (strncmp(armpat, buf, sizeof(armpat)) == 0) {
+ if ((strncmp(ipat, buf, 8) == 0)
+ || (strncmp(armpat, buf, 8) == 0)) {
hit = true;
}
if (hit) {
- char *start = ::strchr(buf, ' ');
- char *end = ::strchr(buf, '\n');
+ char *start = ::strrchr(buf, ' ');
+ char *end = ::strrchr(buf, '\n');
::strncpy(*arch, start+1, end-start-1);
fclose(cpuinfo);
return *arch;