diff options
| author | Eric Andersen <andersen@codepoet.org> | 2003-01-11 20:40:49 +0000 | 
|---|---|---|
| committer | Eric Andersen <andersen@codepoet.org> | 2003-01-11 20:40:49 +0000 | 
| commit | 1dcf218e60849b58b1efa7ce43cf0c4e14f95617 (patch) | |
| tree | db0f8169a80bae8a1af4a2a9eed91fbfc7fd23e6 | |
| parent | 575c78274a7458cc9459c6e07c5ff33a103c3f3c (diff) | |
| download | busybox-1dcf218e60849b58b1efa7ce43cf0c4e14f95617.tar.gz | |
Patch from Daniel J Walsh at redhat to make free work for systems
with more than 1 GB of memory...
| -rw-r--r-- | procps/free.c | 36 | 
1 files changed, 26 insertions, 10 deletions
diff --git a/procps/free.c b/procps/free.c index cdc0d358c..4a5469b10 100644 --- a/procps/free.c +++ b/procps/free.c @@ -37,15 +37,30 @@ extern int free_main(int argc, char **argv)  	if (info.mem_unit==0) {  		info.mem_unit=1;  	} -	info.mem_unit*=1024; -	 -	/* TODO:  Make all this stuff not overflow when mem >= 4 Gib */ -	info.totalram/=info.mem_unit; -	info.freeram/=info.mem_unit; -	info.totalswap/=info.mem_unit; -	info.freeswap/=info.mem_unit; -	info.sharedram/=info.mem_unit; -	info.bufferram/=info.mem_unit; +	if ( info.mem_unit == 1 ) { +		info.mem_unit=1024; + +		/* TODO:  Make all this stuff not overflow when mem >= 4 Gib */ +		info.totalram/=info.mem_unit; +		info.freeram/=info.mem_unit; +#ifndef __uClinux__ +		info.totalswap/=info.mem_unit; +		info.freeswap/=info.mem_unit; +#endif +		info.sharedram/=info.mem_unit; +		info.bufferram/=info.mem_unit; +	} else { +		info.mem_unit/=1024; +		/* TODO:  Make all this stuff not overflow when mem >= 4 Gib */ +		info.totalram*=info.mem_unit; +		info.freeram*=info.mem_unit; +#ifndef __uClinux__ +		info.totalswap*=info.mem_unit; +		info.freeswap*=info.mem_unit; +#endif +		info.sharedram*=info.mem_unit; +		info.bufferram*=info.mem_unit; +	}  	if (argc > 1 && **(argv + 1) == '-')  		show_usage(); @@ -57,13 +72,14 @@ extern int free_main(int argc, char **argv)  			info.totalram-info.freeram, info.freeram,   			info.sharedram, info.bufferram); +#ifndef __uClinux__  	printf("%6s%13ld%13ld%13ld\n", "Swap:", info.totalswap,  			info.totalswap-info.freeswap, info.freeswap);  	printf("%6s%13ld%13ld%13ld\n", "Total:", info.totalram+info.totalswap,  			(info.totalram-info.freeram)+(info.totalswap-info.freeswap),  			info.freeram+info.freeswap); +#endif  	return EXIT_SUCCESS;  } -  | 
