/* IBM_PROLOG_BEGIN_TAG                                                   */
/* This is an automatically generated prolog.                             */
/*                                                                        */
/* onc720 src/oncplus/usr/include/tirpc/rpc/kerbd_prot.h 1.1              */
/*                                                                        */
/*                                                                        */
/*                                                                        */
/* COPYRIGHT International Business Machines Corp. 1996,1999              */
/* All Rights Reserved                                                    */
/*                                                                        */
/* IBM_PROLOG_END_TAG                                                     */
/* @(#)78	1.1  src/oncplus/usr/include/tirpc/rpc/kerbd_prot.h, onchdrs, onc720 1/21/99 14:28:59  */
/*
 *   COMPONENT_NAME: onchdrs
 *
 *   FUNCTIONS: KINST
 *		KNAME
 *		KREALM
 *		kerb_ucred
 *		kgetkcred_4
 *		kgetkcred_4_svc
 *		kgetkcred_arg
 *		kgetkcred_res
 *		kgetkcred_resd
 *		kgetucred_4
 *		kgetucred_4_svc
 *		kgetucred_arg
 *		kgetucred_res
 *		ksetkcred_4
 *		ksetkcred_4_svc
 *		ksetkcred_arg
 *		ksetkcred_res
 *		ksetkcred_resd
 *		ucred_stat
 *		xdr_KINST
 *		xdr_KNAME
 *		xdr_KREALM
 *		xdr_kerb_ucred
 *		xdr_kgetkcred_arg
 *		xdr_kgetkcred_res
 *		xdr_kgetkcred_resd
 *		xdr_kgetucred_arg
 *		xdr_kgetucred_res
 *		xdr_ksetkcred_arg
 *		xdr_ksetkcred_res
 *		xdr_ksetkcred_resd
 *		xdr_ucred_stat
 *
 *   ORIGINS: 162
 *
 */

/*
 *  Copyright 1990,1991 Sun Microsystems, Inc.
 */

/*
 * Please do not edit this file.
 * It was generated using rpcgen.
 */

#ifndef _RPC_KERBD_PROT_H
#define	_RPC_KERBD_PROT_H


#include <rpc/rpc.h>

/*
 *  RPC protocol information for kerbd, the usermode daemon which
 *  assists the kernel when handling kerberos ticket generation and
 *  validation.  It is kerbd which actually communicates with the
 *  kerberos KDC.
 *
 *  File generated from kerbd.x 1.2 91/05/01 SMI
 *
 *  Copyright 1990,1991 Sun Microsystems, Inc.
 */
#include <kerberos/krb.h>

#ifdef	__cplusplus
extern "C" {
#endif

typedef struct {
	u_int TICKET_len;
	char *TICKET_val;
} TICKET;
#ifdef __cplusplus
extern "C" bool_t xdr_TICKET(XDR *, TICKET*);
#else
extern  bool_t xdr_TICKET(XDR *, TICKET*);
#endif


typedef char *KNAME;
#ifdef __cplusplus
extern "C" bool_t xdr_KNAME(XDR *, KNAME*);
#else
extern  bool_t xdr_KNAME(XDR *, KNAME*);
#endif


typedef char *KINST;
#ifdef __cplusplus
extern "C" bool_t xdr_KINST(XDR *, KINST*);
#else
extern  bool_t xdr_KINST(XDR *, KINST*);
#endif


typedef char *KREALM;
#ifdef __cplusplus
extern "C" bool_t xdr_KREALM(XDR *, KREALM*);
#else
extern  bool_t xdr_KREALM(XDR *, KREALM*);
#endif


struct ksetkcred_arg {
	u_long cksum;
	KNAME sname;
	KINST sinst;
	KREALM srealm;
};
typedef struct ksetkcred_arg ksetkcred_arg;
#ifdef __cplusplus
extern "C" bool_t xdr_ksetkcred_arg(XDR *, ksetkcred_arg*);
#else
extern  bool_t xdr_ksetkcred_arg(XDR *, ksetkcred_arg*);
#endif


struct ksetkcred_resd {
	TICKET ticket;
	des_block key;
};
typedef struct ksetkcred_resd ksetkcred_resd;
#ifdef __cplusplus
extern "C" bool_t xdr_ksetkcred_resd(XDR *, ksetkcred_resd*);
#else
extern  bool_t xdr_ksetkcred_resd(XDR *, ksetkcred_resd*);
#endif


struct ksetkcred_res {
	int status;
	union {
		ksetkcred_resd res;
	} ksetkcred_res_u;
};
typedef struct ksetkcred_res ksetkcred_res;
#ifdef __cplusplus
extern "C" bool_t xdr_ksetkcred_res(XDR *, ksetkcred_res*);
#else
extern  bool_t xdr_ksetkcred_res(XDR *, ksetkcred_res*);
#endif


struct kgetkcred_arg {
	TICKET ticket;
	KNAME sname;
	KINST sinst;
	u_long faddr;
};
typedef struct kgetkcred_arg kgetkcred_arg;
#ifdef __cplusplus
extern "C" bool_t xdr_kgetkcred_arg(XDR *, kgetkcred_arg*);
#else
extern  bool_t xdr_kgetkcred_arg(XDR *, kgetkcred_arg*);
#endif


struct kgetkcred_resd {
	KINST sinst;
	u_int k_flags;
	KNAME pname;
	KINST pinst;
	KREALM prealm;
	u_long checksum;
	des_block session;
	int life;
	u_long time_sec;
	u_long address;
	TICKET reply;
};
typedef struct kgetkcred_resd kgetkcred_resd;
#ifdef __cplusplus
extern "C" bool_t xdr_kgetkcred_resd(XDR *, kgetkcred_resd*);
#else
extern  bool_t xdr_kgetkcred_resd(XDR *, kgetkcred_resd*);
#endif


struct kgetkcred_res {
	int status;
	union {
		kgetkcred_resd res;
	} kgetkcred_res_u;
};
typedef struct kgetkcred_res kgetkcred_res;
#ifdef __cplusplus
extern "C" bool_t xdr_kgetkcred_res(XDR *, kgetkcred_res*);
#else
extern  bool_t xdr_kgetkcred_res(XDR *, kgetkcred_res*);
#endif


struct kgetucred_arg {
	KNAME pname;
};
typedef struct kgetucred_arg kgetucred_arg;
#ifdef __cplusplus
extern "C" bool_t xdr_kgetucred_arg(XDR *, kgetucred_arg*);
#else
extern  bool_t xdr_kgetucred_arg(XDR *, kgetucred_arg*);
#endif

#define	KUCRED_MAXGRPS 32

struct kerb_ucred {
	u_int uid;
	u_int gid;
	struct {
		u_int grplist_len;
		u_int *grplist_val;
	} grplist;
};
typedef struct kerb_ucred kerb_ucred;
#ifdef __cplusplus
extern "C" bool_t xdr_kerb_ucred(XDR *, kerb_ucred*);
#else
extern  bool_t xdr_kerb_ucred(XDR *, kerb_ucred*);
#endif


enum ucred_stat {
	UCRED_OK = 0,
	UCRED_UNKNOWN = 1
};
typedef enum ucred_stat ucred_stat;
#ifdef __cplusplus
extern "C" bool_t xdr_ucred_stat(XDR *, ucred_stat*);
#else
extern  bool_t xdr_ucred_stat(XDR *, ucred_stat*);
#endif


struct kgetucred_res {
	ucred_stat status;
	union {
		kerb_ucred cred;
	} kgetucred_res_u;
};
typedef struct kgetucred_res kgetucred_res;
#ifdef __cplusplus
extern "C" bool_t xdr_kgetucred_res(XDR *, kgetucred_res*);
#else
extern  bool_t xdr_kgetucred_res(XDR *, kgetucred_res*);
#endif


#define	KERBPROG ((u_long)100078)
#define	KERBVERS ((u_long)4)

#ifdef __cplusplus
#define	KGETKCRED ((u_long)1)
extern "C" kgetkcred_res * kgetkcred_4(kgetkcred_arg *, CLIENT *);
extern "C" kgetkcred_res * kgetkcred_4_svc(kgetkcred_arg *, struct svc_req *);
#define	KSETKCRED ((u_long)2)
extern "C" ksetkcred_res * ksetkcred_4(ksetkcred_arg *, CLIENT *);
extern "C" ksetkcred_res * ksetkcred_4_svc(ksetkcred_arg *, struct svc_req *);
#define	KGETUCRED ((u_long)3)
extern "C" kgetucred_res * kgetucred_4(kgetucred_arg *, CLIENT *);
extern "C" kgetucred_res * kgetucred_4_svc(kgetucred_arg *, struct svc_req *);
#else
#define	KGETKCRED ((u_long)1)
extern  kgetkcred_res * kgetkcred_4(kgetkcred_arg *, CLIENT *);
extern  kgetkcred_res * kgetkcred_4_svc(kgetkcred_arg *, struct svc_req *);
#define	KSETKCRED ((u_long)2)
extern  ksetkcred_res * ksetkcred_4(ksetkcred_arg *, CLIENT *);
extern  ksetkcred_res * ksetkcred_4_svc(ksetkcred_arg *, struct svc_req *);
#define	KGETUCRED ((u_long)3)
extern  kgetucred_res * kgetucred_4(kgetucred_arg *, CLIENT *);
extern  kgetucred_res * kgetucred_4_svc(kgetucred_arg *, struct svc_req *);
#endif

#ifdef	__cplusplus
}
#endif

#endif	/* !_RPC_KERBD_PROT_H */
