--- procps-2.0.5/proc/sysinfo.h.orig Tue Oct 12 06:35:15 1999 +++ procps-2.0.5/proc/sysinfo.h Tue Oct 12 06:35:25 1999 @@ -9,7 +9,7 @@ extern int loadavg(double *av1, double *av5, double *av15); extern int uptime (double *uptime_secs, double *idle_secs); -extern unsigned** meminfo(void); +extern unsigned long long ** meminfo(void); enum meminfo_row { meminfo_main = 0, meminfo_swap }; --- procps-2.0.5/proc/sysinfo.c.orig Tue Oct 12 05:45:40 1999 +++ procps-2.0.5/proc/sysinfo.c Tue Oct 12 06:34:59 1999 @@ -192,9 +192,9 @@ */ #define MAX_ROW 3 /* these are a little liberal for flexibility */ #define MAX_COL 7 -unsigned **meminfo(void){ - static unsigned *row[MAX_ROW + 1]; /* row pointers */ - static unsigned num[MAX_ROW * MAX_COL]; /* number storage */ +unsigned long long **meminfo(void){ + static unsigned long long *row[MAX_ROW + 1]; /* row pointers */ + static unsigned long long num[MAX_ROW * MAX_COL]; /* number storage */ char *p; char fieldbuf[12]; /* bigger than any field name or size in kb */ int i, j, k, l; @@ -223,43 +223,43 @@ sscanf(p,"%11s%n",fieldbuf,&k); if(!strcmp(fieldbuf,"MemTotal:")) { p+=k; - sscanf(p," %d",&(row[meminfo_main][meminfo_total])); + sscanf(p," %Ld",&(row[meminfo_main][meminfo_total])); row[meminfo_main][meminfo_total]<<=10; while(*p++ != '\n'); } else if(!strcmp(fieldbuf,"MemFree:")) { p+=k; - sscanf(p," %d",&(row[meminfo_main][meminfo_free])); + sscanf(p," %Ld",&(row[meminfo_main][meminfo_free])); row[meminfo_main][meminfo_free]<<=10; while(*p++ != '\n'); } else if(!strcmp(fieldbuf,"MemShared:")) { p+=k; - sscanf(p," %d",&(row[meminfo_main][meminfo_shared])); + sscanf(p," %Ld",&(row[meminfo_main][meminfo_shared])); row[meminfo_main][meminfo_shared]<<=10; while(*p++ != '\n'); } else if(!strcmp(fieldbuf,"Buffers:")) { p+=k; - sscanf(p," %d",&(row[meminfo_main][meminfo_buffers])); + sscanf(p," %Ld",&(row[meminfo_main][meminfo_buffers])); row[meminfo_main][meminfo_buffers]<<=10; while(*p++ != '\n'); } else if(!strcmp(fieldbuf,"Cached:")) { p+=k; - sscanf(p," %d",&(row[meminfo_main][meminfo_cached])); + sscanf(p," %Ld",&(row[meminfo_main][meminfo_cached])); row[meminfo_main][meminfo_cached]<<=10; while(*p++ != '\n'); } else if(!strcmp(fieldbuf,"SwapTotal:")) { p+=k; - sscanf(p," %d",&(row[meminfo_swap][meminfo_total])); + sscanf(p," %Ld",&(row[meminfo_swap][meminfo_total])); row[meminfo_swap][meminfo_total]<<=10; while(*p++ != '\n'); } else if(!strcmp(fieldbuf,"SwapFree:")) { p+=k; - sscanf(p," %d",&(row[meminfo_swap][meminfo_free])); + sscanf(p," %Ld",&(row[meminfo_swap][meminfo_free])); row[meminfo_swap][meminfo_free]<<=10; while(*p++ != '\n'); } --- procps-2.0.5/top.c.orig Tue Oct 12 06:31:49 1999 +++ procps-2.0.5/top.c Tue Oct 12 06:37:55 1999 @@ -1155,7 +1155,7 @@ /* * Show task info. */ - pmem = p_table[count]->resident * 1000 / (main_mem / 4096); + pmem = p_table[count]->resident * 1000 / (main_mem / 4); show_task_info(p_table[count], pmem); if (!Batch) ActualLines++; @@ -1195,7 +1195,7 @@ */ unsigned show_meminfo(void) { - unsigned **mem; + unsigned long long **mem; if (!(mem = meminfo()) || /* read+parse /proc/meminfo */ mem[meminfo_main][meminfo_total] == 0) { /* cannot normalize mem usage */ @@ -1203,7 +1203,7 @@ error_end(1); } if (show_memory) { - printf("Mem: %6dK av, %6dK used, %6dK free, %6dK shrd, %6dK buff", + printf("Mem: %7LdK av, %7LdK used, %7LdK free, %7LdK shrd, %7LdK buff", mem[meminfo_main][meminfo_total] >> 10, mem[meminfo_main][meminfo_used] >> 10, mem[meminfo_main][meminfo_free] >> 10, @@ -1211,7 +1211,7 @@ mem[meminfo_main][meminfo_buffers] >> 10); PUTP(top_clrtoeol); putchar('\n'); - printf("Swap: %6dK av, %6dK used, %6dK free %6dK cached", + printf("Swap: %7LdK av, %7LdK used, %7LdK free %7LdK cached", mem[meminfo_swap][meminfo_total] >> 10, mem[meminfo_swap][meminfo_used] >> 10, mem[meminfo_swap][meminfo_free] >> 10, @@ -1222,7 +1222,7 @@ PUTP(me); PUTP(top_clrtoeol); putchar('\n'); - return mem[meminfo_main][meminfo_total]; + return mem[meminfo_main][meminfo_total] >> 10; } /* --- procps-2.0.5/free.c.orig Tue Oct 12 05:45:18 1999 +++ procps-2.0.5/free.c Tue Oct 12 05:59:27 1999 @@ -20,7 +20,7 @@ char *titles[6], name[32]; int i, n = 0, col[6] = {0}, rtime = 0, old_fmt = 0, first_line; int old_meminfo = 0; - unsigned **mem; + long long **mem; static int sum[6]; /* statics get initialized to zero */ @@ -114,25 +114,25 @@ exit (1); } printf(" total used free shared buffers cached\n"); - printf ("%-7s %10d %10d %10d %10d %10d %10d\n", "Mem:", + printf ("%-7s %10Ld %10Ld %10Ld %10Ld %10Ld %10Ld\n", "Mem:", mem[meminfo_main][meminfo_total] >> byteshift, mem[meminfo_main][meminfo_used] >> byteshift, mem[meminfo_main][meminfo_free] >> byteshift, mem[meminfo_main][meminfo_shared] >> byteshift, mem[meminfo_main][meminfo_buffers] >> byteshift, mem[meminfo_main][meminfo_cached] >> byteshift); - if (!old_fmt) printf("-/+ buffers/cache: %10d %10d\n", + if (!old_fmt) printf("-/+ buffers/cache: %10Ld %10Ld\n", (mem[meminfo_main][meminfo_used] -mem[meminfo_main][meminfo_buffers] -mem[meminfo_main][meminfo_cached])>> byteshift, (mem[meminfo_main][meminfo_free] +mem[meminfo_main][meminfo_buffers] +mem[meminfo_main][meminfo_cached])>> byteshift); - printf ("%-7s %10d %10d %10d\n", "Swap:", + printf ("%-7s %10Ld %10Ld %10Ld\n", "Swap:", mem[meminfo_swap][meminfo_total] >> byteshift, mem[meminfo_swap][meminfo_used] >> byteshift, mem[meminfo_swap][meminfo_free] >> byteshift); - if (total == 1) printf("%-7s %10d %10d %10d\n", "Total:", + if (total == 1) printf("%-7s %10Ld %10Ld %10Ld\n", "Total:", (mem[meminfo_main][meminfo_total] + mem[meminfo_swap][meminfo_total]) >> byteshift, (mem[meminfo_main][meminfo_used] + --- procps-2.0.5/vmstat.c.orig Tue Oct 12 06:31:54 1999 +++ procps-2.0.5/vmstat.c Tue Oct 12 06:38:47 1999 @@ -233,12 +233,12 @@ } void getmeminfo(unsigned *memfree, unsigned *membuff, unsigned *swapused, unsigned *memcache) { - unsigned** mem; + unsigned long long** mem; if (!(mem = meminfo())) crash("/proc/meminfo"); *memfree = mem[meminfo_main][meminfo_free] >> 10; /* bytes to k */ *membuff = mem[meminfo_main][meminfo_buffers] >> 10; *swapused = mem[meminfo_swap][meminfo_used] >> 10; - *memcache = mem[meminfo_main][meminfo_cached] >> 10; + *memcache = mem[meminfo_main][meminfo_cached] >> 10; } void getrunners(unsigned int *running, unsigned int *blocked,