uv_err_t uv_cpu_info(uv_cpu_info_t** cpu_infos, int* count) { unsigned int numcpus; uv_cpu_info_t* ci; *cpu_infos = NULL; *count = 0; numcpus = sysconf(_SC_NPROCESSORS_ONLN); assert(numcpus != (unsigned int) -1); assert(numcpus != 0); ci = calloc(numcpus, sizeof(*ci)); if (ci == NULL) return uv__new_sys_error(ENOMEM); read_models(numcpus, ci); read_times(numcpus, ci); /* read_models() on x86 also reads the CPU speed from /proc/cpuinfo */ if (ci[0].speed == 0) read_speeds(numcpus, ci); *cpu_infos = ci; *count = numcpus; return uv_ok_; }
void DebuggerIPCServer::handleBacktrace(PFPSimDebugger::BacktraceMsg msg) { int id; if (msg.has_packet_id()) { try { id = stoi(msg.packet_id()); } catch (const std::exception& ex) { std::cout << ex.what() << std::endl; sendRequestFailed(); } } else { id = data_manager->whoami(); } DebuggerPacket *pk = data_manager->getPacket(id); if (pk != NULL) { std::vector<DebuggerPacket::PacketLocation> trace = pk->getTrace(); const int size = trace.size(); std::vector<std::string> modules(size); std::vector<double> read_times(size); std::vector<double> write_times(size); for (int i = 0; i < size; i++) { modules[i] = trace[i].module; read_times[i] = trace[i].read_time; write_times[i] = trace[i].write_time; } BacktraceReplyMessage *message = new BacktraceReplyMessage(id, modules.data(), read_times.data(), write_times.data(), size); send(message); delete message; } else { sendRequestFailed(); } }
uv_err_t uv_cpu_info(uv_cpu_info_t** cpu_infos, int* count) { unsigned int numcpus; uv_cpu_info_t* ci; *cpu_infos = NULL; *count = 0; numcpus = sysconf(_SC_NPROCESSORS_ONLN); assert(numcpus != (unsigned int)-1); assert(numcpus != 0); ci = calloc(numcpus, sizeof(*ci)); if (ci == NULL) return uv__new_sys_error(ENOMEM); if (read_models(numcpus, ci)) { SAVE_ERRNO(uv_free_cpu_info(ci, numcpus)); return uv__new_sys_error(errno); } if (read_times(numcpus, ci)) { SAVE_ERRNO(uv_free_cpu_info(ci, numcpus)); return uv__new_sys_error(errno); } /* read_models() on x86 also reads the CPU speed from /proc/cpuinfo. * We don't check for errors here. Worst case, the field is left zero. */ if (ci[0].speed == 0) read_speeds(numcpus, ci); *cpu_infos = ci; *count = numcpus; return uv_ok_; }
//Näihin saa muokata omat funktiot int read_item(Titem *item) { Titem aux; fflush(stdin); read_times(&aux); *item=aux; return 1; }
void read_BigFloatAnimBlock(FILE *lk_m2_file, LKAnimationBlock *ptrBlock, AnimRefs *ptrAnimRefs, BigFloat_LKSubBlock **ptrDataBlock, LKModelAnimation *AnimList, FILE **anim_files) { if (ptrBlock->Times.n > 0) { //Layer 1 read_layer1(lk_m2_file, ptrBlock, ptrAnimRefs); //Layer 2 (*ptrDataBlock) = malloc( ptrBlock->Times.n * sizeof(BigFloat_LKSubBlock)); //Each Array_Ref leads to an array of elements (and there are Times.n of them, as seen previously) int j; for (j = 0; j < ptrBlock->Times.n; j++) { int real_pos = get_RealPos(j, AnimList); if ((AnimList[j].flags & 0x130) == 0) { //Open .anim file FILE *anim_file = anim_files[real_pos]; read_times(anim_file, ptrAnimRefs, &(*ptrDataBlock)[j].times, j, real_pos); if (ptrAnimRefs->keys[real_pos].n > 0) { (*ptrDataBlock)[j].keys = malloc( ptrAnimRefs->keys[real_pos].n * sizeof(BigFloat)); fseek(anim_file, ptrAnimRefs->keys[real_pos].ofs, SEEK_SET); fread((*ptrDataBlock)[j].keys, sizeof(BigFloat), ptrAnimRefs->keys[real_pos].n, anim_file); } } else { read_times(lk_m2_file, ptrAnimRefs, &(*ptrDataBlock)[j].times, j, real_pos); if (ptrAnimRefs->keys[real_pos].n > 0) { (*ptrDataBlock)[j].keys = malloc( ptrAnimRefs->keys[real_pos].n * sizeof(BigFloat)); fseek(lk_m2_file, ptrAnimRefs->keys[real_pos].ofs, SEEK_SET); fread((*ptrDataBlock)[j].keys, sizeof(BigFloat), ptrAnimRefs->keys[real_pos].n, lk_m2_file); } } } } }
int uv_cpu_info(uv_cpu_info_t** cpu_infos, int* count) { unsigned int numcpus; uv_cpu_info_t* ci; int err; FILE* statfile_fp; *cpu_infos = NULL; *count = 0; statfile_fp = uv__open_file("/proc/stat"); if (statfile_fp == NULL) return UV__ERR(errno); err = uv__cpu_num(statfile_fp, &numcpus); if (err < 0) goto out; err = UV_ENOMEM; ci = uv__calloc(numcpus, sizeof(*ci)); if (ci == NULL) goto out; err = read_models(numcpus, ci); if (err == 0) err = read_times(statfile_fp, numcpus, ci); if (err) { uv_free_cpu_info(ci, numcpus); goto out; } /* read_models() on x86 also reads the CPU speed from /proc/cpuinfo. * We don't check for errors here. Worst case, the field is left zero. */ if (ci[0].speed == 0) read_speeds(numcpus, ci); *cpu_infos = ci; *count = numcpus; err = 0; out: if (fclose(statfile_fp)) if (errno != EINTR && errno != EINPROGRESS) abort(); return err; }
int uv_cpu_info(uv_cpu_info_t** cpu_infos, int* count) { unsigned int numcpus; uv_cpu_info_t* ci; int err; *cpu_infos = NULL; *count = 0; numcpus = sysconf(_SC_NPROCESSORS_ONLN); assert(numcpus != (unsigned int) -1); assert(numcpus != 0); ci = uv__calloc(numcpus, sizeof(*ci)); if (ci == NULL) return -ENOMEM; err = read_models(numcpus, ci); if (err == 0) err = read_times(numcpus, ci); if (err) { uv_free_cpu_info(ci, numcpus); return err; } /* read_models() on x86 also reads the CPU speed from /proc/cpuinfo. * We don't check for errors here. Worst case, the field is left zero. */ if (ci[0].speed == 0) read_speeds(numcpus, ci); *cpu_infos = ci; *count = numcpus; return 0; }