blob: 6960794141fffe0f57cbdc4b71709581c1196a20 [file] [log] [blame]
/* SPDX-License-Identifier: GPL-2.0 */
/*
* Copyright (c) 2016, Linaro Limited
*/
#ifndef XTEST_SOCK_SERVER_H
#define XTEST_SOCK_SERVER_H
#include <pthread.h>
#include <stdbool.h>
#include <sys/types.h>
struct sock_server_bind {
int fd;
char host[255];
int port;
};
struct sock_server {
struct sock_server_bind *bind;
size_t num_binds;
int quit_fd;
int stop_fd;
pthread_t thr;
pthread_mutex_t mu;
bool error;
struct sock_io_cb *cb;
};
struct sock_io_cb {
bool (*accept)(void *ptr, int fd, short *events);
bool (*read)(void *ptr, int fd, short *events);
bool (*write)(void *ptr, int fd, short *events);
void *ptr;
};
bool sock_server_init_tcp(struct sock_server *sock_serv, struct sock_io_cb *cb);
bool sock_server_init_udp(struct sock_server *sock_serv, struct sock_io_cb *cb);
void sock_server_uninit(struct sock_server *sock_serv);
void sock_server_lock(struct sock_server *sock_serv);
void sock_server_unlock(struct sock_server *sock_serv);
#endif /*XTEST_SOCK_SERVER_H*/