summaryrefslogtreecommitdiffstats
path: root/include/rpcsvc/nlm_prot.x
diff options
context:
space:
mode:
Diffstat (limited to 'include/rpcsvc/nlm_prot.x')
-rw-r--r--include/rpcsvc/nlm_prot.x151
1 files changed, 144 insertions, 7 deletions
diff --git a/include/rpcsvc/nlm_prot.x b/include/rpcsvc/nlm_prot.x
index 4c3ea7d..ba0ccf3 100644
--- a/include/rpcsvc/nlm_prot.x
+++ b/include/rpcsvc/nlm_prot.x
@@ -1,6 +1,3 @@
-/* @(#)nlm_prot.x 2.1 88/08/01 4.0 RPCSRC */
-/* @(#)nlm_prot.x 1.8 87/09/21 Copyr 1987 Sun Micro */
-
/*
* Network lock manager protocol definition
* Copyright (C) 1986 Sun Microsystems, Inc.
@@ -12,9 +9,13 @@
%#define LM_MAXSTRLEN 1024
%#define MAXNAMELEN LM_MAXSTRLEN+1
#else
+%#include <sys/cdefs.h>
%#ifndef lint
%static const char rcsid[] =
% "$FreeBSD$";
+%/*static char sccsid[] = "from: @(#)nlm_prot.x 1.8 87/09/21 Copyr 1987 Sun Micro";*/
+%/*static char sccsid[] = "from: * @(#)nlm_prot.x 2.1 88/08/01 4.0 RPCSRC";*/
+%__RCSID("$NetBSD: nlm_prot.x,v 1.6 2000/06/07 14:30:15 bouyer Exp $");
%#endif /* not lint */
#endif
@@ -77,20 +78,20 @@ struct nlm_lockargs {
};
struct nlm_cancargs {
- netobj cookie;
+ netobj cookie;
bool block;
bool exclusive;
struct nlm_lock alock;
};
struct nlm_testargs {
- netobj cookie;
+ netobj cookie;
bool exclusive;
struct nlm_lock alock;
};
struct nlm_unlockargs {
- netobj cookie;
+ netobj cookie;
struct nlm_lock alock;
};
@@ -140,11 +141,127 @@ struct nlm_notify {
long state;
};
+#ifdef RPC_HDR
+%/* definitions for NLM version 4 */
+#endif
+enum nlm4_stats {
+ nlm4_granted = 0,
+ nlm4_denied = 1,
+ nlm4_denied_nolock = 2,
+ nlm4_blocked = 3,
+ nlm4_denied_grace_period = 4,
+ nlm4_deadlck = 5,
+ nlm4_rofs = 6,
+ nlm4_stale_fh = 7,
+ nlm4_fbig = 8,
+ nlm4_failed = 9
+};
+
+struct nlm4_stat {
+ nlm4_stats stat;
+};
+
+struct nlm4_holder {
+ bool exclusive;
+ u_int32_t svid;
+ netobj oh;
+ u_int64_t l_offset;
+ u_int64_t l_len;
+};
+
+struct nlm4_lock {
+ string caller_name<MAXNAMELEN>;
+ netobj fh;
+ netobj oh;
+ u_int32_t svid;
+ u_int64_t l_offset;
+ u_int64_t l_len;
+};
+
+struct nlm4_share {
+ string caller_name<MAXNAMELEN>;
+ netobj fh;
+ netobj oh;
+ fsh_mode mode;
+ fsh_access access;
+};
+
+union nlm4_testrply switch (nlm4_stats stat) {
+ case nlm_denied:
+ struct nlm4_holder holder;
+ default:
+ void;
+};
+
+struct nlm4_testres {
+ netobj cookie;
+ nlm4_testrply stat;
+};
+
+struct nlm4_testargs {
+ netobj cookie;
+ bool exclusive;
+ struct nlm4_lock alock;
+};
+
+struct nlm4_res {
+ netobj cookie;
+ nlm4_stat stat;
+};
+
+struct nlm4_lockargs {
+ netobj cookie;
+ bool block;
+ bool exclusive;
+ struct nlm4_lock alock;
+ bool reclaim; /* used for recovering locks */
+ int state; /* specify local status monitor state */
+};
+
+struct nlm4_cancargs {
+ netobj cookie;
+ bool block;
+ bool exclusive;
+ struct nlm4_lock alock;
+};
+
+struct nlm4_unlockargs {
+ netobj cookie;
+ struct nlm4_lock alock;
+};
+
+struct nlm4_shareargs {
+ netobj cookie;
+ nlm4_share share;
+ bool reclaim;
+};
+
+struct nlm4_shareres {
+ netobj cookie;
+ nlm4_stats stat;
+ int sequence;
+};
+
+/*
+ * argument for the procedure called by rpc.statd when a monitored host
+ * status change.
+ * XXX assumes LM_MAXSTRLEN == SM_MAXSTRLEN
+ */
+struct nlm_sm_status {
+ string mon_name<LM_MAXSTRLEN>; /* name of host */
+ int state; /* new state */
+ opaque priv[16]; /* private data */
+};
+
/*
* Over-the-wire protocol used between the network lock managers
*/
program NLM_PROG {
+ version NLM_SM {
+ void NLM_SM_NOTIFY(struct nlm_sm_status) = 1;
+ } = 0;
+
version NLM_VERS {
nlm_testres NLM_TEST(struct nlm_testargs) = 1;
@@ -180,5 +297,25 @@ program NLM_PROG {
void NLM_FREE_ALL(nlm_notify) = 23;
} = 3;
+ version NLM_VERS4 {
+ nlm4_testres NLM4_TEST(nlm4_testargs) = 1;
+ nlm4_res NLM4_LOCK(nlm4_lockargs) = 2;
+ nlm4_res NLM4_CANCEL(nlm4_cancargs) = 3;
+ nlm4_res NLM4_UNLOCK(nlm4_unlockargs) = 4;
+ nlm4_res NLM4_GRANTED(nlm4_testargs) = 5;
+ void NLM4_TEST_MSG(nlm4_testargs) = 6;
+ void NLM4_LOCK_MSG(nlm4_lockargs) = 7;
+ void NLM4_CANCEL_MSG(nlm4_cancargs) = 8;
+ void NLM4_UNLOCK_MSG(nlm4_unlockargs) = 9;
+ void NLM4_GRANTED_MSG(nlm4_testargs) = 10;
+ void NLM4_TEST_RES(nlm4_testres) = 11;
+ void NLM4_LOCK_RES(nlm4_res) = 12;
+ void NLM4_CANCEL_RES(nlm4_res) = 13;
+ void NLM4_UNLOCK_RES(nlm4_res) = 14;
+ void NLM4_GRANTED_RES(nlm4_res) = 15;
+ nlm4_shareres NLM4_SHARE(nlm4_shareargs) = 20;
+ nlm4_shareres NLM4_UNSHARE(nlm4_shareargs) = 21;
+ nlm4_res NLM4_NM_LOCK(nlm4_lockargs) = 22;
+ void NLM4_FREE_ALL(nlm_notify) = 23;
+ } = 4;
} = 100021;
-
OpenPOWER on IntegriCloud