diff options
Diffstat (limited to 'include/net/9p/client.h')
-rw-r--r-- | include/net/9p/client.h | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/include/net/9p/client.h b/include/net/9p/client.h index fb00b329f0d3..4f3760afc20f 100644 --- a/include/net/9p/client.h +++ b/include/net/9p/client.h | |||
@@ -29,6 +29,19 @@ | |||
29 | /* Number of requests per row */ | 29 | /* Number of requests per row */ |
30 | #define P9_ROW_MAXTAG 255 | 30 | #define P9_ROW_MAXTAG 255 |
31 | 31 | ||
32 | /** enum p9_proto_versions - 9P protocol versions | ||
33 | * @p9_proto_legacy: 9P Legacy mode, pre-9P2000.u | ||
34 | * @p9_proto_2000u: 9P2000.u extension | ||
35 | * @p9_proto_2000L: 9P2000.L extension | ||
36 | */ | ||
37 | |||
38 | enum p9_proto_versions{ | ||
39 | p9_proto_legacy = 0, | ||
40 | p9_proto_2000u = 1, | ||
41 | p9_proto_2000L = 2, | ||
42 | }; | ||
43 | |||
44 | |||
32 | /** | 45 | /** |
33 | * enum p9_trans_status - different states of underlying transports | 46 | * enum p9_trans_status - different states of underlying transports |
34 | * @Connected: transport is connected and healthy | 47 | * @Connected: transport is connected and healthy |
@@ -41,6 +54,7 @@ | |||
41 | 54 | ||
42 | enum p9_trans_status { | 55 | enum p9_trans_status { |
43 | Connected, | 56 | Connected, |
57 | BeginDisconnect, | ||
44 | Disconnected, | 58 | Disconnected, |
45 | Hung, | 59 | Hung, |
46 | }; | 60 | }; |
@@ -111,6 +125,7 @@ struct p9_req_t { | |||
111 | * @lock: protect @fidlist | 125 | * @lock: protect @fidlist |
112 | * @msize: maximum data size negotiated by protocol | 126 | * @msize: maximum data size negotiated by protocol |
113 | * @dotu: extension flags negotiated by protocol | 127 | * @dotu: extension flags negotiated by protocol |
128 | * @proto_version: 9P protocol version to use | ||
114 | * @trans_mod: module API instantiated with this client | 129 | * @trans_mod: module API instantiated with this client |
115 | * @trans: tranport instance state and API | 130 | * @trans: tranport instance state and API |
116 | * @conn: connection state information used by trans_fd | 131 | * @conn: connection state information used by trans_fd |
@@ -137,7 +152,7 @@ struct p9_req_t { | |||
137 | struct p9_client { | 152 | struct p9_client { |
138 | spinlock_t lock; /* protect client structure */ | 153 | spinlock_t lock; /* protect client structure */ |
139 | int msize; | 154 | int msize; |
140 | unsigned char dotu; | 155 | unsigned char proto_version; |
141 | struct p9_trans_module *trans_mod; | 156 | struct p9_trans_module *trans_mod; |
142 | enum p9_trans_status status; | 157 | enum p9_trans_status status; |
143 | void *trans; | 158 | void *trans; |
@@ -184,6 +199,7 @@ int p9_client_version(struct p9_client *); | |||
184 | struct p9_client *p9_client_create(const char *dev_name, char *options); | 199 | struct p9_client *p9_client_create(const char *dev_name, char *options); |
185 | void p9_client_destroy(struct p9_client *clnt); | 200 | void p9_client_destroy(struct p9_client *clnt); |
186 | void p9_client_disconnect(struct p9_client *clnt); | 201 | void p9_client_disconnect(struct p9_client *clnt); |
202 | void p9_client_begin_disconnect(struct p9_client *clnt); | ||
187 | struct p9_fid *p9_client_attach(struct p9_client *clnt, struct p9_fid *afid, | 203 | struct p9_fid *p9_client_attach(struct p9_client *clnt, struct p9_fid *afid, |
188 | char *uname, u32 n_uname, char *aname); | 204 | char *uname, u32 n_uname, char *aname); |
189 | struct p9_fid *p9_client_auth(struct p9_client *clnt, char *uname, | 205 | struct p9_fid *p9_client_auth(struct p9_client *clnt, char *uname, |
@@ -209,5 +225,7 @@ int p9_parse_header(struct p9_fcall *, int32_t *, int8_t *, int16_t *, int); | |||
209 | int p9stat_read(char *, int, struct p9_wstat *, int); | 225 | int p9stat_read(char *, int, struct p9_wstat *, int); |
210 | void p9stat_free(struct p9_wstat *); | 226 | void p9stat_free(struct p9_wstat *); |
211 | 227 | ||
228 | int p9_is_proto_dotu(struct p9_client *clnt); | ||
229 | int p9_is_proto_dotl(struct p9_client *clnt); | ||
212 | 230 | ||
213 | #endif /* NET_9P_CLIENT_H */ | 231 | #endif /* NET_9P_CLIENT_H */ |