MCPcopy Create free account
hub / github.com/bloomberg/comdb2 / init_mparams

Function init_mparams

dlmalloc/dlmalloc.c:2496–2570  ·  view source on GitHub ↗

Initialize mparams */

Source from the content-addressed store, hash-verified

2494
2495/* Initialize mparams */
2496static int init_mparams(void) {
2497 if (mparams.page_size == 0) {
2498 size_t s;
2499
2500 mparams.nice = 1;
2501 mparams.mmap_threshold = DEFAULT_MMAP_THRESHOLD;
2502 mparams.trim_threshold = DEFAULT_TRIM_THRESHOLD;
2503#if MORECORE_CONTIGUOUS
2504 mparams.default_mflags = USE_LOCK_BIT|USE_MMAP_BIT;
2505#else /* MORECORE_CONTIGUOUS */
2506 mparams.default_mflags = USE_LOCK_BIT|USE_MMAP_BIT|USE_NONCONTIGUOUS_BIT;
2507#endif /* MORECORE_CONTIGUOUS */
2508
2509#if (FOOTERS && !INSECURE)
2510 {
2511#if USE_DEV_RANDOM
2512 int fd;
2513 unsigned char buf[sizeof(size_t)];
2514 /* Try to use /dev/urandom, else fall back on using time */
2515 if ((fd = open("/dev/urandom", O_RDONLY)) >= 0 &&
2516 read(fd, buf, sizeof(buf)) == sizeof(buf)) {
2517 s = *((size_t *) buf);
2518 close(fd);
2519 }
2520 else
2521#endif /* USE_DEV_RANDOM */
2522 s = (size_t)(time(0) ^ (size_t)0x55555555U);
2523
2524 s |= (size_t)8U; /* ensure nonzero */
2525 s &= ~(size_t)7U; /* improve chances of fault for bad values */
2526
2527 }
2528#else /* (FOOTERS && !INSECURE) */
2529 s = (size_t)0x58585858U;
2530#endif /* (FOOTERS && !INSECURE) */
2531 ACQUIRE_MAGIC_INIT_LOCK();
2532 if (mparams.magic == 0) {
2533 mparams.magic = s;
2534 /* Set up lock for main malloc area */
2535 INITIAL_LOCK(&gm->mutex);
2536 gm->mflags = mparams.default_mflags;
2537 }
2538 RELEASE_MAGIC_INIT_LOCK();
2539
2540#ifndef WIN32
2541 mparams.page_size = malloc_getpagesize;
2542 mparams.granularity = ((DEFAULT_GRANULARITY != 0)?
2543 DEFAULT_GRANULARITY : mparams.page_size);
2544#else /* WIN32 */
2545 {
2546 SYSTEM_INFO system_info;
2547 GetSystemInfo(&system_info);
2548 mparams.page_size = system_info.dwPageSize;
2549 mparams.granularity = system_info.dwAllocationGranularity;
2550 }
2551#endif /* WIN32 */
2552
2553 /* Sanity-check configuration:

Callers 6

change_mparamFunction · 0.85
sys_allocFunction · 0.85
dlvallocFunction · 0.85
dlpvallocFunction · 0.85
create_mspaceFunction · 0.85
create_mspace_with_baseFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected