| 5499 | #if MSPACES |
| 5500 | |
| 5501 | static mstate init_user_mstate(char* tbase, size_t tsize) { |
| 5502 | size_t msize = pad_request(sizeof(struct malloc_state)); |
| 5503 | mchunkptr mn; |
| 5504 | mchunkptr msp = align_as_chunk(tbase); |
| 5505 | mstate m = (mstate)(chunk2mem(msp)); |
| 5506 | memset(m, 0, msize); |
| 5507 | (void)INITIAL_LOCK(&m->mutex); |
| 5508 | msp->head = (msize|INUSE_BITS); |
| 5509 | m->seg.base = m->least_addr = tbase; |
| 5510 | m->seg.size = m->footprint = m->max_footprint = tsize; |
| 5511 | m->magic = mparams.magic; |
| 5512 | m->release_checks = MAX_RELEASE_CHECK_RATE; |
| 5513 | m->mflags = mparams.default_mflags; |
| 5514 | m->extp = 0; |
| 5515 | m->exts = 0; |
| 5516 | disable_contiguous(m); |
| 5517 | init_bins(m); |
| 5518 | mn = next_chunk(mem2chunk(m)); |
| 5519 | init_top(m, mn, (size_t)((tbase + tsize) - (char*)mn) - TOP_FOOT_SIZE); |
| 5520 | check_top_chunk(m, m->top); |
| 5521 | return m; |
| 5522 | } |
| 5523 | |
| 5524 | mspace create_mspace(size_t capacity, int locked) { |
| 5525 | mstate m = 0; |
no test coverage detected