linux/include/linux/nfs.h
<<
>>
Prefs
   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
  18struct 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 */
  27static inline int nfs_compare_fh(const struct nfs_fh *a, const struct nfs_fh *b)
  28{
  29        return a->size != b->size || memcmp(a->data, b->data, a->size) != 0;
  30}
  31
  32static inline void nfs_copy_fh(struct nfs_fh *target, const struct nfs_fh *source)
  33{
  34        target->size = source->size;
  35        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
  46enum nfs3_stable_how {
  47        NFS_UNSTABLE = 0,
  48        NFS_DATA_SYNC = 1,
  49        NFS_FILE_SYNC = 2,
  50
  51        /* used by direct.c to mark verf as invalid */
  52        NFS_INVALID_STABLE_HOW = -1
  53};
  54#endif /* _LINUX_NFS_H */
  55