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