Linux-libre 5.3.12-gnu
[librecmc/linux-libre.git] / arch / um / drivers / slirp.h
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