void collectData(uint None, uint Unused) { /* #if(DEBUG_LEVEL>0) if(sv->p2p_addr==0) io_printf(IO_STD, "trig!\n"); #endif */ // convert from phys to virt cpu for(uint i=0; i<18; i++) { virt_cpu = sv->p2v_map[i]; // the the virtual cpu id virt_cpu_idle_cntr[virt_cpu] = stored_cpu_idle_cntr[i]; } sark_mem_cpy((void *)&reportMsg.cmd_rc, (void *)&myProfile, sizeof(pro_info_t)); //sark_mem_cpy((void *)reportMsg.data, (void *)stored_cpu_idle_cntr, 18); sark_mem_cpy((void *)reportMsg.data, (void *)virt_cpu_idle_cntr, 18); #if(DEBUG_LEVEL>2) if(sv->p2p_addr==0) { if(streaming==FALSE) io_printf(IO_STD, "no streaming!\n"); else io_printf(IO_STD, "do streaming!\n"); } return; #endif if(streaming==FALSE) return; /* #if(DEBUG_LEVEL>0) io_printf(IO_BUF, "Send!\n"); return; #endif */ spin1_send_sdp_msg (&reportMsg, DEF_TIMEOUT); }
address_t append(address_t* address, void* data, size_t size_bytes){ try(address && data && size_bytes); address_t old_addr = *address; sark_mem_cpy(*address, data, size_bytes); *address += (size_bytes+3) >> 2; return old_addr; } size_t put(address_t* addr, info_t info, void* k, void* v){ size_t k_size = k_size_from_info(info); size_t v_size = v_size_from_info(info); try(k_size && v_size && k && v); append(addr, &info, sizeof(info_t)); append(addr, k, k_size); append(addr, v, v_size); return sizeof(info_t) + MULTIPLE_OF_4(k_size) + MULTIPLE_OF_4(v_size); }