X-Git-Url: https://git.decadent.org.uk/gitweb/?p=nfs-utils.git;a=blobdiff_plain;f=support%2Finclude%2Fnfs%2Fnfs.h;h=320880ea7bc9c9f38d2f8a9dfa44ca744ed19c9d;hp=937c1be633eeabb65555dd86b5d12ce039a782e1;hb=fe34ff0312c7c22554087ecd78bbbeadb38ce195;hpb=93a8e35ff8def529f41b82a13440f2e9b46d0dbd diff --git a/support/include/nfs/nfs.h b/support/include/nfs/nfs.h index 937c1be..320880e 100644 --- a/support/include/nfs/nfs.h +++ b/support/include/nfs/nfs.h @@ -1,6 +1,8 @@ #ifndef _NFS_NFS_H #define _NFS_NFS_H +#include + #include #include #include @@ -10,6 +12,9 @@ #define NFS3_FHSIZE 64 #define NFS_FHSIZE 32 +#define NFSD_MINVERS 2 +#define NFSD_MAXVERS 4 + struct nfs_fh_len { int fh_size; u_int8_t fh_handle[NFS3_FHSIZE]; @@ -36,11 +41,22 @@ struct nfs_fh_old { #define NFSCTL_GETFD 7 /* get an fh by path (used by mountd) */ #define NFSCTL_GETFS 8 /* get an fh by path with max size (used by mountd) */ -/* Above this is for lockd. */ -#define NFSCTL_LOCKD 0x10000 -#define LOCKDCTL_SVC NFSCTL_LOCKD +#define NFSCTL_UDPBIT (1 << (17 - 1)) +#define NFSCTL_TCPBIT (1 << (18 - 1)) + +#define NFSCTL_VERUNSET(_cltbits, _v) ((_cltbits) &= ~(1 << ((_v) - 1))) +#define NFSCTL_UDPUNSET(_cltbits) ((_cltbits) &= ~NFSCTL_UDPBIT) +#define NFSCTL_TCPUNSET(_cltbits) ((_cltbits) &= ~NFSCTL_TCPBIT) +#define NFSCTL_VERISSET(_cltbits, _v) ((_cltbits) & (1 << ((_v) - 1))) +#define NFSCTL_UDPISSET(_cltbits) ((_cltbits) & NFSCTL_UDPBIT) +#define NFSCTL_TCPISSET(_cltbits) ((_cltbits) & NFSCTL_TCPBIT) +#define NFSCTL_UDPSET(_cltbits) ((_cltbits) |= NFSCTL_UDPBIT) +#define NFSCTL_TCPSET(_cltbits) ((_cltbits) |= NFSCTL_TCPBIT) + +#define NFSCTL_ANYPROTO(_cltbits) ((_cltbits) & (NFSCTL_UDPBIT | NFSCTL_TCPBIT)) +#define NFSCTL_ALLBITS (~0) /* SVC */ struct nfsctl_svc { @@ -58,11 +74,22 @@ struct nfsctl_client { unsigned char cl_fhkey[NFSCLNT_KEYMAX]; }; +/* IN 2.5.6? __kernel_dev_t changed size, and __kernel_old_dev_t was left + * with the old value. We need to make sure we use the right one. + * + */ +#include +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,70) +# define __nfsd_dev_t __kernel_old_dev_t +#else +# define __nfsd_dev_t __kernel_dev_t +#endif + /* EXPORT/UNEXPORT */ struct nfsctl_export { char ex_client[NFSCLNT_IDMAX+1]; char ex_path[NFS_MAXPATHLEN+1]; - __kernel_dev_t ex_dev; + __nfsd_dev_t ex_dev; __kernel_ino_t ex_ino; int ex_flags; __kernel_uid_t ex_anon_uid; @@ -83,7 +110,7 @@ struct nfsctl_uidmap { /* GETFH */ struct nfsctl_fhparm { struct sockaddr gf_addr; - __kernel_dev_t gf_dev; + __nfsd_dev_t gf_dev; __kernel_ino_t gf_ino; int gf_version; };