| Index: nspr/pr/src/misc/prsystem.c
|
| diff --git a/nspr/pr/src/misc/prsystem.c b/nspr/pr/src/misc/prsystem.c
|
| index 7a250713a6832327ef55e6019a8d5942f1ce1ba9..eba85fb0b3fa355bac08e3d735990bbc7e814d55 100644
|
| --- a/nspr/pr/src/misc/prsystem.c
|
| +++ b/nspr/pr/src/misc/prsystem.c
|
| @@ -24,7 +24,7 @@
|
|
|
| /* BSD-derived systems use sysctl() to get the number of processors */
|
| #if defined(BSDI) || defined(FREEBSD) || defined(NETBSD) \
|
| - || defined(OPENBSD) || defined(DARWIN)
|
| + || defined(OPENBSD) || defined(DRAGONFLY) || defined(DARWIN)
|
| #define _PR_HAVE_SYSCTL
|
| #include <sys/param.h>
|
| #include <sys/sysctl.h>
|
| @@ -275,15 +275,24 @@ PR_IMPLEMENT(PRUint64) PR_GetPhysicalMemorySize(void)
|
| if (pageSize >= 0 && pageCount >= 0)
|
| bytes = (PRUint64) pageSize * pageCount;
|
|
|
| -#elif defined(NETBSD) || defined(OPENBSD)
|
| +#elif defined(NETBSD) || defined(OPENBSD) \
|
| + || defined(FREEBSD) || defined(DRAGONFLY)
|
|
|
| int mib[2];
|
| int rc;
|
| +#ifdef HW_PHYSMEM64
|
| uint64_t memSize;
|
| +#else
|
| + unsigned long memSize;
|
| +#endif
|
| size_t len = sizeof(memSize);
|
|
|
| mib[0] = CTL_HW;
|
| +#ifdef HW_PHYSMEM64
|
| mib[1] = HW_PHYSMEM64;
|
| +#else
|
| + mib[1] = HW_PHYSMEM;
|
| +#endif
|
| rc = sysctl(mib, 2, &memSize, &len, NULL, 0);
|
| if (-1 != rc) {
|
| bytes = memSize;
|
|
|