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 */
18struct arg_list_dummy_wrapper { char *argv[SLIRP_MAX_ARGS]; };
19
20struct 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
28extern const struct net_user_info slirp_user_info;
29
30extern int slirp_user_read(int fd, void *buf, int len, struct slirp_data *pri);
31extern int slirp_user_write(int fd, void *buf, int len,
32			    struct slirp_data *pri);
33
34#endif
35