Commit | Line | Data |
---|---|---|
af359dea C |
1 | /* @(#)sm_inter.x 2.2 88/08/01 4.0 RPCSRC */ |
2 | /* @(#)sm_inter.x 1.7 87/06/24 Copyr 1987 Sun Micro */ | |
3 | ||
4 | /* | |
5 | * Sun RPC is a product of Sun Microsystems, Inc. and is provided for | |
6 | * unrestricted use provided that this legend is included on all tape | |
7 | * media and as a part of the software program in whole or part. Users | |
8 | * may copy or modify Sun RPC without charge, but are not authorized | |
9 | * to license or distribute it to anyone else except as part of a product or | |
10 | * program developed by the user. | |
11 | * | |
12 | * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE | |
13 | * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR | |
14 | * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. | |
15 | * | |
16 | * Sun RPC is provided with no support and without any obligation on the | |
17 | * part of Sun Microsystems, Inc. to assist in its use, correction, | |
18 | * modification or enhancement. | |
19 | * | |
20 | * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE | |
21 | * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC | |
22 | * OR ANY PART THEREOF. | |
23 | * | |
24 | * In no event will Sun Microsystems, Inc. be liable for any lost revenue | |
25 | * or profits or other special, indirect and consequential damages, even if | |
26 | * Sun has been advised of the possibility of such damages. | |
27 | * | |
28 | * Sun Microsystems, Inc. | |
29 | * 2550 Garcia Avenue | |
30 | * Mountain View, California 94043 | |
31 | */ | |
32 | ||
33 | /* | |
34 | * Status monitor protocol specification | |
35 | * Copyright (C) 1986 Sun Microsystems, Inc. | |
36 | * | |
37 | */ | |
38 | ||
39 | ||
40 | program SM_PROG { | |
41 | version SM_VERS { | |
42 | /* res_stat = stat_succ if status monitor agrees to monitor */ | |
43 | /* res_stat = stat_fail if status monitor cannot monitor */ | |
44 | /* if res_stat == stat_succ, state = state number of site sm_name */ | |
45 | struct sm_stat_res SM_STAT(struct sm_name) = 1; | |
46 | ||
47 | /* res_stat = stat_succ if status monitor agrees to monitor */ | |
48 | /* res_stat = stat_fail if status monitor cannot monitor */ | |
49 | /* stat consists of state number of local site */ | |
50 | struct sm_stat_res SM_MON(struct mon) = 2; | |
51 | ||
52 | /* stat consists of state number of local site */ | |
53 | struct sm_stat SM_UNMON(struct mon_id) = 3; | |
54 | ||
55 | /* stat consists of state number of local site */ | |
56 | struct sm_stat SM_UNMON_ALL(struct my_id) = 4; | |
57 | ||
58 | void SM_SIMU_CRASH(void) = 5; | |
59 | ||
60 | } = 1; | |
61 | } = 100024; | |
62 | ||
63 | const SM_MAXSTRLEN = 1024; | |
64 | ||
65 | struct sm_name { | |
66 | string mon_name<SM_MAXSTRLEN>; | |
67 | }; | |
68 | ||
69 | struct my_id { | |
70 | string my_name<SM_MAXSTRLEN>; /* name of the site iniates the monitoring request*/ | |
71 | int my_prog; /* rpc program # of the requesting process */ | |
72 | int my_vers; /* rpc version # of the requesting process */ | |
73 | int my_proc; /* rpc procedure # of the requesting process */ | |
74 | }; | |
75 | ||
76 | struct mon_id { | |
77 | string mon_name<SM_MAXSTRLEN>; /* name of the site to be monitored */ | |
78 | struct my_id my_id; | |
79 | }; | |
80 | ||
81 | ||
82 | struct mon{ | |
83 | struct mon_id mon_id; | |
84 | opaque priv[16]; /* private information to store at monitor for requesting process */ | |
85 | }; | |
86 | ||
87 | ||
88 | /* | |
89 | * state # of status monitor monitonically increases each time | |
90 | * status of the site changes: | |
91 | * an even number (>= 0) indicates the site is down and | |
92 | * an odd number (> 0) indicates the site is up; | |
93 | */ | |
94 | struct sm_stat { | |
95 | int state; /* state # of status monitor */ | |
96 | }; | |
97 | ||
98 | enum res { | |
99 | stat_succ = 0, /* status monitor agrees to monitor */ | |
100 | stat_fail = 1 /* status monitor cannot monitor */ | |
101 | }; | |
102 | ||
103 | struct sm_stat_res { | |
104 | res res_stat; | |
105 | int state; | |
106 | }; | |
107 | ||
108 | /* | |
109 | * structure of the status message sent back by the status monitor | |
110 | * when monitor site status changes | |
111 | */ | |
112 | struct status { | |
113 | string mon_name<SM_MAXSTRLEN>; | |
114 | int state; | |
115 | opaque priv[16]; /* stored private information */ | |
116 | }; |