1 #ifndef HARNESS_H_INCLUDED
2 #define HARNESS_H_INCLUDED
5 /* There is a Q function (Q for Question) for each such syscall;
6 * it constructs a string representing the call, and calls Q_str
7 * on it, or constructs it in vb and calls Q_vb;
9 void Qselect( int max
, const fd_set
*rfds
, const fd_set
*wfds
, const fd_set
*efds
, struct timeval
*to
);
11 void Qpoll( const struct pollfd
*fds
, int nfds
, int timeout
);
13 void Qsocket( int type
);
14 void Qfcntl( int fd
, int cmd
, long arg
);
15 void Qconnect( int fd
, const struct sockaddr
*addr
, int addrlen
);
16 void Qbind( int fd
, const struct sockaddr
*addr
, int addrlen
);
17 void Qlisten( int fd
, int backlog
);
18 void Qclose( int fd
);
19 void Qsendto( int fd
, const void *msg
, int msglen
, const struct sockaddr
*addr
, int addrlen
);
20 void Qrecvfrom( int fd
, int buflen
, int addrlen
);
21 void Qread( int fd
, size_t buflen
);
22 void Qwrite( int fd
, const void *buf
, size_t len
);
24 extern void Tshutdown(void);
25 /* General help functions */
26 void Tfailed(const char *why
);
27 void Toutputerr(void);
29 void Tfsyscallr(const char *fmt
, ...) PRINTFFORMAT(1,2);
30 void Tensurerecordfile(void);
31 void Tmust(const char *call
, const char *arg
, int cond
);
32 void Tvbf(const char *fmt
, ...) PRINTFFORMAT(1,2);
33 void Tvbvf(const char *fmt
, va_list al
);
34 void Tvbfdset(int max
, const fd_set
*set
);
35 void Tvbpollfds(const struct pollfd
*fds
, int nfds
);
36 void Tvbaddr(const struct sockaddr
*addr
, int addrlen
);
37 void Tvbbytes(const void *buf
, int len
);
39 void Tvba(const char *str
);
42 extern struct timeval currenttime
;
43 extern const struct Terrno
{ const char *n
; int v
; } Terrnos
[];