#include <sys/types.h>
#include <sys/stat.h>
#include <sys/wait.h>
-#include <sys/mman.h>
+#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <netdb.h>
dst->max_val = le64_to_cpu(src->max_val);
dst->min_val = le64_to_cpu(src->min_val);
dst->samples = le64_to_cpu(src->samples);
- /* FIXME */
- dst->mean = __le64_to_cpu(src->mean);
- dst->S = __le64_to_cpu(src->S);
+
+ /*
+ * Floats arrive as IEEE 754 encoded uint64_t, convert back to double
+ */
+ dst->mean.u.f = fio_uint64_to_double(le64_to_cpu(dst->mean.u.i));
+ dst->S.u.f = fio_uint64_to_double(le64_to_cpu(dst->S.u.i));
}
static void convert_ts(struct thread_stat *dst, struct thread_stat *src)
dst->minf = le64_to_cpu(src->minf);
dst->majf = le64_to_cpu(src->majf);
dst->clat_percentiles = le64_to_cpu(src->clat_percentiles);
- dst->percentile_list = NULL;
+
+ for (i = 0; i < FIO_IO_U_LIST_MAX_LEN; i++) {
+ fio_fp64_t *fps = &src->percentile_list[i];
+ fio_fp64_t *fpd = &dst->percentile_list[i];
+
+ fpd->u.f = fio_uint64_to_double(le64_to_cpu(fps->u.i));
+ }
for (i = 0; i < FIO_IO_U_MAP_NR; i++) {
dst->io_u_map[i] = le32_to_cpu(src->io_u_map[i]);
{
struct cmd_probe_pdu *probe = (struct cmd_probe_pdu *) cmd->payload;
- log_info("Probe: hostname=%s, fio ver %u.%u.%u\n", probe->hostname,
- probe->fio_major, probe->fio_minor, probe->fio_patch);
+ log_info("Probe: hostname=%s, be=%u, fio ver %u.%u.%u\n",
+ probe->hostname, probe->bigendian, probe->fio_major,
+ probe->fio_minor, probe->fio_patch);
}
static int handle_client(struct fio_client *client, int one)
break;
case FIO_NET_CMD_TEXT: {
const char *buf = (const char *) cmd->payload;
+ int fio_unused ret;
if (!client->skip_newline)
fprintf(f_out, "Client <%s>: ", client->hostname);
- fwrite(buf, cmd->pdu_len, 1, f_out);
+ ret = fwrite(buf, cmd->pdu_len, 1, f_out);
fflush(f_out);
client->skip_newline = strchr(buf, '\n') == NULL;
free(cmd);