home *** CD-ROM | disk | FTP | other *** search
- /*
- * Copyright (c) 1999, 2000
- * Politecnico di Torino. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that: (1) source code distributions
- * retain the above copyright notice and this paragraph in its entirety, (2)
- * distributions including binary code include the above copyright notice and
- * this paragraph in its entirety in the documentation or other materials
- * provided with the distribution, and (3) all advertising materials mentioning
- * features or use of this software display the following acknowledgement:
- * ``This product includes software developed by the Politecnico
- * di Torino, and its contributors.'' Neither the name of
- * the University nor the names of its contributors may be used to endorse
- * or promote products derived from this software without specific prior
- * written permission.
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- */
-
- #define u_long unsigned long
- #define u_int unsigned int
- #define u_short unsigned short
- #define enum_t int
- #define caddr_t char*
-
- struct opaque_auth {
- enum_t oa_flavor; /* flavor of auth */
- caddr_t oa_base; /* address of more auth stuff */
- u_int oa_length; /* not to exceed MAX_AUTH_BYTES */
- };
-
- struct accepted_reply {
- struct opaque_auth ar_verf;
- enum accept_stat ar_stat;
- union {
- struct {
- u_long low;
- u_long high;
- } AR_versions;
- /*struct {
- caddr_t where;
- xdrproc_t proc;
- } AR_results;
- /* and many other null cases */
- } ru;
- #define ar_results ru.AR_results
- #define ar_vers ru.AR_versions
- };
-
- struct rejected_reply {
- enum reject_stat rj_stat;
- union {
- struct {
- u_long low;
- u_long high;
- } RJ_versions;
- enum auth_stat RJ_why; /* why authentication did not work */
- } ru;
- #define rj_vers ru.RJ_versions
- #define rj_why ru.RJ_why
- };
-
- struct reply_body {
- enum reply_stat rp_stat;
- union {
- struct accepted_reply RP_ar;
- struct rejected_reply RP_dr;
- } ru;
- #define rp_acpt ru.RP_ar
- #define rp_rjct ru.RP_dr
- };
-
- struct call_body {
- u_long cb_rpcvers; /* must be equal to two */
- u_long cb_prog;
- u_long cb_vers;
- u_long cb_proc;
- struct opaque_auth cb_cred;
- struct opaque_auth cb_verf; /* protocol specific - provided by client */
- };
-
- struct rpc_msg {
- u_long rm_xid;
- enum msg_type rm_direction;
- union {
- struct call_body RM_cmb;
- struct reply_body RM_rmb;
- } ru;
- #define rm_call ru.RM_cmb
- #define rm_reply ru.RM_rmb
- };
-
- #define MSG_ACCEPTED 0
- #define MSG_DENIED 1
-
- #define SUCCESS 0
- #define PROG_UNAVAIL 1
- #define PROG_MISMATCH 2
- #define PROC_UNAVAIL 3
- #define GARBAGE_ARGS 4
- #define SYSTEM_ERR 5
-
- #define PMAPPORT ((u_short)111)
- #define PMAPPROG ((u_long)100000)
- #define PMAPVERS ((u_long)2)
- #define PMAPVERS_PROTO ((u_long)2)
- #define PMAPVERS_ORIG ((u_long)1)
- #define PMAPPROC_NULL ((u_long)0)
- #define PMAPPROC_SET ((u_long)1)
- #define PMAPPROC_UNSET ((u_long)2)
- #define PMAPPROC_GETPORT ((u_long)3)
- #define PMAPPROC_DUMP ((u_long)4)
- #define PMAPPROC_CALLIT ((u_long)5)
-
- #define CALL 0
- #define REPLY 1
-