android13/external/rk_tee_user/v2/host/xtest/sock_server.h

44 lines
999 B
C

/* 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*/