1/*
2 * linux/fs/9p/transport.h
3 *
4 * Transport Definition
5 *
6 *  Copyright (C) 2005 by Latchesar Ionkov <lucho@ionkov.net>
7 *  Copyright (C) 2004 by Eric Van Hensbergen <ericvh@gmail.com>
8 *
9 *  This program is free software; you can redistribute it and/or modify
10 *  it under the terms of the GNU General Public License version 2
11 *  as published by the Free Software Foundation.
12 *
13 *  This program is distributed in the hope that it will be useful,
14 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
15 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 *  GNU General Public License for more details.
17 *
18 *  You should have received a copy of the GNU General Public License
19 *  along with this program; if not, write to:
20 *  Free Software Foundation
21 *  51 Franklin Street, Fifth Floor
22 *  Boston, MA  02111-1301  USA
23 *
24 */
25
26enum v9fs_transport_status {
27	Connected,
28	Disconnected,
29	Hung,
30};
31
32struct v9fs_transport {
33	enum v9fs_transport_status status;
34	void *priv;
35
36	int (*init) (struct v9fs_session_info *, const char *, char *);
37	int (*write) (struct v9fs_transport *, void *, int);
38	int (*read) (struct v9fs_transport *, void *, int);
39	void (*close) (struct v9fs_transport *);
40	unsigned int (*poll)(struct v9fs_transport *, struct poll_table_struct *);
41};
42
43extern struct v9fs_transport v9fs_trans_tcp;
44extern struct v9fs_transport v9fs_trans_unix;
45extern struct v9fs_transport v9fs_trans_fd;
46