| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | /*
 | 
					
						
							|  |  |  |  * NFS protocol definitions | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * This file contains constants mostly for Version 2 of the protocol, | 
					
						
							|  |  |  |  * but also has a couple of NFSv3 bits in (notably the error codes). | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | #ifndef _LINUX_NFS_H
 | 
					
						
							|  |  |  | #define _LINUX_NFS_H
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-04-25 14:51:45 +01:00
										 |  |  | #include <linux/sunrpc/msg_prot.h>
 | 
					
						
							|  |  |  | #include <linux/string.h>
 | 
					
						
							| 
									
										
										
										
											2012-10-13 10:46:48 +01:00
										 |  |  | #include <uapi/linux/nfs.h>
 | 
					
						
							| 
									
										
										
										
											2006-04-25 14:51:45 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | /*
 | 
					
						
							|  |  |  |  * This is the kernel NFS client file handle representation | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | #define NFS_MAXFHSIZE		128
 | 
					
						
							|  |  |  | struct nfs_fh { | 
					
						
							|  |  |  | 	unsigned short		size; | 
					
						
							|  |  |  | 	unsigned char		data[NFS_MAXFHSIZE]; | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /*
 | 
					
						
							|  |  |  |  * Returns a zero iff the size and data fields match. | 
					
						
							|  |  |  |  * Checks only "size" bytes in the data field. | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | static inline int nfs_compare_fh(const struct nfs_fh *a, const struct nfs_fh *b) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	return a->size != b->size || memcmp(a->data, b->data, a->size) != 0; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static inline void nfs_copy_fh(struct nfs_fh *target, const struct nfs_fh *source) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	target->size = source->size; | 
					
						
							|  |  |  | 	memcpy(target->data, source->data, source->size); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /*
 | 
					
						
							|  |  |  |  * This is really a general kernel constant, but since nothing like | 
					
						
							|  |  |  |  * this is defined in the kernel headers, I have to do it here. | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | #define NFS_OFFSET_MAX		((__s64)((~(__u64)0) >> 1))
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | enum nfs3_stable_how { | 
					
						
							|  |  |  | 	NFS_UNSTABLE = 0, | 
					
						
							|  |  |  | 	NFS_DATA_SYNC = 1, | 
					
						
							|  |  |  | 	NFS_FILE_SYNC = 2 | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | #endif /* _LINUX_NFS_H */
 |