#define KLM_PROG ((u_long)100020) #define KLM_VERS ((u_long)1) #define KLM_TEST ((u_long)1) extern klm_testrply *klm_test_1(); #define KLM_LOCK ((u_long)2) extern klm_stat *klm_lock_1(); #define KLM_CANCEL ((u_long)3) extern klm_stat *klm_cancel_1(); #define KLM_UNLOCK ((u_long)4) extern klm_stat *klm_unlock_1(); #define LM_MAXSTRLEN 1024 enum klm_stats { klm_granted = 0, klm_denied = 1, klm_denied_nolocks = 2, klm_working = 3, }; typedef enum klm_stats klm_stats; bool_t xdr_klm_stats(); struct klm_lock { char *server_name; netobj fh; int pid; u_int l_offset; u_int l_len; }; typedef struct klm_lock klm_lock; bool_t xdr_klm_lock(); struct klm_holder { bool_t exclusive; int svid; u_int l_offset; u_int l_len; }; typedef struct klm_holder klm_holder; bool_t xdr_klm_holder(); struct klm_stat { klm_stats stat; }; typedef struct klm_stat klm_stat; bool_t xdr_klm_stat(); struct klm_testrply { klm_stats stat; union { struct klm_holder holder; } klm_testrply_u; }; typedef struct klm_testrply klm_testrply; bool_t xdr_klm_testrply(); struct klm_lockargs { bool_t block; bool_t exclusive; struct klm_lock alock; }; typedef struct klm_lockargs klm_lockargs; bool_t xdr_klm_lockargs(); struct klm_testargs { bool_t exclusive; struct klm_lock alock; }; typedef struct klm_testargs klm_testargs; bool_t xdr_klm_testargs(); struct klm_unlockargs { struct klm_lock alock; }; typedef struct klm_unlockargs klm_unlockargs; bool_t xdr_klm_unlockargs();