xref: /linux/arch/um/drivers/slirp.h (revision a3c77c67a443e631febf708bb0c376caede31657)
11da177e4SLinus Torvalds #ifndef __UM_SLIRP_H
21da177e4SLinus Torvalds #define __UM_SLIRP_H
31da177e4SLinus Torvalds 
4*a3c77c67SJeff 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;
24*a3c77c67SJeff Dike 	struct slip_proto slip;
251da177e4SLinus Torvalds };
261da177e4SLinus Torvalds 
271da177e4SLinus Torvalds extern 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);
30*a3c77c67SJeff Dike extern int slirp_user_write(int fd, void *buf, int len,
31*a3c77c67SJeff Dike 			    struct slirp_data *pri);
321da177e4SLinus Torvalds 
331da177e4SLinus Torvalds #endif
34