home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1999 March B / SCO_CASTOR4RRT.iso / rpc / root / usr / include / rpcsvc / klm_prot.h < prev    next >
C/C++ Source or Header  |  1998-08-19  |  4KB  |  157 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. #ifndef _NET_LOCKMGR_KLM_PROT_H    /* wrapper symbol for kernel use */
  12. #define _NET_LOCKMGR_KLM_PROT_H    /* subject to change without notice */
  13.  
  14. #ident    "@(#)klm_prot.h    1.2"
  15. #ident    "$Header: $"
  16.  
  17. #if defined(__cplusplus)
  18. extern "C" {
  19. #endif
  20.  
  21. /*
  22.  *    Copyright (c) 1982, 1986, 1988
  23.  *    The Regents of the University of California
  24.  *    All Rights Reserved.
  25.  *    Portions of this document are derived from
  26.  *    software developed by the University of
  27.  *    California, Berkeley, and its contributors.
  28.  */
  29.  
  30. /*
  31.  *    klm_prot.h, kernel lock manager protocol definitions
  32.  */
  33.  
  34. #ifdef _KERNEL_HEADERS
  35.  
  36. #include <util/types.h>        /* REQUIRED */
  37. #include <net/rpc/types.h>    /* REQUIRED */
  38. #include <net/rpc/xdr.h>    /* REQUIRED */
  39.  
  40. #elif defined(_KERNEL)
  41.  
  42. #include <sys/types.h>        /* REQUIRED */
  43. #include <rpc/types.h>        /* REQUIRED */
  44. #include <rpc/xdr.h>        /* REQUIRED */
  45.  
  46. #endif /* _KERNEL_HEADERS */
  47.  
  48. #define    KLM_PROG        ((u_long)100020)
  49. #define    KLM_VERS        ((u_long)1)
  50. #define    KLM_TEST        ((u_long)1)
  51. #define    KLM_LOCK        ((u_long)2)
  52. #define    KLM_CANCEL        ((u_long)3)
  53. #define    KLM_UNLOCK        ((u_long)4)
  54.  
  55. #define    LM_MAXSTRLEN        1024
  56.  
  57. enum klm_stats {
  58.     klm_granted = 0,
  59.     klm_denied = 1,
  60.     klm_denied_nolocks = 2,
  61.     klm_working = 3,
  62.     klm_deadlck = 5
  63. };
  64. typedef    enum klm_stats        klm_stats;
  65.  
  66. struct klm_lock {
  67.     char    *server_name;
  68.     netobj    fh;
  69.     int    base;
  70.     int    length;
  71.     int    type;
  72.     int    granted;
  73.     int    color;
  74.     int    LockID;
  75.     int    pid;
  76.     int    class;
  77.     long    rsys;
  78.     long    rpid;
  79. };
  80. typedef    struct klm_lock        klm_lock;
  81.  
  82. struct klm_holder {
  83.     bool_t    exclusive;
  84.     int    base;
  85.     int    length;
  86.     int    type;
  87.     int    granted;
  88.     int    color;
  89.     int    LockID;
  90.     int    pid;
  91.     int    class;
  92.     long    rsys;
  93.     long    rpid;
  94. };
  95. typedef    struct klm_holder    klm_holder;
  96.  
  97. struct klm_stat {
  98.     klm_stats stat;
  99. };
  100. typedef    struct klm_stat        klm_stat;
  101.  
  102. struct klm_testrply {
  103.     klm_stats stat;
  104.     union {
  105.         struct klm_holder holder;
  106.     } klm_testrply_u;
  107. };
  108. typedef    struct klm_testrply    klm_testrply;
  109.  
  110. struct klm_lockargs {
  111.     bool_t    block;
  112.     bool_t    exclusive;
  113.     struct klm_lock alock;
  114. };
  115. typedef    struct klm_lockargs    klm_lockargs;
  116.  
  117. struct klm_testargs {
  118.     bool_t    exclusive;
  119.     struct klm_lock alock;
  120. };
  121. typedef    struct klm_testargs    klm_testargs;
  122.  
  123. struct klm_unlockargs {
  124.     struct klm_lock alock;
  125. };
  126. typedef    struct klm_unlockargs    klm_unlockargs;
  127.  
  128. #ifdef    __STDC__
  129.  
  130. extern    bool_t        xdr_klm_stats(XDR *, klm_stats *);
  131. extern    bool_t        xdr_klm_lock(XDR *, klm_lock *);
  132. extern    bool_t        xdr_klm_holder(XDR *, klm_holder *);
  133. extern    bool_t        xdr_klm_stat(XDR *, klm_stat *);
  134. extern    bool_t        xdr_klm_testrply(XDR *, klm_testrply *);
  135. extern    bool_t        xdr_klm_lockargs(XDR *, klm_lockargs *);
  136. extern    bool_t        xdr_klm_testargs(XDR *, klm_testargs *);
  137. extern    bool_t        xdr_klm_unlockargs(XDR *, klm_unlockargs *);
  138.  
  139. #else
  140.  
  141. extern    bool_t        xdr_klm_stats();
  142. extern    bool_t        xdr_klm_lock();
  143. extern    bool_t        xdr_klm_holder();
  144. extern    bool_t        xdr_klm_stat();
  145. extern    bool_t        xdr_klm_testrply();
  146. extern    bool_t        xdr_klm_lockargs();
  147. extern    bool_t        xdr_klm_testargs();
  148. extern    bool_t        xdr_klm_unlockargs();
  149.  
  150. #endif
  151.  
  152. #if defined(__cplusplus)
  153.     }
  154. #endif
  155.  
  156. #endif /* _NET_LOCKMGR_KLM_PROT_H */
  157.