Exemple #1
0
static void print_error_buffers(struct drm_i915_error_state_buf *m,
				const char *name,
				struct drm_i915_error_buffer *err,
				int count)
{
	err_printf(m, "%s [%d]:\n", name, count);

	while (count--) {
		err_printf(m, "  %08x %8u %02x %02x %x %x",
			   err->gtt_offset,
			   err->size,
			   err->read_domains,
			   err->write_domain,
			   err->rseqno, err->wseqno);
		err_puts(m, pin_flag(err->pinned));
		err_puts(m, tiling_flag(err->tiling));
		err_puts(m, dirty_flag(err->dirty));
		err_puts(m, purgeable_flag(err->purgeable));
		err_puts(m, err->ring != -1 ? " " : "");
		err_puts(m, ring_str(err->ring));
		err_puts(m, i915_cache_level_str(err->cache_level));

		if (err->name)
			err_printf(m, " (name: %d)", err->name);
		if (err->fence_reg != I915_FENCE_REG_NONE)
			err_printf(m, " (fence: %d)", err->fence_reg);

		err_puts(m, "\n");
		err++;
	}
}
Exemple #2
0
/*!
 * @brief ソケットを作成する
 * @param [in] port_num ポート番号
 * @return ソケットのディスクリプタ
 */
static int make_socket(uint port_num) {
  struct sockaddr_in me;
  int    sock;
  int    sock_new;

  memset((char *)&me, 0, sizeof(me));  /* aockaddr_in構造体変数meのゼロクリア */
  me.sin_family      = AF_INET;
  me.sin_addr.s_addr = htonl(INADDR_ANY);
  me.sin_port        = htons(port_num);

  if ((sock = socket(AF_INET, SOCK_STREAM, 0)) < 0 ) {
    perror("socket");
    return -1;
  }

  if (bind(sock, (struct sockaddr *)&me, sizeof(me)) == -1){
    perror("bind");
    return -1;
  }

  listen(sock, 1);
  err_puts("successfully bound, now waiting.");
  sock_new = accept(sock, NULL, NULL);
  close(sock);

  return sock_new;
}
Exemple #3
0
int xchdir(const char *path)
{
	if (chdir(path) == -1) {
		err_puts("chdir", errno);
		return -1;
	}

	return 0;

}
Exemple #4
0
static void err_printf(PHYSFS_File *my_file, const char * format, ... )
#define err_printf(A1,F,...)	dxx_call_printf_checked(err_printf,err_puts_literal,(A1),(F),##__VA_ARGS__)
{
	va_list	args;
	char		message[256];

	va_start(args, format );
	size_t len = vsnprintf(message,sizeof(message),format,args);
	va_end(args);
	err_puts(my_file, message, len);
}
Exemple #5
0
/*!
 * @brief 引数の文字列をポート番号の数値に変換する
 * @param [in] str ポート番号に変換する文字列
 * @return 変換に成功したならポート番号を、失敗したなら-1を返す
 */
int convert_str2port(const char *str) {
  char *check;
  int   num = strtol(str, &check, 10);  // char * -> long
  if (*check != '\0') {
    err_puts("ポート番号は数値で指定してください");
    return -1;
  }
  if (num < MIN_PORT || MAX_PORT < num) {
    err_println("ポート番号は %d~%d の範囲で指定してください", MIN_PRIVATE_PORT, MAX_PRIVATE_PORT);
    return -1;
  }
  if (MIN_WELL_KNOWN_PORT <= num && num <= MAX_WELL_KNOWN_PORT) {
    err_puts("ウェルノウンポートを指定しないでください。");
    err_println("ポート番号は %d~%d の範囲で指定してください", MIN_PRIVATE_PORT, MAX_PRIVATE_PORT);
    return -1;
  }
  if (MIN_REGISTERED_PORT <= num && num <= MAX_REGISTERED_PORT) {
    err_puts("注意: 登録済みポート番号が指定されています。");
    err_println("      ポート番号を %d~%d の範囲で指定することを推奨します", MIN_PRIVATE_PORT, MAX_PRIVATE_PORT);
  }
  return num;
}
Exemple #6
0
/*!
 * @brief 引数解析を行う
 * @param [in]  argc     コマンドライン引数の個数(プログラム名も含む)
 * @param [in]  argv     コマンドライン引数の配列
 * @param [out] port_num ポート番号
 * @return 引数に異常がなければ0を、異常があれば-1を返す
 */
static int arg_parse(int argc, char *argv[], int *port_num) {
  switch (argc) {
    case 2:
      *port_num = convert_str2port(argv[1]);
      if (*port_num == -1) return -1;
    case 1:
      *port_num = DEFAULT_PORT;
      break;
    default:
      err_puts("引数は1つにしてください。");
      show_usage(argv[0]);
      return -1;
  }
  return 0;
}
Exemple #7
0
static void err_puts_literal(PHYSFS_File *f, const char (&str)[len])
{
	err_puts(f, str, len);
}