[prev in list] [next in list] [prev in thread] [next in thread] 

List:       busybox
Subject:    Re: [PATCH] top: parse /proc/meminfo differently, save 114 bytes
From:       "gotrunks () gmail ! com" <gotrunks () gmail ! com>
Date:       2011-07-26 19:23:48
Message-ID: CAMYtjAo+qL2xzN9yJYjGCKmhr+Pbbj_z=ZLSsHwaLFbVnzqyNA () mail ! gmail ! com
[Download RAW message or body]

I'm sorry, patch now attached.

["0001-top-parse-proc-meminfo-differently-save-114-bytes.patch" (text/x-patch)]

From 6f780659d237c89926af7d70ab31f29be6931092 Mon Sep 17 00:00:00 2001
From: Pere Orga <gotrunks@gmail.com>
Date: Tue, 26 Jul 2011 21:19:18 +0200
Subject: [PATCH] top: parse /proc/meminfo differently, save 114 bytes


Signed-off-by: Pere Orga <gotrunks@gmail.com>
---
 procps/top.c |   47 +++++++++++++++++------------------------------
 1 files changed, 17 insertions(+), 30 deletions(-)

diff --git a/procps/top.c b/procps/top.c
index 011bbf1..cb74232 100644
--- a/procps/top.c
+++ b/procps/top.c
@@ -449,8 +449,7 @@ static unsigned long display_header(int scr_width, int *lines_rem_p)
 
 	/*
 	 * Old kernels (such as 2.4.x) had a nice summary of memory info that
-	 * we could parse, however this is gone entirely in 2.6. Try parsing
-	 * the old way first, and if that fails, parse each field manually.
+	 * we could parse, however this is gone entirely in 2.6.
 	 *
 	 * First, we read in the first line. Old kernels will have bogus
 	 * strings we don't care about, whereas new kernels will start right
@@ -458,37 +457,25 @@ static unsigned long display_header(int scr_width, int *lines_rem_p)
 	 *                              -- PFM.
 	 */
 	if (fscanf(fp, "MemTotal: %lu %s\n", &total, buf) != 2) {
-		fgets(buf, sizeof(buf), fp);    /* skip first line */
-
-		fscanf(fp, "Mem: %lu %lu %lu %lu %lu %lu",
-			&total, &used, &mfree, &shared, &buffers, &cached);
-		/* convert to kilobytes */
-		used /= 1024;
-		mfree /= 1024;
-		shared /= 1024;
-		buffers /= 1024;
-		cached /= 1024;
-		total /= 1024;
-	} else {
-		/*
-		 * Revert to manual parsing, which incidentally already has the
-		 * sizes in kilobytes. This should be safe for both 2.4 and
-		 * 2.6.
-		 */
-		fscanf(fp, "MemFree: %lu %s\n", &mfree, buf);
+		fgets(buf, sizeof(buf), fp);    /* skip first lines */
+		fgets(buf, sizeof(buf), fp);
+		fgets(buf, sizeof(buf), fp);
+		fscanf(fp, "MemTotal: %lu %s\n", &total, buf);
+	}
+	fscanf(fp, "MemFree: %lu %s\n", &mfree, buf);
 
-		/*
-		 * MemShared: is no longer present in 2.6. Report this as 0,
-		 * to maintain consistent behavior with normal procps.
-		 */
-		if (fscanf(fp, "MemShared: %lu %s\n", &shared, buf) != 2)
-			shared = 0;
+	/*
+	 * MemShared: is no longer present in 2.6. Report this as 0,
+	 * to maintain consistent behavior with normal procps.
+	 */
+	if (fscanf(fp, "MemShared: %lu %s\n", &shared, buf) != 2)
+		shared = 0;
 
-		fscanf(fp, "Buffers: %lu %s\n", &buffers, buf);
-		fscanf(fp, "Cached: %lu %s\n", &cached, buf);
+	fscanf(fp, "Buffers: %lu %s\n", &buffers, buf);
+	fscanf(fp, "Cached: %lu %s\n", &cached, buf);
+
+	used = total - mfree;
 
-		used = total - mfree;
-	}
 	fclose(fp);
 
 	/* output memory info */
-- 
1.7.2.5



_______________________________________________
busybox mailing list
busybox@busybox.net
http://lists.busybox.net/mailman/listinfo/busybox

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic