home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 4 / Apprentice-Release4.iso / Source Code / C / Applications / Portable Patmos / usr / include / rpcsvc / sm_inter.x < prev    next >
Encoding:
Text File  |  1994-11-08  |  3.7 KB  |  121 lines  |  [TEXT/R*ch]

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