You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							125 lines
						
					
					
						
							3.6 KiB
						
					
					
				
			
		
		
	
	
							125 lines
						
					
					
						
							3.6 KiB
						
					
					
				# --- SDE-COPYRIGHT-NOTE-BEGIN --- | 
						|
# This copyright note is auto-generated by ./scripts/Create-CopyPatch. | 
						|
# | 
						|
# Filename: package/.../embutils/free.patch | 
						|
# Copyright (C) 2007 The OpenSDE Project | 
						|
# Copyright (C) 2004 - 2006 The T2 SDE Project | 
						|
# | 
						|
# More information can be found in the files COPYING and README. | 
						|
# | 
						|
# This patch file is dual-licensed. It is available under the license the | 
						|
# patched project is licensed under, as long as it is an OpenSource license | 
						|
# as defined at http://www.opensource.org/ (e.g. BSD, X11) or under the terms | 
						|
# of the GNU General Public License as published by the Free Software | 
						|
# Foundation; either version 2 of the License, or (at your option) any later | 
						|
# version. | 
						|
# --- SDE-COPYRIGHT-NOTE-END --- | 
						|
 | 
						|
A memory foodprint overview can be quite handy. | 
						|
 | 
						|
  Rene Rebe <[email protected]> | 
						|
 | 
						|
--- ./Makefile.orig	2007-03-28 00:46:09.000000000 -0400 | 
						|
+++ ./Makefile	2007-03-28 00:46:49.000000000 -0400 | 
						|
@@ -12,7 +12,7 @@ | 
						|
 domainname id ln mv cp yes which cat rm wc ls whoami mkfifo head install \ | 
						|
 sosrm soscp sosmv sosln soslns md5sum sleep2 allinone uniq tr mesg du \ | 
						|
 uuencode uudecode nohup nice cmp mktemp truncate strings test date \ | 
						|
-printenv chrootuid renice | 
						|
+printenv chrootuid renice free | 
						|
  | 
						|
 OS:=$(shell uname) | 
						|
 ifeq ($(OS),Linux) | 
						|
--- /dev/null	2005-02-03 08:15:19.790903464 +0100 | 
						|
+++ embutils-0.17-free/free.c	2005-02-07 01:35:28.941469088 +0100 | 
						|
@@ -0,0 +1,90 @@ | 
						|
+#include <unistd.h> | 
						|
+#include <fcntl.h> | 
						|
+#include <sys/vfs.h> | 
						|
+#include <stdlib.h> | 
						|
+ | 
						|
+/* Rene Rebe <[email protected]> | 
						|
+ | 
						|
+/* TODO: maybe support some options ... */ | 
						|
+ | 
						|
+#include "fmt_str.c" | 
						|
+#include "fmt_ulong.c" | 
						|
+#include "fmt_ulongpadright.c" | 
						|
+ | 
						|
+int main(int argc, char* argv[]) { | 
						|
+  int fd=open("/proc/meminfo",O_RDONLY); | 
						|
+  char buf[4096]; | 
						|
+  int len=read(fd,buf,4096); | 
						|
+  char *line, *max; | 
						|
+ | 
						|
+  struct meminfo_t { | 
						|
+    const char* tag; | 
						|
+    int val;} meminfo [] = { | 
						|
+    "MemTotal", 0, | 
						|
+    "MemFree", 0, | 
						|
+    "Buffers", 0, | 
						|
+    "Cached", 0, | 
						|
+    "SwapTotal", 0, | 
						|
+    "SwapFree", 0, | 
						|
+    0, 0}; | 
						|
+ | 
						|
+  line = buf; | 
						|
+  max = buf + len; | 
						|
+  while (line < max) | 
						|
+  { | 
						|
+    struct meminfo_t* i = &meminfo[0]; | 
						|
+    char* tmp2 = strchr(line, ' '); | 
						|
+    *(--tmp2) = 0; | 
						|
+ | 
						|
+    for (;i->tag; i++) { | 
						|
+      if ( strcmp(line, i->tag) == 0 ) { | 
						|
+        tmp2++; while (*tmp2 == ' ') tmp2++; | 
						|
+	line = tmp2; | 
						|
+	tmp2 = strchr(tmp2, '\n'); | 
						|
+	*tmp2 = 0; | 
						|
+	i->val = atol(line); | 
						|
+        line = tmp2 + 1; | 
						|
+	break; | 
						|
+      } | 
						|
+    } | 
						|
+    if (i->tag == 0) | 
						|
+      line = strchr(tmp2 + 1, '\n') + 1; | 
						|
+  } | 
						|
+ | 
						|
+  len = 0; | 
						|
+  len+=fmt_str (buf+len,"             total       used       free     shared    buffers     cached\n"); | 
						|
+ | 
						|
+  len+=fmt_str (buf+len, "Mem:    "); | 
						|
+  len+=fmt_ulongpadright(buf+len,meminfo[0].val,10); | 
						|
+  buf[len]=' '; ++len; | 
						|
+  len+=fmt_ulongpadright(buf+len,meminfo[0].val - meminfo[1].val,10); | 
						|
+  buf[len]=' '; ++len; | 
						|
+  len+=fmt_ulongpadright(buf+len,meminfo[1].val,10); | 
						|
+  buf[len]=' '; ++len; | 
						|
+  len+=fmt_ulongpadright(buf+len,0,10); | 
						|
+  buf[len]=' '; ++len; | 
						|
+  len+=fmt_ulongpadright(buf+len,meminfo[2].val,10); | 
						|
+  buf[len]=' '; ++len; | 
						|
+  len+=fmt_ulongpadright(buf+len,meminfo[3].val,10); | 
						|
+  buf[len]='\n'; ++len; | 
						|
+ | 
						|
+  len += fmt_str (buf+len, "-/+ buffers/cache: "); | 
						|
+  { | 
						|
+    int bc = meminfo[2].val + meminfo[3].val; | 
						|
+    len+=fmt_ulongpadright(buf+len,meminfo[0].val - meminfo[1].val - bc,10); | 
						|
+    buf[len]=' '; ++len; | 
						|
+    len+=fmt_ulongpadright(buf+len,meminfo[2].val + bc,10); | 
						|
+    buf[len]='\n'; ++len; | 
						|
+  } | 
						|
+ | 
						|
+  len+=fmt_str (buf+len, "Swap:   "); | 
						|
+  len+=fmt_ulongpadright(buf+len,meminfo[4].val,10); | 
						|
+  buf[len]=' '; ++len; | 
						|
+  len+=fmt_ulongpadright(buf+len,meminfo[4].val - meminfo[5].val,10); | 
						|
+  buf[len]=' '; ++len; | 
						|
+  len+=fmt_ulongpadright(buf+len,meminfo[5].val,10); | 
						|
+  buf[len] = 0; | 
						|
+  puts(buf); | 
						|
+ | 
						|
+  return 0; | 
						|
+}
 | 
						|
 |