diff options
| author | Eric Andersen <andersen@codepoet.org> | 2000-09-10 16:13:41 +0000 |
|---|---|---|
| committer | Eric Andersen <andersen@codepoet.org> | 2000-09-10 16:13:41 +0000 |
| commit | cbb61c78ae97e5e205cb4403f4f458a36ffec582 (patch) | |
| tree | 291171dd2b4184f214acb798c0fa6ffce2b938e3 | |
| parent | 73de6561cae5e8707f66ba08203c082cd86e9850 (diff) | |
| download | busybox-w32-cbb61c78ae97e5e205cb4403f4f458a36ffec582.tar.gz busybox-w32-cbb61c78ae97e5e205cb4403f4f458a36ffec582.tar.bz2 busybox-w32-cbb61c78ae97e5e205cb4403f4f458a36ffec582.zip | |
Make init handle current 2.4.x sysinfo behavior
-Erik
| -rw-r--r-- | init.c | 21 | ||||
| -rw-r--r-- | init/init.c | 21 |
2 files changed, 18 insertions, 24 deletions
| @@ -296,20 +296,17 @@ static int check_free_memory() | |||
| 296 | printf("Error checking free memory: %s\n", strerror(errno)); | 296 | printf("Error checking free memory: %s\n", strerror(errno)); |
| 297 | return -1; | 297 | return -1; |
| 298 | } | 298 | } |
| 299 | /* Kernels prior to 2.4.x will return info.mem_unit==0, so cope... */ | ||
| 299 | if (info.mem_unit==0) { | 300 | if (info.mem_unit==0) { |
| 300 | /* Looks like we have a kernel prior to Linux 2.4.x */ | 301 | info.mem_unit=1; |
| 301 | info.mem_unit=1024; | ||
| 302 | info.totalram/=info.mem_unit; | ||
| 303 | info.totalswap/=info.mem_unit; | ||
| 304 | } else { | ||
| 305 | /* Bah. Linux 2.4.x completely changed sysinfo. This can in theory | ||
| 306 | overflow a 32 bit unsigned long, but who puts more then 4GiB ram+swap | ||
| 307 | on an embedded system? */ | ||
| 308 | info.mem_unit/=1024; | ||
| 309 | info.totalram*=info.mem_unit; | ||
| 310 | info.totalswap*=info.mem_unit; | ||
| 311 | } | 302 | } |
| 312 | 303 | info.mem_unit*=1024; | |
| 304 | |||
| 305 | /* Note: These values can in theory overflow a 32 bit unsigned long (i.e. | ||
| 306 | * mem >= Gib), but who puts more then 4GiB ram+swap on an embedded | ||
| 307 | * system? */ | ||
| 308 | info.totalram/=info.mem_unit; | ||
| 309 | info.totalswap/=info.mem_unit; | ||
| 313 | return(info.totalram+info.totalswap); | 310 | return(info.totalram+info.totalswap); |
| 314 | } | 311 | } |
| 315 | 312 | ||
diff --git a/init/init.c b/init/init.c index 91a72550b..b532ea88f 100644 --- a/init/init.c +++ b/init/init.c | |||
| @@ -296,20 +296,17 @@ static int check_free_memory() | |||
| 296 | printf("Error checking free memory: %s\n", strerror(errno)); | 296 | printf("Error checking free memory: %s\n", strerror(errno)); |
| 297 | return -1; | 297 | return -1; |
| 298 | } | 298 | } |
| 299 | /* Kernels prior to 2.4.x will return info.mem_unit==0, so cope... */ | ||
| 299 | if (info.mem_unit==0) { | 300 | if (info.mem_unit==0) { |
| 300 | /* Looks like we have a kernel prior to Linux 2.4.x */ | 301 | info.mem_unit=1; |
| 301 | info.mem_unit=1024; | ||
| 302 | info.totalram/=info.mem_unit; | ||
| 303 | info.totalswap/=info.mem_unit; | ||
| 304 | } else { | ||
| 305 | /* Bah. Linux 2.4.x completely changed sysinfo. This can in theory | ||
| 306 | overflow a 32 bit unsigned long, but who puts more then 4GiB ram+swap | ||
| 307 | on an embedded system? */ | ||
| 308 | info.mem_unit/=1024; | ||
| 309 | info.totalram*=info.mem_unit; | ||
| 310 | info.totalswap*=info.mem_unit; | ||
| 311 | } | 302 | } |
| 312 | 303 | info.mem_unit*=1024; | |
| 304 | |||
| 305 | /* Note: These values can in theory overflow a 32 bit unsigned long (i.e. | ||
| 306 | * mem >= Gib), but who puts more then 4GiB ram+swap on an embedded | ||
| 307 | * system? */ | ||
| 308 | info.totalram/=info.mem_unit; | ||
| 309 | info.totalswap/=info.mem_unit; | ||
| 313 | return(info.totalram+info.totalswap); | 310 | return(info.totalram+info.totalswap); |
| 314 | } | 311 | } |
| 315 | 312 | ||
