tagging vde-2 version 2.3.2
[vde.git] / 2.3.2 / src / slirpvde / libslirp.h
blobecf8e1b9d15bd7213603af2303bb718de5b028cd
1 #ifndef _LIBSLIRP_H
2 #define _LIBSLIRP_H
4 #include <sys/socket.h>
5 #include <netinet/in.h>
6 #include <arpa/inet.h>
7 #include <sys/select.h>
8 #include <stdio.h>
9 #include <stdint.h>
10 #include <string.h>
11 #include <time.h>
12 #define pstrcpy(d,l,s) strncpy((d),(s),(l))
13 #define qemu_strdup strdup
14 #define qemu_malloc malloc
15 #define qemu_free free
16 #define qemu_mallocz(x) calloc(1,(x))
17 #define qemu_get_clock(x) time(NULL)
18 #define qemu_socket socket
19 #include <qemu-common.h>
21 #ifdef CONFIG_SLIRP
23 struct Slirp;
24 typedef struct Slirp Slirp;
26 int get_dns_addr(struct in_addr *pdns_addr);
28 Slirp *slirp_init(int restricted, struct in_addr vnetwork,
29 struct in_addr vnetmask, struct in_addr vhost,
30 const char *vhostname, const char *tftp_path,
31 const char *bootfile, struct in_addr vdhcp_start,
32 struct in_addr vnameserver, void *opaque);
33 void slirp_cleanup(Slirp *slirp);
35 void slirp_select_fill(int *pnfds,
36 fd_set *readfds, fd_set *writefds, fd_set *xfds);
38 void slirp_select_poll(fd_set *readfds, fd_set *writefds, fd_set *xfds,
39 int select_error);
41 void slirp_input(Slirp *slirp, const uint8_t *pkt, int pkt_len);
43 /* you must provide the following functions: */
44 int slirp_can_output(void *opaque);
45 void slirp_output(void *opaque, const uint8_t *pkt, int pkt_len);
47 int slirp_add_hostfwd(Slirp *slirp, int is_udp,
48 struct in_addr host_addr, int host_port,
49 struct in_addr guest_addr, int guest_port);
50 int slirp_remove_hostfwd(Slirp *slirp, int is_udp,
51 struct in_addr host_addr, int host_port);
52 int slirp_add_exec(Slirp *slirp, int do_pty, const void *args,
53 struct in_addr *guest_addr, int guest_port);
55 //void slirp_connection_info(Slirp *slirp, Monitor *mon);
57 void slirp_socket_recv(Slirp *slirp, struct in_addr guest_addr,
58 int guest_port, const uint8_t *buf, int size);
59 size_t slirp_socket_can_recv(Slirp *slirp, struct in_addr guest_addr,
60 int guest_port);
62 #else /* !CONFIG_SLIRP */
64 static inline void slirp_select_fill(int *pnfds, fd_set *readfds,
65 fd_set *writefds, fd_set *xfds) { }
67 static inline void slirp_select_poll(fd_set *readfds, fd_set *writefds,
68 fd_set *xfds, int select_error) { }
69 #endif /* !CONFIG_SLIRP */
71 #endif