klm_prot.h
001:
002:
003:
004:
005:
006: #ifndef _KLM_PROT_H_RPCGEN
007: #define _KLM_PROT_H_RPCGEN
008:
009: #include <rpc/rpc.h>
010:
011:
012: #ifdef __cplusplus
013: extern "C" {
014: #endif
015:
016: #define LM_MAXSTRLEN 1024
017:
018: enum klm_stats {
019: klm_granted = 0,
020: klm_denied = 1,
021: klm_denied_nolocks = 2,
022: klm_working = 3,
023: };
024: typedef enum klm_stats klm_stats;
025:
026: struct klm_lock {
027: char *server_name;
028: netobj fh;
029: int pid;
030: u_int l_offset;
031: u_int l_len;
032: };
033: typedef struct klm_lock klm_lock;
034:
035: struct klm_holder {
036: bool_t exclusive;
037: int svid;
038: u_int l_offset;
039: u_int l_len;
040: };
041: typedef struct klm_holder klm_holder;
042:
043: struct klm_stat {
044: klm_stats stat;
045: };
046: typedef struct klm_stat klm_stat;
047:
048: struct klm_testrply {
049: klm_stats stat;
050: union {
051: struct klm_holder holder;
052: } klm_testrply_u;
053: };
054: typedef struct klm_testrply klm_testrply;
055:
056: struct klm_lockargs {
057: bool_t block;
058: bool_t exclusive;
059: struct klm_lock alock;
060: };
061: typedef struct klm_lockargs klm_lockargs;
062:
063: struct klm_testargs {
064: bool_t exclusive;
065: struct klm_lock alock;
066: };
067: typedef struct klm_testargs klm_testargs;
068:
069: struct klm_unlockargs {
070: struct klm_lock alock;
071: };
072: typedef struct klm_unlockargs klm_unlockargs;
073:
074: #define KLM_PROG 100020
075: #define KLM_VERS 1
076:
077: #if defined(__STDC__) || defined(__cplusplus)
078: #define KLM_TEST 1
079: extern klm_testrply * klm_test_1(struct klm_testargs *, CLIENT *);
080: extern klm_testrply * klm_test_1_svc(struct klm_testargs *, struct svc_req *);
081: #define KLM_LOCK 2
082: extern klm_stat * klm_lock_1(struct klm_lockargs *, CLIENT *);
083: extern klm_stat * klm_lock_1_svc(struct klm_lockargs *, struct svc_req *);
084: #define KLM_CANCEL 3
085: extern klm_stat * klm_cancel_1(struct klm_lockargs *, CLIENT *);
086: extern klm_stat * klm_cancel_1_svc(struct klm_lockargs *, struct svc_req *);
087: #define KLM_UNLOCK 4
088: extern klm_stat * klm_unlock_1(struct klm_unlockargs *, CLIENT *);
089: extern klm_stat * klm_unlock_1_svc(struct klm_unlockargs *, struct svc_req *);
090: extern int klm_prog_1_freeresult (SVCXPRT *, xdrproc_t, caddr_t);
091:
092: #else
093: #define KLM_TEST 1
094: extern klm_testrply * klm_test_1();
095: extern klm_testrply * klm_test_1_svc();
096: #define KLM_LOCK 2
097: extern klm_stat * klm_lock_1();
098: extern klm_stat * klm_lock_1_svc();
099: #define KLM_CANCEL 3
100: extern klm_stat * klm_cancel_1();
101: extern klm_stat * klm_cancel_1_svc();
102: #define KLM_UNLOCK 4
103: extern klm_stat * klm_unlock_1();
104: extern klm_stat * klm_unlock_1_svc();
105: extern int klm_prog_1_freeresult ();
106: #endif
107:
108:
109:
110: #if defined(__STDC__) || defined(__cplusplus)
111: extern bool_t xdr_klm_stats (XDR *, klm_stats*);
112: extern bool_t xdr_klm_lock (XDR *, klm_lock*);
113: extern bool_t xdr_klm_holder (XDR *, klm_holder*);
114: extern bool_t xdr_klm_stat (XDR *, klm_stat*);
115: extern bool_t xdr_klm_testrply (XDR *, klm_testrply*);
116: extern bool_t xdr_klm_lockargs (XDR *, klm_lockargs*);
117: extern bool_t xdr_klm_testargs (XDR *, klm_testargs*);
118: extern bool_t xdr_klm_unlockargs (XDR *, klm_unlockargs*);
119:
120: #else
121: extern bool_t xdr_klm_stats ();
122: extern bool_t xdr_klm_lock ();
123: extern bool_t xdr_klm_holder ();
124: extern bool_t xdr_klm_stat ();
125: extern bool_t xdr_klm_testrply ();
126: extern bool_t xdr_klm_lockargs ();
127: extern bool_t xdr_klm_testargs ();
128: extern bool_t xdr_klm_unlockargs ();
129:
130: #endif
131:
132: #ifdef __cplusplus
133: }
134: #endif
135:
136: #endif
137:
© Andrew Scott 2006 -
2025,
All Rights Reserved