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_;
}
Beispiel #2
0
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();
  }
}
Beispiel #3
0
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_;
}
Beispiel #4
0
//Näihin saa muokata omat funktiot
int read_item(Titem *item) {
    Titem aux;
    fflush(stdin);
    read_times(&aux);
    *item=aux;
    return 1;
}
Beispiel #5
0
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);
				}
			}
		}
	}
}
Beispiel #6
0
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;
}
Beispiel #7
0
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;
}