/*
 * $RCSfile: xkpm.h,v $
 *
 * x-kernel v3.3
 *
 * Copyright (c) 1993,1991,1990,1996  Arizona Board of Regents
 *
 * $Log: xkpm.h,v $
 * Revision 1.2  1996/01/29 20:13:09  slm
 * Updated copyright and version.
 *
 * Revision 1.1  1995/07/28  21:32:09  slm
 * Initial revision
 *
 * Revision 1.6.1.1  1994/07/19  20:30:26  menze
 * XDR_ENCODE and XDR_DECODE conflicted with system definitions,
 * removed them (xkpm.c includes rpc/xdr.h instead)
 *
 * X-kernel version of the portmapper,
 * by Rich Schroeppel, based on older versions by Sean O'Malley,
 * Larry Petersen, & Norm Hutchinson.
 */

#ifndef XKPMAP_H
#define XKPMAP_H

#define PMAPPROC_NULL  0
#define PMAPPROC_SET  1
#define PMAPPROC_UNSET  2
#define PMAPPROC_GETPORT  3
#define PMAPPROC_DUMP  4
#define PMAPPROC_CALLIT  5

typedef struct {uint32 prog, vers, prot, port;} PMAP_ARGS;

#define PMAP_PORT   111 
#define PMAP_PROG   100000
#define PMAP_VERS   2

#ifdef SUNXDR
#define XKXDR  XDR
#define xkxdr_init(name,address,length,direction) \
  {xdrmem_create(&name,address,length,direction);}
#else
typedef char* XKXDR;
#define xkxdr_init(name,address,length,direction) \
  {name=address;}
#endif  /* SUNXDR */


#ifdef __STDC__

#endif /* __STDC__ */

#ifndef SCOUT

void xkxdr_long( XKXDR *, long );
long xkxdr_long_decode( XKXDR *name );

#else

void xkxdr_long( XKXDR *, int32 );
int32 xkxdr_long_decode( XKXDR *name );

#endif

void xkxdr_pmap_decode( XKXDR *, PMAP_ARGS *, int );
long yabcopy ( void *, char *, long, void * );

void pmap_init(Protl);

#endif

/* end of xkpm.h */
