David 'Digit' Turner | 5d8f37a | 2009-09-14 14:32:27 -0700 | [diff] [blame] | 1 | #ifndef _LIBSLIRP_H |
| 2 | #define _LIBSLIRP_H |
| 3 | |
| 4 | #ifdef __cplusplus |
| 5 | extern "C" { |
| 6 | #endif |
| 7 | |
| 8 | void slirp_init(int restricted, const char *special_ip); |
| 9 | |
| 10 | void slirp_select_fill(int *pnfds, |
| 11 | fd_set *readfds, fd_set *writefds, fd_set *xfds); |
| 12 | |
| 13 | void slirp_select_poll(fd_set *readfds, fd_set *writefds, fd_set *xfds); |
| 14 | |
| 15 | void slirp_input(const uint8_t *pkt, int pkt_len); |
| 16 | |
| 17 | /* you must provide the following functions: */ |
| 18 | int slirp_can_output(void); |
| 19 | void slirp_output(const uint8_t *pkt, int pkt_len); |
| 20 | |
| 21 | void slirp_redir_loop(void (*func)(void *opaque, int is_udp, |
David 'Digit' Turner | c005246 | 2014-02-25 18:39:29 +0100 | [diff] [blame] | 22 | struct in_addr *laddr, u_int lport, |
David 'Digit' Turner | 5d8f37a | 2009-09-14 14:32:27 -0700 | [diff] [blame] | 23 | struct in_addr *faddr, u_int fport), |
| 24 | void *opaque); |
| 25 | int slirp_redir_rm(int is_udp, int host_port); |
| 26 | int slirp_redir(int is_udp, int host_port, |
| 27 | struct in_addr guest_addr, int guest_port); |
| 28 | int slirp_add_exec(int do_pty, const void *args, int addr_low_byte, |
| 29 | int guest_port); |
| 30 | |
| 31 | extern const char *tftp_prefix; |
| 32 | extern char slirp_hostname[33]; |
| 33 | extern const char *bootp_filename; |
| 34 | |
| 35 | void slirp_stats(void); |
| 36 | void slirp_socket_recv(int addr_low_byte, int guest_port, const uint8_t *buf, |
| 37 | int size); |
| 38 | size_t slirp_socket_can_recv(int addr_low_byte, int guest_port); |
| 39 | |
| 40 | #ifdef __cplusplus |
| 41 | } |
| 42 | #endif |
| 43 | |
| 44 | #endif |