xref: /minix/minix/tests/socklib.h (revision 3ea34559)
1 #ifndef MINIX_TEST_SOCKLIB_H
2 #define MINIX_TEST_SOCKLIB_H
3 
4 enum state {
5 	S_NEW,
6 	S_N_SHUT_R,
7 	S_N_SHUT_W,
8 	S_N_SHUT_RW,
9 	S_BOUND,
10 	S_LISTENING,
11 	S_L_SHUT_R,
12 	S_L_SHUT_W,
13 	S_L_SHUT_RW,
14 	S_CONNECTING,
15 	S_C_SHUT_R,
16 	S_C_SHUT_W,
17 	S_C_SHUT_RW,
18 	S_CONNECTED,
19 	S_ACCEPTED,
20 	S_SHUT_R,
21 	S_SHUT_W,
22 	S_SHUT_RW,
23 	S_RSHUT_R,
24 	S_RSHUT_W,
25 	S_RSHUT_RW,
26 	S_SHUT2_R,
27 	S_SHUT2_W,
28 	S_SHUT2_RW,
29 	S_PRE_EOF,
30 	S_AT_EOF,
31 	S_POST_EOF,
32 	S_PRE_SHUT_R,
33 	S_EOF_SHUT_R,
34 	S_POST_SHUT_R,
35 	S_PRE_SHUT_W,
36 	S_EOF_SHUT_W,
37 	S_POST_SHUT_W,
38 	S_PRE_SHUT_RW,
39 	S_EOF_SHUT_RW,
40 	S_POST_SHUT_RW,
41 	S_PRE_RESET,
42 	S_AT_RESET,
43 	S_POST_RESET,
44 	S_FAILED,
45 	S_POST_FAILED,
46 	S_MAX
47 };
48 
49 enum call {
50 	C_ACCEPT,
51 	C_BIND,
52 	C_CONNECT,
53 	C_GETPEERNAME,
54 	C_GETSOCKNAME,
55 	C_GETSOCKOPT_ERR,
56 	C_GETSOCKOPT_KA,
57 	C_GETSOCKOPT_RB,
58 	C_IOCTL_NREAD,
59 	C_LISTEN,
60 	C_RECV,
61 	C_RECVFROM,
62 	C_SEND,
63 	C_SENDTO,
64 	C_SELECT_R,
65 	C_SELECT_W,
66 	C_SELECT_X,
67 	C_SETSOCKOPT_BC,
68 	C_SETSOCKOPT_KA,
69 	C_SETSOCKOPT_L,
70 	C_SETSOCKOPT_RA,
71 	C_SHUTDOWN_R,
72 	C_SHUTDOWN_RW,
73 	C_SHUTDOWN_W,
74 	C_MAX
75 };
76 
77 int socklib_sweep_call(enum call call, int fd, struct sockaddr * local_addr,
78 	struct sockaddr * remote_addr, socklen_t addr_len);
79 void socklib_sweep(int domain, int type, int protocol,
80 	const enum state * states, unsigned int nstates, const int * results,
81 	int (* proc)(int domain, int type, int protocol, enum state,
82 	enum call));
83 
84 void socklib_large_transfers(int fd[2]);
85 void socklib_producer_consumer(int fd[2]);
86 void socklib_stream_recv(int (* socket_pair)(int, int, int, int *), int domain,
87 	int type, int (* break_recv)(int, const char *, size_t));
88 
89 #endif /* !MINIX_TEST_SOCKLIB_H */
90