Branch data Line data Source code
1 : : /*
2 : : * NFS protocol definitions
3 : : *
4 : : * This file contains constants mostly for Version 2 of the protocol,
5 : : * but also has a couple of NFSv3 bits in (notably the error codes).
6 : : */
7 : : #ifndef _LINUX_NFS_H
8 : : #define _LINUX_NFS_H
9 : :
10 : : #include <linux/sunrpc/msg_prot.h>
11 : : #include <linux/string.h>
12 : : #include <uapi/linux/nfs.h>
13 : :
14 : : /*
15 : : * This is the kernel NFS client file handle representation
16 : : */
17 : : #define NFS_MAXFHSIZE 128
18 : : struct nfs_fh {
19 : : unsigned short size;
20 : : unsigned char data[NFS_MAXFHSIZE];
21 : : };
22 : :
23 : : /*
24 : : * Returns a zero iff the size and data fields match.
25 : : * Checks only "size" bytes in the data field.
26 : : */
27 : : static inline int nfs_compare_fh(const struct nfs_fh *a, const struct nfs_fh *b)
28 : : {
29 [ # # ][ # # ]: 0 : return a->size != b->size || memcmp(a->data, b->data, a->size) != 0;
[ # # ][ # # ]
30 : : }
31 : :
32 : : static inline void nfs_copy_fh(struct nfs_fh *target, const struct nfs_fh *source)
33 : : {
34 : 0 : target->size = source->size;
35 : 0 : memcpy(target->data, source->data, source->size);
36 : : }
37 : :
38 : :
39 : : /*
40 : : * This is really a general kernel constant, but since nothing like
41 : : * this is defined in the kernel headers, I have to do it here.
42 : : */
43 : : #define NFS_OFFSET_MAX ((__s64)((~(__u64)0) >> 1))
44 : :
45 : :
46 : : enum nfs3_stable_how {
47 : : NFS_UNSTABLE = 0,
48 : : NFS_DATA_SYNC = 1,
49 : : NFS_FILE_SYNC = 2
50 : : };
51 : : #endif /* _LINUX_NFS_H */
|