#include <unistd.h>
#include <signal.h>
#include <errno.h>
-#include <assert.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <arpa/inet.h>
#include <netdb.h>
-#include <sys/poll.h>
-#include <sys/types.h>
+#include <poll.h>
#include <sys/stat.h>
#include <sys/socket.h>
#include <sys/un.h>
#ifdef CONFIG_TCP_NODELAY
{
.name = "nodelay",
+ .lname = "No Delay",
.type = FIO_OPT_BOOL,
.off1 = offsetof(struct netio_options, nodelay),
.help = "Use TCP_NODELAY on TCP connections",
},
{
.name = "pingpong",
+ .lname = "Ping Pong",
.type = FIO_OPT_STR_SET,
.off1 = offsetof(struct netio_options, pingpong),
.help = "Ping-pong IO requests",
*/
static int splice_in(struct thread_data *td, struct io_u *io_u)
{
- struct netio_data *nd = td->io_ops->data;
+ struct netio_data *nd = td->io_ops_data;
return splice_io_u(io_u->file->fd, nd->pipes[1], io_u->xfer_buflen);
}
static int splice_out(struct thread_data *td, struct io_u *io_u,
unsigned int len)
{
- struct netio_data *nd = td->io_ops->data;
+ struct netio_data *nd = td->io_ops_data;
return splice_io_u(nd->pipes[0], io_u->file->fd, len);
}
static int vmsplice_io_u_out(struct thread_data *td, struct io_u *io_u,
unsigned int len)
{
- struct netio_data *nd = td->io_ops->data;
+ struct netio_data *nd = td->io_ops_data;
return vmsplice_io_u(io_u, nd->pipes[0], len);
}
*/
static int vmsplice_io_u_in(struct thread_data *td, struct io_u *io_u)
{
- struct netio_data *nd = td->io_ops->data;
+ struct netio_data *nd = td->io_ops_data;
return vmsplice_io_u(io_u, nd->pipes[1], io_u->xfer_buflen);
}
static int fio_netio_send(struct thread_data *td, struct io_u *io_u)
{
- struct netio_data *nd = td->io_ops->data;
+ struct netio_data *nd = td->io_ops_data;
struct netio_options *o = td->eo;
int ret, flags = 0;
static int fio_netio_recv(struct thread_data *td, struct io_u *io_u)
{
- struct netio_data *nd = td->io_ops->data;
+ struct netio_data *nd = td->io_ops_data;
struct netio_options *o = td->eo;
int ret, flags = 0;
return ret;
}
-static int __fio_netio_queue(struct thread_data *td, struct io_u *io_u,
- enum fio_ddir ddir)
+static enum fio_q_status
+__fio_netio_queue(struct thread_data *td, struct io_u *io_u, enum fio_ddir ddir)
{
- struct netio_data *nd = td->io_ops->data;
+ struct netio_data *nd = td->io_ops_data;
struct netio_options *o = td->eo;
int ret;
return FIO_Q_COMPLETED;
}
-static int fio_netio_queue(struct thread_data *td, struct io_u *io_u)
+static enum fio_q_status
+fio_netio_queue(struct thread_data *td, struct io_u *io_u)
{
struct netio_options *o = td->eo;
int ret;
static int fio_netio_connect(struct thread_data *td, struct fio_file *f)
{
- struct netio_data *nd = td->io_ops->data;
+ struct netio_data *nd = td->io_ops_data;
struct netio_options *o = td->eo;
int type, domain;
static int fio_netio_accept(struct thread_data *td, struct fio_file *f)
{
- struct netio_data *nd = td->io_ops->data;
+ struct netio_data *nd = td->io_ops_data;
struct netio_options *o = td->eo;
socklen_t socklen;
int state;
static void fio_netio_send_close(struct thread_data *td, struct fio_file *f)
{
- struct netio_data *nd = td->io_ops->data;
+ struct netio_data *nd = td->io_ops_data;
struct netio_options *o = td->eo;
struct udp_close_msg msg;
struct sockaddr *to;
static int fio_netio_udp_recv_open(struct thread_data *td, struct fio_file *f)
{
- struct netio_data *nd = td->io_ops->data;
+ struct netio_data *nd = td->io_ops_data;
struct netio_options *o = td->eo;
struct udp_close_msg msg;
struct sockaddr *to;
static int fio_netio_send_open(struct thread_data *td, struct fio_file *f)
{
- struct netio_data *nd = td->io_ops->data;
+ struct netio_data *nd = td->io_ops_data;
struct netio_options *o = td->eo;
struct udp_close_msg msg;
struct sockaddr *to;
static int fio_netio_setup_connect_inet(struct thread_data *td,
const char *host, unsigned short port)
{
- struct netio_data *nd = td->io_ops->data;
+ struct netio_data *nd = td->io_ops_data;
struct netio_options *o = td->eo;
struct addrinfo *res = NULL;
void *dst, *src;
static int fio_netio_setup_connect_unix(struct thread_data *td,
const char *path)
{
- struct netio_data *nd = td->io_ops->data;
+ struct netio_data *nd = td->io_ops_data;
struct sockaddr_un *soun = &nd->addr_un;
soun->sun_family = AF_UNIX;
static int fio_netio_setup_listen_unix(struct thread_data *td, const char *path)
{
- struct netio_data *nd = td->io_ops->data;
+ struct netio_data *nd = td->io_ops_data;
struct sockaddr_un *addr = &nd->addr_un;
mode_t mode;
int len, fd;
static int fio_netio_setup_listen_inet(struct thread_data *td, short port)
{
- struct netio_data *nd = td->io_ops->data;
+ struct netio_data *nd = td->io_ops_data;
struct netio_options *o = td->eo;
struct ip_mreq mr;
struct sockaddr_in sin;
return 1;
}
if (is_ipv6(o)) {
- log_err("fio: IPv6 not supported for multicast network IO");
+ log_err("fio: IPv6 not supported for multicast network IO\n");
close(fd);
return 1;
}
static int fio_netio_setup_listen(struct thread_data *td)
{
- struct netio_data *nd = td->io_ops->data;
+ struct netio_data *nd = td->io_ops_data;
struct netio_options *o = td->eo;
int ret;
static void fio_netio_cleanup(struct thread_data *td)
{
- struct netio_data *nd = td->io_ops->data;
+ struct netio_data *nd = td->io_ops_data;
if (nd) {
if (nd->listenfd != -1)
td->o.open_files++;
}
- if (!td->io_ops->data) {
- nd = malloc(sizeof(*nd));;
+ if (!td->io_ops_data) {
+ nd = malloc(sizeof(*nd));
memset(nd, 0, sizeof(*nd));
nd->listenfd = -1;
nd->pipes[0] = nd->pipes[1] = -1;
- td->io_ops->data = nd;
+ td->io_ops_data = nd;
}
return 0;
fio_netio_setup(td);
- nd = td->io_ops->data;
+ nd = td->io_ops_data;
if (nd) {
if (pipe(nd->pipes) < 0)
return 1;