/* * linux/fs/nfs/callback.h * * Copyright (C) 2004 Trond Myklebust * * NFSv4 callback definitions */ #ifndef __LINUX_FS_NFS_CALLBACK_H #define __LINUX_FS_NFS_CALLBACK_H #define NFS4_CALLBACK 0x40000000 #define NFS4_CALLBACK_XDRSIZE 2048 #define NFS4_CALLBACK_BUFSIZE (1024 + NFS4_CALLBACK_XDRSIZE) enum nfs4_callback_procnum { CB_NULL = 0, CB_COMPOUND = 1, }; enum nfs4_callback_opnum { OP_CB_GETATTR = 3, OP_CB_RECALL = 4, OP_CB_ILLEGAL = 10044, }; struct cb_compound_hdr_arg { int taglen; const char *tag; unsigned int callback_ident; unsigned nops; }; struct cb_compound_hdr_res { __be32 *status; int taglen; const char *tag; __be32 *nops; }; struct cb_getattrargs { struct sockaddr_in *addr; struct nfs_fh fh; uint32_t bitmap[2]; }; struct cb_getattrres { __be32 status; uint32_t bitmap[2]; uint64_t size; uint64_t change_attr; struct timespec ctime; struct timespec mtime; }; struct cb_recallargs { struct sockaddr_in *addr; struct nfs_fh fh; nfs4_stateid stateid; uint32_t truncate; }; extern __be32 nfs4_callback_getattr(struct cb_getattrargs *args, struct cb_getattrres *res); extern __be32 nfs4_callback_recall(struct cb_recallargs *args, void *dummy); #ifdef CONFIG_NFS_V4 extern int nfs_callback_up(void); extern void nfs_callback_down(void); #else #define nfs_callback_up() (0) #define nfs_callback_down() do {} while(0) #endif extern unsigned int nfs_callback_set_tcpport; extern unsigned short nfs_callback_tcpport; #endif /* __LINUX_FS_NFS_CALLBACK_H */