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