home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1999 March B / SCO_CASTOR4RRT.iso / nsu / root / usr / include / sac.h / sac
Text File  |  1998-08-19  |  4KB  |  137 lines

  1. /*
  2.  * Copyright (c) 1998 The Santa Cruz Operation, Inc.. All Rights Reserved. 
  3.  *                                                                         
  4.  *        THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF THE               
  5.  *                   SANTA CRUZ OPERATION INC.                             
  6.  *                                                                         
  7.  *   The copyright notice above does not evidence any actual or intended   
  8.  *   publication of such source code.                                      
  9.  */
  10.  
  11. /*        copyright    "%c%"     */
  12.  
  13. # ifndef _SAC_H
  14. # define _SAC_H
  15.  
  16. # ident    "@(#)head.usr:sac.h    1.4.4.4"
  17.  
  18. #if defined(__cplusplus)
  19. extern "C" {
  20. #endif
  21.  
  22. # include <sys/types.h>
  23.  
  24. # define IDLEN        4    /* length in bytes of a utmp id */
  25. # define SC_WILDC    0xff    /* wild character for utmp ids */
  26. # define PMTAGSIZE    14    /* maximum length in bytes for a port monitor tag */
  27.  
  28. /*
  29.  * values for rflag in doconfig()
  30.  */
  31.  
  32. # define NOASSIGN    0x1    /* don't allow assign operations */
  33. # define NORUN        0x2    /* don't allow run or runwait operations */
  34.  
  35.  
  36. /*
  37.  * message to SAC (header only).  This header is forever fixed.  The
  38.  * size field (pm_size) defines the size of the data portion of the
  39.  * message, which follows the header.  The form of this optional
  40.  * data portion is defined strictly by the message type (pm_type).
  41.  */
  42.  
  43. struct    pmmsg {
  44.     char    pm_type;        /* type of message */
  45.     uchar_t    pm_state;        /* current state of port monitor */
  46.     char    pm_maxclass;        /* max message class this PM understands */
  47.     char    pm_tag[PMTAGSIZE + 1];    /* port monitor's tag */
  48.     int    pm_size;        /* size of optional data portion */
  49. };
  50.  
  51.  
  52.  
  53. /*
  54.  * pm_type values
  55.  */
  56.  
  57. # define PM_STATUS    1        /* status response */
  58. # define PM_UNKNOWN    2        /* an unknown message was received */
  59.  
  60. /*
  61.  * pm_state values
  62.  */
  63.  
  64. /*
  65.  * Class 1 responses
  66.  */
  67.  
  68. # define PM_STARTING    1        /* port monitor in starting state */
  69. # define PM_ENABLED    2        /* port monitor in enabled state */
  70. # define PM_DISABLED    3        /* port monitor in disabled state */
  71. # define PM_STOPPING    4        /* port monitor in stopping state */
  72.  
  73. /*
  74.  * message to port monitor
  75.  */
  76.  
  77. struct    sacmsg {
  78.     int    sc_size;        /* size of optional data portion */
  79.     char    sc_type;        /* type of message */
  80. };
  81.  
  82.  
  83.  
  84. /*
  85.  * sc_type values
  86.  * These represent commands that the SAC sends to a port monitor.  These
  87.  * commands are divided into "classes" for extensibility.  Each subsequent
  88.  * "class" is a superset of the previous "classes" plus the new commands
  89.  * defined within that "class".  The header for all commands is identical;
  90.  * however, a command may be defined such that an optional data portion may
  91.  * be sent in addition to the header.  The format of this optional data piece
  92.  * is self-defining based on the command.  Important note:  the first message
  93.  * sent by the SAC will always be a class 1 message.  The port monitor
  94.  * response will indicate the maximum class that it is able to understand.
  95.  * Another note is that port monitors should only respond to a message with
  96.  * an equivalent class response (i.e. a class 1 command causes a class 1
  97.  * response).
  98.  */
  99.  
  100. /*
  101.  * Class 1 commands (currently, there are only class 1 commands)
  102.  */
  103.  
  104. # define SC_STATUS    1        /* status request */
  105. # define SC_ENABLE    2        /* enable request */
  106. # define SC_DISABLE    3        /* disable request */
  107. # define SC_READDB    4        /* read pmtab request */
  108.  
  109. /*
  110.  * `errno' values for Saferrno, note that Saferrno is used by
  111.  * both pmadm and sacadm and these values are shared between
  112.  * them
  113.  */
  114.  
  115. # define E_BADARGS    1    /* bad args or ill-formed command line */
  116. # define E_NOPRIV    2    /* user not privileged for operation */
  117. # define E_SAFERR    3    /* generic SAF error */
  118. # define E_SYSERR    4    /* system error */
  119. # define E_NOEXIST    5    /* invalid specification */
  120. # define E_DUP        6    /* entry already exists */
  121. # define E_PMRUN    7    /* port monitor is running */
  122. # define E_PMNOTRUN    8    /* port monitor is not running */
  123. # define E_RECOVER    9    /* in recovery */
  124. # define E_NOCONTACT    10    /* _pmtab updated, but notification failure */
  125.  
  126. #if defined(__STDC__)
  127. extern int doconfig(int, const char *, long);
  128. #else
  129. extern int doconfig();
  130. #endif
  131.  
  132. #if defined(__cplusplus)
  133. }
  134. #endif
  135.  
  136. # endif /* _SAC_H */
  137.