linux/fs/nfs/callback.h
<<
>>
Prefs
   1/*
   2 * linux/fs/nfs/callback.h
   3 *
   4 * Copyright (C) 2004 Trond Myklebust
   5 *
   6 * NFSv4 callback definitions
   7 */
   8#ifndef __LINUX_FS_NFS_CALLBACK_H
   9#define __LINUX_FS_NFS_CALLBACK_H
  10
  11#define NFS4_CALLBACK 0x40000000
  12#define NFS4_CALLBACK_XDRSIZE 2048
  13#define NFS4_CALLBACK_BUFSIZE (1024 + NFS4_CALLBACK_XDRSIZE)
  14
  15enum nfs4_callback_procnum {
  16        CB_NULL = 0,
  17        CB_COMPOUND = 1,
  18};
  19
  20enum nfs4_callback_opnum {
  21        OP_CB_GETATTR = 3,
  22        OP_CB_RECALL  = 4,
  23        OP_CB_ILLEGAL = 10044,
  24};
  25
  26struct cb_compound_hdr_arg {
  27        unsigned int taglen;
  28        const char *tag;
  29        unsigned int callback_ident;
  30        unsigned nops;
  31};
  32
  33struct cb_compound_hdr_res {
  34        __be32 *status;
  35        unsigned int taglen;
  36        const char *tag;
  37        __be32 *nops;
  38};
  39
  40struct cb_getattrargs {
  41        struct sockaddr *addr;
  42        struct nfs_fh fh;
  43        uint32_t bitmap[2];
  44};
  45
  46struct cb_getattrres {
  47        __be32 status;
  48        uint32_t bitmap[2];
  49        uint64_t size;
  50        uint64_t change_attr;
  51        struct timespec ctime;
  52        struct timespec mtime;
  53};
  54
  55struct cb_recallargs {
  56        struct sockaddr *addr;
  57        struct nfs_fh fh;
  58        nfs4_stateid stateid;
  59        uint32_t truncate;
  60};
  61
  62extern __be32 nfs4_callback_getattr(struct cb_getattrargs *args, struct cb_getattrres *res);
  63extern __be32 nfs4_callback_recall(struct cb_recallargs *args, void *dummy);
  64
  65#ifdef CONFIG_NFS_V4
  66extern int nfs_callback_up(void);
  67extern void nfs_callback_down(void);
  68#else
  69#define nfs_callback_up()       (0)
  70#define nfs_callback_down()     do {} while(0)
  71#endif
  72
  73extern unsigned int nfs_callback_set_tcpport;
  74extern unsigned short nfs_callback_tcpport;
  75
  76#endif /* __LINUX_FS_NFS_CALLBACK_H */
  77
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.