diff options
Diffstat (limited to 'include/net/9p/client.h')
| -rw-r--r-- | include/net/9p/client.h | 33 | 
1 files changed, 33 insertions, 0 deletions
diff --git a/include/net/9p/client.h b/include/net/9p/client.h index 7dd3ed85c78..d1aa2cfb30f 100644 --- a/include/net/9p/client.h +++ b/include/net/9p/client.h @@ -195,6 +195,21 @@ struct p9_fid {  	struct list_head dlist;	/* list of all fids attached to a dentry */  }; +/** + * struct p9_dirent - directory entry structure + * @qid: The p9 server qid for this dirent + * @d_off: offset to the next dirent + * @d_type: type of file + * @d_name: file name + */ + +struct p9_dirent { +	struct p9_qid qid; +	u64 d_off; +	unsigned char d_type; +	char d_name[256]; +}; +  int p9_client_statfs(struct p9_fid *fid, struct p9_rstatfs *sb);  int p9_client_rename(struct p9_fid *fid, struct p9_fid *newdirfid, char *name);  int p9_client_version(struct p9_client *); @@ -211,15 +226,31 @@ struct p9_fid *p9_client_walk(struct p9_fid *oldfid, int nwname, char **wnames,  int p9_client_open(struct p9_fid *fid, int mode);  int p9_client_fcreate(struct p9_fid *fid, char *name, u32 perm, int mode,  							char *extension); +int p9_client_link(struct p9_fid *fid, struct p9_fid *oldfid, char *newname); +int p9_client_symlink(struct p9_fid *fid, char *name, char *symname, gid_t gid, +							struct p9_qid *qid); +int p9_client_create_dotl(struct p9_fid *ofid, char *name, u32 flags, u32 mode, +		gid_t gid, struct p9_qid *qid);  int p9_client_clunk(struct p9_fid *fid);  int p9_client_remove(struct p9_fid *fid);  int p9_client_read(struct p9_fid *fid, char *data, char __user *udata,  							u64 offset, u32 count);  int p9_client_write(struct p9_fid *fid, char *data, const char __user *udata,  							u64 offset, u32 count); +int p9_client_readdir(struct p9_fid *fid, char *data, u32 count, u64 offset); +int p9dirent_read(char *buf, int len, struct p9_dirent *dirent, +							int proto_version);  struct p9_wstat *p9_client_stat(struct p9_fid *fid);  int p9_client_wstat(struct p9_fid *fid, struct p9_wstat *wst); +int p9_client_setattr(struct p9_fid *fid, struct p9_iattr_dotl *attr); + +struct p9_stat_dotl *p9_client_getattr_dotl(struct p9_fid *fid, +							u64 request_mask); +int p9_client_mknod_dotl(struct p9_fid *oldfid, char *name, int mode, +			dev_t rdev, gid_t gid, struct p9_qid *); +int p9_client_mkdir_dotl(struct p9_fid *fid, char *name, int mode, +				gid_t gid, struct p9_qid *);  struct p9_req_t *p9_tag_lookup(struct p9_client *, u16);  void p9_client_cb(struct p9_client *c, struct p9_req_t *req); @@ -229,5 +260,7 @@ void p9stat_free(struct p9_wstat *);  int p9_is_proto_dotu(struct p9_client *clnt);  int p9_is_proto_dotl(struct p9_client *clnt); +struct p9_fid *p9_client_xattrwalk(struct p9_fid *, const char *, u64 *); +int p9_client_xattrcreate(struct p9_fid *, const char *, u64, int);  #endif /* NET_9P_CLIENT_H */  |