File: megabytes.cc

package info (click to toggle)
bobcat 6.11.00-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 15,292 kB
  • sloc: cpp: 21,370; fortran: 6,507; makefile: 2,787; sh: 724; perl: 401; ansic: 26
file content (20 lines) | stat: -rw-r--r-- 639 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#define XERR "memoryaccess"
#include "memoryaccess.ih"

    // by cptsizes.cc

    // each segment is at least 1 MB large, 10 segments can be
    // used before extend is called.

// static
void MemoryAccess::megaBytes(size_t *nBlocks, size_t *blockSize, 
                             size_t factor) 
{
    size_t ppm = divPlus(1024 * 1024, s_pageSize);  // #pages per MB

                                                    // segm. size >= x MB
    *blockSize = divPlus(factor, 10) * ppm * s_pageSize; 

    *nBlocks = max(s_minimum,       // #potentially avail. segments
                   divPlus(factor * 1024 * 1024, *blockSize));
}