43fbc1407320719128f11513e0571d460ab59e39
[deb_libnfs.git] / nsm / nsm.x
1 /*
2 * NSM definitions from:
3 * Protocols for Interworking: XNFS, Version 3W
4 * http://pubs.opengroup.org/onlinepubs/9629799/chap11.htm
5 *
6 * Symbols then massaged to avoid too much namespace pollution
7 * and to bring more inline with convention in nlm.
8 */
9
10 /*
11 * This defines the maximum length of the string
12 * identifying the caller.
13 */
14 const NSM_MAXSTRLEN = 1024;
15
16 enum nsmstat1 {
17 NSM_STAT_SUCC = 0, /* NSM agrees to monitor. */
18 NSM_STAT_FAIL = 1 /* NSM cannot monitor. */
19 };
20
21 struct nsm_my_id {
22 string my_name<NSM_MAXSTRLEN>; /* hostname */
23 int my_prog; /* RPC program number */
24 int my_vers; /* program version number */
25 int my_proc; /* procedure number */
26 };
27
28 struct nsm_mon_id {
29 string mon_name<NSM_MAXSTRLEN>; /* name of the host to be monitored */
30 struct nsm_my_id my_id;
31 };
32
33 struct NSM1_STATres {
34 nsmstat1 res;
35 int state;
36 };
37
38 struct NSM1_STATargs {
39 string mon_name<NSM_MAXSTRLEN>;
40 };
41
42 struct NSM1_MONres {
43 nsmstat1 res;
44 int state;
45 };
46
47 struct NSM1_MONargs {
48 struct nsm_mon_id mon_id;
49 opaque priv[16]; /* private information */
50 };
51
52 struct NSM1_UNMONres {
53 int state; /* state number of NSM */
54 };
55
56 struct NSM1_UNMONargs {
57 struct nsm_mon_id mon_id;
58 };
59
60 struct NSM1_UNMONALLres {
61 int state; /* state number of NSM */
62 };
63
64 struct NSM1_UNMONALLargs {
65 struct nsm_my_id my_id;
66 };
67
68 struct NSM1_NOTIFYargs {
69 string mon_name<NSM_MAXSTRLEN>;
70 int state;
71 };
72
73 /*
74 * Protocol description for the NSM program.
75 */
76 program NSM_PROGRAM {
77 version NSM_V1 {
78 void NSM1_NULL(void) = 0;
79 struct NSM1_STATres NSM1_STAT(struct NSM1_STATargs) = 1;
80 struct NSM1_MONres NSM1_MON(struct NSM1_MONargs) = 2;
81 struct NSM1_UNMONres NSM1_UNMON(struct NSM1_UNMONargs) = 3;
82 struct NSM1_UNMONALLres NSM1_UNMON_ALL(struct NSM1_UNMONALLargs) = 4;
83 void NSM1_SIMU_CRASH(void) = 5;
84 void NSM1_NOTIFY(struct NSM1_NOTIFYargs) = 6;
85 } = 1;
86 } = 100024;
87
88