Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v2.6.15-rc6 176 lines 4.0 kB view raw
1/* 2 * linux/inxlude/linux/nfsd/xdr.h 3 * 4 * XDR types for nfsd. This is mainly a typing exercise. 5 */ 6 7#ifndef LINUX_NFSD_H 8#define LINUX_NFSD_H 9 10#include <linux/fs.h> 11#include <linux/vfs.h> 12#include <linux/nfs.h> 13 14struct nfsd_fhandle { 15 struct svc_fh fh; 16}; 17 18struct nfsd_sattrargs { 19 struct svc_fh fh; 20 struct iattr attrs; 21}; 22 23struct nfsd_diropargs { 24 struct svc_fh fh; 25 char * name; 26 int len; 27}; 28 29struct nfsd_readargs { 30 struct svc_fh fh; 31 __u32 offset; 32 __u32 count; 33 struct kvec vec[RPCSVC_MAXPAGES]; 34 int vlen; 35}; 36 37struct nfsd_writeargs { 38 svc_fh fh; 39 __u32 offset; 40 int len; 41 struct kvec vec[RPCSVC_MAXPAGES]; 42 int vlen; 43}; 44 45struct nfsd_createargs { 46 struct svc_fh fh; 47 char * name; 48 int len; 49 struct iattr attrs; 50}; 51 52struct nfsd_renameargs { 53 struct svc_fh ffh; 54 char * fname; 55 int flen; 56 struct svc_fh tfh; 57 char * tname; 58 int tlen; 59}; 60 61struct nfsd_readlinkargs { 62 struct svc_fh fh; 63 char * buffer; 64}; 65 66struct nfsd_linkargs { 67 struct svc_fh ffh; 68 struct svc_fh tfh; 69 char * tname; 70 int tlen; 71}; 72 73struct nfsd_symlinkargs { 74 struct svc_fh ffh; 75 char * fname; 76 int flen; 77 char * tname; 78 int tlen; 79 struct iattr attrs; 80}; 81 82struct nfsd_readdirargs { 83 struct svc_fh fh; 84 __u32 cookie; 85 __u32 count; 86 u32 * buffer; 87}; 88 89struct nfsd_attrstat { 90 struct svc_fh fh; 91}; 92 93struct nfsd_diropres { 94 struct svc_fh fh; 95}; 96 97struct nfsd_readlinkres { 98 int len; 99}; 100 101struct nfsd_readres { 102 struct svc_fh fh; 103 unsigned long count; 104}; 105 106struct nfsd_readdirres { 107 int count; 108 109 struct readdir_cd common; 110 u32 * buffer; 111 int buflen; 112 u32 * offset; 113}; 114 115struct nfsd_statfsres { 116 struct kstatfs stats; 117}; 118 119/* 120 * Storage requirements for XDR arguments and results. 121 */ 122union nfsd_xdrstore { 123 struct nfsd_sattrargs sattr; 124 struct nfsd_diropargs dirop; 125 struct nfsd_readargs read; 126 struct nfsd_writeargs write; 127 struct nfsd_createargs create; 128 struct nfsd_renameargs rename; 129 struct nfsd_linkargs link; 130 struct nfsd_symlinkargs symlink; 131 struct nfsd_readdirargs readdir; 132}; 133 134#define NFS2_SVC_XDRSIZE sizeof(union nfsd_xdrstore) 135 136 137int nfssvc_decode_void(struct svc_rqst *, u32 *, void *); 138int nfssvc_decode_fhandle(struct svc_rqst *, u32 *, struct nfsd_fhandle *); 139int nfssvc_decode_sattrargs(struct svc_rqst *, u32 *, 140 struct nfsd_sattrargs *); 141int nfssvc_decode_diropargs(struct svc_rqst *, u32 *, 142 struct nfsd_diropargs *); 143int nfssvc_decode_readargs(struct svc_rqst *, u32 *, 144 struct nfsd_readargs *); 145int nfssvc_decode_writeargs(struct svc_rqst *, u32 *, 146 struct nfsd_writeargs *); 147int nfssvc_decode_createargs(struct svc_rqst *, u32 *, 148 struct nfsd_createargs *); 149int nfssvc_decode_renameargs(struct svc_rqst *, u32 *, 150 struct nfsd_renameargs *); 151int nfssvc_decode_readlinkargs(struct svc_rqst *, u32 *, 152 struct nfsd_readlinkargs *); 153int nfssvc_decode_linkargs(struct svc_rqst *, u32 *, 154 struct nfsd_linkargs *); 155int nfssvc_decode_symlinkargs(struct svc_rqst *, u32 *, 156 struct nfsd_symlinkargs *); 157int nfssvc_decode_readdirargs(struct svc_rqst *, u32 *, 158 struct nfsd_readdirargs *); 159int nfssvc_encode_void(struct svc_rqst *, u32 *, void *); 160int nfssvc_encode_attrstat(struct svc_rqst *, u32 *, struct nfsd_attrstat *); 161int nfssvc_encode_diropres(struct svc_rqst *, u32 *, struct nfsd_diropres *); 162int nfssvc_encode_readlinkres(struct svc_rqst *, u32 *, struct nfsd_readlinkres *); 163int nfssvc_encode_readres(struct svc_rqst *, u32 *, struct nfsd_readres *); 164int nfssvc_encode_statfsres(struct svc_rqst *, u32 *, struct nfsd_statfsres *); 165int nfssvc_encode_readdirres(struct svc_rqst *, u32 *, struct nfsd_readdirres *); 166 167int nfssvc_encode_entry(struct readdir_cd *, const char *name, 168 int namlen, loff_t offset, ino_t ino, unsigned int); 169 170int nfssvc_release_fhandle(struct svc_rqst *, u32 *, struct nfsd_fhandle *); 171 172/* Helper functions for NFSv2 ACL code */ 173u32 *nfs2svc_encode_fattr(struct svc_rqst *rqstp, u32 *p, struct svc_fh *fhp); 174u32 *nfs2svc_decode_fh(u32 *p, struct svc_fh *fhp); 175 176#endif /* LINUX_NFSD_H */