]> git.saurik.com Git - apple/xnu.git/blobdiff - bsd/nfs/nfs_lock.h
xnu-2050.48.11.tar.gz
[apple/xnu.git] / bsd / nfs / nfs_lock.h
index 0737615c1121cb17d4c0245121d6ed66a8a7f726..5a5efe3e4c04f48d43c2670e15b4c273e964946c 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002-2007 Apple Inc.  All rights reserved.
+ * Copyright (c) 2002-2010 Apple Inc.  All rights reserved.
  *
  * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
  * 
@@ -90,6 +90,9 @@ typedef struct nfs_lock_msg {
 #define LOCKD_MSG_TEST         0x0002  /* just a lock test */
 #define LOCKD_MSG_NFSV3                0x0004  /* NFSv3 request */
 #define LOCKD_MSG_CANCEL       0x0008  /* cancelling blocked request */
+#define LOCKD_MSG_DENIED_GRACE 0x0010  /* lock denied due to grace period */
+#define LOCKD_MSG_RECLAIM      0x0020  /* lock reclaim request */
+#define LOCKD_MSG_TCP          0x0040  /* (try to) use TCP for request */
 
 /* The structure used to maintain the pending request queue */
 typedef struct nfs_lock_msg_request {
@@ -124,13 +127,29 @@ struct lockd_ans {
 #define LOCKD_ANS_GRANTED      0x0001  /* NLM_GRANTED request */
 #define LOCKD_ANS_LOCK_INFO    0x0002  /* lock info valid */
 #define LOCKD_ANS_LOCK_EXCL    0x0004  /* lock is exclusive */
+#define LOCKD_ANS_DENIED_GRACE 0x0008  /* lock denied due to grace period */
+
+
+/*
+ * The structure that lockd hands the kernel for each notify.
+ */
+#define LOCKD_NOTIFY_VERSION   1
+struct lockd_notify {
+       int                     ln_version;             /* lockd_notify version */
+       int                     ln_flags;               /* notify flags */
+       int                     ln_pad;                 /* (for alignment) */
+       int                     ln_addrcount;           /* # of addresss */
+       struct sockaddr_storage ln_addr[1];             /* List of addresses. */
+};
 
 
 #ifdef KERNEL
 void   nfs_lockinit(void);
-void   nfs_lockd_mount_change(int);
-int    nfs3_vnop_advlock(struct vnop_advlock_args *ap);
+void   nfs_lockd_mount_register(struct nfsmount *);
+void   nfs_lockd_mount_unregister(struct nfsmount *);
+int    nfs3_lockd_request(nfsnode_t, int, LOCKD_MSG_REQUEST *, int, thread_t);
 int    nfslockdans(proc_t p, struct lockd_ans *ansp);
+int    nfslockdnotify(proc_t p, user_addr_t argp);
 
 #endif
 #endif /* __APPLE_API_PRIVATE */