]>
Commit | Line | Data |
---|---|---|
426cc91a | 1 | /* |
bd238fb4 | 2 | * include/net/9p/transport.h |
426cc91a EVH |
3 | * |
4 | * Transport Definition | |
5 | * | |
3cf6429a | 6 | * Copyright (C) 2005 by Latchesar Ionkov <lucho@ionkov.net> |
426cc91a EVH |
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 | |
42e8c509 EVH |
10 | * it under the terms of the GNU General Public License version 2 |
11 | * as published by the Free Software Foundation. | |
426cc91a EVH |
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 | ||
bd238fb4 LI |
26 | #ifndef NET_9P_TRANSPORT_H |
27 | #define NET_9P_TRANSPORT_H | |
28 | ||
a80d923e | 29 | enum p9_trans_status { |
426cc91a EVH |
30 | Connected, |
31 | Disconnected, | |
32 | Hung, | |
33 | }; | |
34 | ||
a80d923e EVH |
35 | struct p9_trans { |
36 | enum p9_trans_status status; | |
426cc91a | 37 | void *priv; |
a80d923e EVH |
38 | int (*write) (struct p9_trans *, void *, int); |
39 | int (*read) (struct p9_trans *, void *, int); | |
40 | void (*close) (struct p9_trans *); | |
41 | unsigned int (*poll)(struct p9_trans *, struct poll_table_struct *); | |
043aba40 | 42 | int (*rpc) (struct p9_trans *t, struct p9_fcall *tc, |
e2735b77 | 43 | struct p9_fcall **rc, int msize, int dotu); |
a80d923e | 44 | }; |
426cc91a | 45 | |
a80d923e EVH |
46 | struct p9_trans_module { |
47 | struct list_head list; | |
48 | char *name; /* name of transport */ | |
49 | int maxsize; /* max message size of transport */ | |
50 | int def; /* this transport should be default */ | |
51 | struct p9_trans * (*create)(const char *devname, char *options); | |
426cc91a EVH |
52 | }; |
53 | ||
a80d923e | 54 | void v9fs_register_trans(struct p9_trans_module *m); |
fb0466c3 EVH |
55 | struct p9_trans_module *v9fs_match_trans(const substring_t *name); |
56 | struct p9_trans_module *v9fs_default_trans(void); | |
bd238fb4 LI |
57 | |
58 | #endif /* NET_9P_TRANSPORT_H */ |