src/os/bsd/vm/os_bsd.cpp

changeset 4468
c07c102cbad7
parent 4392
7d42f3b08300
child 4471
22ba8c8ce6a6
     1.1 --- a/src/os/bsd/vm/os_bsd.cpp	Thu Jan 17 22:11:57 2013 -0500
     1.2 +++ b/src/os/bsd/vm/os_bsd.cpp	Mon Jan 21 09:00:04 2013 +0100
     1.3 @@ -243,29 +243,32 @@
     1.4    int mib[2];
     1.5    size_t len;
     1.6    int cpu_val;
     1.7 -  u_long mem_val;
     1.8 +  julong mem_val;
     1.9  
    1.10    /* get processors count via hw.ncpus sysctl */
    1.11    mib[0] = CTL_HW;
    1.12    mib[1] = HW_NCPU;
    1.13    len = sizeof(cpu_val);
    1.14    if (sysctl(mib, 2, &cpu_val, &len, NULL, 0) != -1 && cpu_val >= 1) {
    1.15 +       assert(len == sizeof(cpu_val), "unexpected data size");
    1.16         set_processor_count(cpu_val);
    1.17    }
    1.18    else {
    1.19         set_processor_count(1);   // fallback
    1.20    }
    1.21  
    1.22 -  /* get physical memory via hw.usermem sysctl (hw.usermem is used
    1.23 -   * instead of hw.physmem because we need size of allocatable memory
    1.24 +  /* get physical memory via hw.memsize sysctl (hw.memsize is used
    1.25 +   * since it returns a 64 bit value)
    1.26     */
    1.27    mib[0] = CTL_HW;
    1.28 -  mib[1] = HW_USERMEM;
    1.29 +  mib[1] = HW_MEMSIZE;
    1.30    len = sizeof(mem_val);
    1.31 -  if (sysctl(mib, 2, &mem_val, &len, NULL, 0) != -1)
    1.32 +  if (sysctl(mib, 2, &mem_val, &len, NULL, 0) != -1) {
    1.33 +       assert(len == sizeof(mem_val), "unexpected data size");
    1.34         _physical_memory = mem_val;
    1.35 -  else
    1.36 +  } else {
    1.37         _physical_memory = 256*1024*1024;       // fallback (XXXBSD?)
    1.38 +  }
    1.39  
    1.40  #ifdef __OpenBSD__
    1.41    {

mercurial