++inplace_mremap;
atomic_increment (&inplace_mremap);
mremap (void *start, size_t old_len, size_t len, int flags){  void *result = NULL;  /* Determine real implementation if not already happened.  */  if (__builtin_expect (initialized <= 0, 0))    {      if (initialized == -1)	return NULL;      me ();    }  /* Always get a block.  We don't need extra memory.  */  result = (*mremapp) (start, old_len, len, flags);  if (!not_me && trace_mmap)    {      /* Keep track of number of calls.  */      ++calls[idx_mremap];      if (len > old_len)	{	  /* Keep track of total memory consumption for `malloc'.  */	  total[idx_mremap] += len - old_len;	  /* Keep track of total memory requirement.  */	  grand_total += len - old_len;	}      /* Remember the size of the request.  */      if (len < 65536)	++histogram[len / 16];      else	++large;      /* Total number of calls of any of the functions.  */      ++calls_total;      /* Check for failures.  */      if (result == NULL)	++failed[idx_mremap];      else	{	  /* Record whether the reduction/increase happened in place.  */	  if (start == result)	    ++inplace_mremap;	  /* Was the buffer increased?  */	  if (old_len > len)	    ++decreasing_mremap;	  /* Update the allocation data and write out the records if	     necessary.  Note the first parameter is NULL which means	     the size is not tracked.  */	  update_data (NULL, len, old_len);	}    }  /* Return the pointer to the user buffer.  */  return result;}