void MC_ignore_heap(void *address, size_t size) { if (mc_mode != MC_MODE_CLIENT) return; xbt_mheap_t heap = mmalloc_get_current_heap(); s_mc_heap_ignore_region_t region; memset(®ion, 0, sizeof(region)); region.address = address; region.size = size; region.block = ((char *) address - (char *) heap->heapbase) / BLOCKSIZE + 1; if (heap->heapinfo[region.block].type == 0) { region.fragment = -1; heap->heapinfo[region.block].busy_block.ignore++; } else { region.fragment = ((uintptr_t) (ADDR2UINT(address) % (BLOCKSIZE))) >> heap->heapinfo[region.block].type; heap->heapinfo[region.block].busy_frag.ignore[region.fragment]++; } s_mc_ignore_heap_message_t message; message.type = MC_MESSAGE_IGNORE_HEAP; message.region = region; if (MC_protocol_send(mc_client->fd, &message, sizeof(message))) xbt_die("Could not send ignored region to MCer"); }
int MC_protocol_send_simple_message(int socket, e_mc_message_type type) { s_mc_message_t message; message.type = type; return MC_protocol_send(socket, &message, sizeof(message)); }
typename std::enable_if< std::is_class<M>::value && std::is_trivial<M>::value, int >::type send_message(M const& m) { return MC_protocol_send(this->socket_, &m, sizeof(M)); }