xref: /linux/arch/um/drivers/slirp.h (revision 5e7672ec3f059f764fcc5c78216e24bb16c44dba)
11da177e4SLinus Torvalds #ifndef __UM_SLIRP_H
21da177e4SLinus Torvalds #define __UM_SLIRP_H
31da177e4SLinus Torvalds 
4a3c77c67SJeff Dike #include "slip_common.h"
51da177e4SLinus Torvalds 
61da177e4SLinus Torvalds #define SLIRP_MAX_ARGS 100
71da177e4SLinus Torvalds /*
81da177e4SLinus Torvalds  * XXX this next definition is here because I don't understand why this
91da177e4SLinus Torvalds  * initializer doesn't work in slirp_kern.c:
101da177e4SLinus Torvalds  *
111da177e4SLinus Torvalds  *   argv :  { init->argv[ 0 ... SLIRP_MAX_ARGS-1 ] },
121da177e4SLinus Torvalds  *
131da177e4SLinus Torvalds  * or why I can't typecast like this:
141da177e4SLinus Torvalds  *
151da177e4SLinus Torvalds  *   argv :  (char* [SLIRP_MAX_ARGS])(init->argv),
161da177e4SLinus Torvalds  */
171da177e4SLinus Torvalds struct arg_list_dummy_wrapper { char *argv[SLIRP_MAX_ARGS]; };
181da177e4SLinus Torvalds 
191da177e4SLinus Torvalds struct slirp_data {
201da177e4SLinus Torvalds 	void *dev;
211da177e4SLinus Torvalds 	struct arg_list_dummy_wrapper argw;
221da177e4SLinus Torvalds 	int pid;
231da177e4SLinus Torvalds 	int slave;
24a3c77c67SJeff Dike 	struct slip_proto slip;
251da177e4SLinus Torvalds };
261da177e4SLinus Torvalds 
27*5e7672ecSJeff Dike extern const struct net_user_info slirp_user_info;
281da177e4SLinus Torvalds 
291da177e4SLinus Torvalds extern int slirp_user_read(int fd, void *buf, int len, struct slirp_data *pri);
30a3c77c67SJeff Dike extern int slirp_user_write(int fd, void *buf, int len,
31a3c77c67SJeff Dike 			    struct slirp_data *pri);
321da177e4SLinus Torvalds 
331da177e4SLinus Torvalds #endif
34