xref: /openbmc/linux/arch/um/drivers/slirp.h (revision 23c2b932)
1 #ifndef __UM_SLIRP_H
2 #define __UM_SLIRP_H
3 
4 #include "slip_common.h"
5 
6 #define SLIRP_MAX_ARGS 100
7 /*
8  * XXX this next definition is here because I don't understand why this
9  * initializer doesn't work in slirp_kern.c:
10  *
11  *   argv :  { init->argv[ 0 ... SLIRP_MAX_ARGS-1 ] },
12  *
13  * or why I can't typecast like this:
14  *
15  *   argv :  (char* [SLIRP_MAX_ARGS])(init->argv),
16  */
17 struct arg_list_dummy_wrapper { char *argv[SLIRP_MAX_ARGS]; };
18 
19 struct slirp_data {
20 	void *dev;
21 	struct arg_list_dummy_wrapper argw;
22 	int pid;
23 	int slave;
24 	struct slip_proto slip;
25 };
26 
27 extern const struct net_user_info slirp_user_info;
28 
29 extern int slirp_user_read(int fd, void *buf, int len, struct slirp_data *pri);
30 extern int slirp_user_write(int fd, void *buf, int len,
31 			    struct slirp_data *pri);
32 
33 #endif
34