Removed proc dependancies for init and free (which maintaining exactly

the same functionality).  /proc takes up 90k of kernel space, so it is
nice to avoid using it at all costs.  The only places where it is depended
on is for cetain optional mount/umount features, and for ps and lsmod.
 -Erik
This commit is contained in:
Erik Andersen
2000-02-21 21:26:32 +00:00
parent fa4718efcf
commit d07ee46919
5 changed files with 87 additions and 80 deletions

View File

@@ -23,15 +23,33 @@
#include "internal.h"
#include <stdio.h>
#include <sys/sysinfo.h>
#if ! defined BB_FEATURE_USE_PROCFS
#error Sorry, I depend on the /proc filesystem right now.
#endif
#define DIVISOR 1024
extern int free_main(int argc, char **argv)
{
char *cmd[] = { "cat", "/proc/meminfo", "\0" };
struct sysinfo info;
sysinfo(&info);
info.totalram/=DIVISOR;
info.freeram/=DIVISOR;
info.totalswap/=DIVISOR;
info.freeswap/=DIVISOR;
info.sharedram/=DIVISOR;
info.bufferram/=DIVISOR;
exit(cat_main(3, cmd));
printf("%6s%13s%13s%13s%13s%13s\n", "", "total", "used", "free",
"shared", "buffers");
printf("%6s%13ld%13ld%13ld%13ld%13ld\n", "Mem:", info.totalram,
info.totalram-info.freeram, info.freeram,
info.sharedram, info.bufferram);
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);
exit(TRUE);
}