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

#include "gssd.h"
#ifndef _KERNEL
#include <stdio.h>
#include <stdlib.h> /* getenv, exit */
#endif /* !_KERNEL */
/*
 * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
 * Use is subject to license terms.
 */

/*
 *  RPC protocol information for gssd, the usermode daemon that
 *  assists the kernel with gssapi. It is gssd that executes all
 *  gssapi calls except for some such as gss_sign(), and
 *  gss_verify(), which are executed in the kernel itself.
 *
 *  File generated from gssd.x
 */

#define	NO 0
#define	YES 1
#define	FOREVER 1

#include <sys/types.h>
#include <sys/time.h>
#include <rpc/auth_sys.h>
#ifndef _KERNEL
#include <locale.h>
#endif /* not _KERNEL */

#ifdef _KERNEL
extern void killgssd_handle(CLIENT *);
extern CLIENT *getgssd_handle(void);
#endif /* _KERNEL */

/* gss_indicate_mechs_arg is void. This appears in the rpc call def */

/* Default timeout can be changed using clnt_control() */
static struct timeval TIMEOUT = { 25, 0 };

enum clnt_stat 
gss_acquire_cred_1(argp, clnt_res, clnt)
	gss_acquire_cred_arg *argp;
	gss_acquire_cred_res *clnt_res;
	CLIENT *clnt;
{
	return (clnt_call(clnt, GSS_ACQUIRE_CRED,
		(xdrproc_t)xdr_gss_acquire_cred_arg, (caddr_t)argp,
		(xdrproc_t)xdr_gss_acquire_cred_res, (caddr_t)clnt_res,
		TIMEOUT));
}

enum clnt_stat 
gss_release_cred_1(argp, clnt_res, clnt)
	gss_release_cred_arg *argp;
	gss_release_cred_res *clnt_res;
	CLIENT *clnt;
{
	return (clnt_call(clnt, GSS_RELEASE_CRED,
		(xdrproc_t)xdr_gss_release_cred_arg, (caddr_t)argp,
		(xdrproc_t)xdr_gss_release_cred_res, (caddr_t)clnt_res,
		TIMEOUT));
}

enum clnt_stat 
gss_init_sec_context_1(argp, clnt_res, clnt)
	gss_init_sec_context_arg *argp;
	gss_init_sec_context_res *clnt_res;
	CLIENT *clnt;
{
	return (clnt_call(clnt, GSS_INIT_SEC_CONTEXT,
		(xdrproc_t)xdr_gss_init_sec_context_arg, (caddr_t)argp,
		(xdrproc_t)xdr_gss_init_sec_context_res, (caddr_t)clnt_res,
		TIMEOUT));
}

enum clnt_stat 
gss_accept_sec_context_1(argp, clnt_res, clnt)
	gss_accept_sec_context_arg *argp;
	gss_accept_sec_context_res *clnt_res;
	CLIENT *clnt;
{
	return (clnt_call(clnt, GSS_ACCEPT_SEC_CONTEXT,
		(xdrproc_t)xdr_gss_accept_sec_context_arg, (caddr_t)argp,
		(xdrproc_t)xdr_gss_accept_sec_context_res, (caddr_t)clnt_res,
		TIMEOUT));
}

enum clnt_stat 
gss_process_context_token_1(argp, clnt_res, clnt)
	gss_process_context_token_arg *argp;
	gss_process_context_token_res *clnt_res;
	CLIENT *clnt;
{
	return (clnt_call(clnt, GSS_PROCESS_CONTEXT_TOKEN,
		(xdrproc_t)xdr_gss_process_context_token_arg, (caddr_t)argp,
		(xdrproc_t)xdr_gss_process_context_token_res, (caddr_t)clnt_res,
		TIMEOUT));
}

enum clnt_stat 
gss_delete_sec_context_1(argp, clnt_res, clnt)
	gss_delete_sec_context_arg *argp;
	gss_delete_sec_context_res *clnt_res;
	CLIENT *clnt;
{
	return (clnt_call(clnt, GSS_DELETE_SEC_CONTEXT,
		(xdrproc_t)xdr_gss_delete_sec_context_arg, (caddr_t)argp,
		(xdrproc_t)xdr_gss_delete_sec_context_res, (caddr_t)clnt_res,
		TIMEOUT));
}

enum clnt_stat 
gss_context_time_1(argp, clnt_res, clnt)
	gss_context_time_arg *argp;
	gss_context_time_res *clnt_res;
	CLIENT *clnt;
{
	return (clnt_call(clnt, GSS_CONTEXT_TIME,
		(xdrproc_t)xdr_gss_context_time_arg, (caddr_t)argp,
		(xdrproc_t)xdr_gss_context_time_res, (caddr_t)clnt_res,
		TIMEOUT));
}

enum clnt_stat 
gss_sign_1(argp, clnt_res, clnt)
	gss_sign_arg *argp;
	gss_sign_res *clnt_res;
	CLIENT *clnt;
{
	return (clnt_call(clnt, GSS_SIGN,
		(xdrproc_t)xdr_gss_sign_arg, (caddr_t)argp,
		(xdrproc_t)xdr_gss_sign_res, (caddr_t)clnt_res,
		TIMEOUT));
}

enum clnt_stat 
gss_verify_1(argp, clnt_res, clnt)
	gss_verify_arg *argp;
	gss_verify_res *clnt_res;
	CLIENT *clnt;
{
	return (clnt_call(clnt, GSS_VERIFY,
		(xdrproc_t)xdr_gss_verify_arg, (caddr_t)argp,
		(xdrproc_t)xdr_gss_verify_res, (caddr_t)clnt_res,
		TIMEOUT));
}

enum clnt_stat 
gss_display_status_1(argp, clnt_res, clnt)
	gss_display_status_arg *argp;
	gss_display_status_res *clnt_res;
	CLIENT *clnt;
{
	return (clnt_call(clnt, GSS_DISPLAY_STATUS,
		(xdrproc_t)xdr_gss_display_status_arg, (caddr_t)argp,
		(xdrproc_t)xdr_gss_display_status_res, (caddr_t)clnt_res,
		TIMEOUT));
}

enum clnt_stat 
gss_indicate_mechs_1(argp, clnt_res, clnt)
	void *argp;
	gss_indicate_mechs_res *clnt_res;
	CLIENT *clnt;
{
	return (clnt_call(clnt, GSS_INDICATE_MECHS,
		(xdrproc_t)xdr_void, (caddr_t)argp,
		(xdrproc_t)xdr_gss_indicate_mechs_res, (caddr_t)clnt_res,
		TIMEOUT));
}

enum clnt_stat 
gss_inquire_cred_1(argp, clnt_res, clnt)
	gss_inquire_cred_arg *argp;
	gss_inquire_cred_res *clnt_res;
	CLIENT *clnt;
{
	return (clnt_call(clnt, GSS_INQUIRE_CRED,
		(xdrproc_t)xdr_gss_inquire_cred_arg, (caddr_t)argp,
		(xdrproc_t)xdr_gss_inquire_cred_res, (caddr_t)clnt_res,
		TIMEOUT));
}

enum clnt_stat 
gss_seal_1(argp, clnt_res, clnt)
	gss_seal_arg *argp;
	gss_seal_res *clnt_res;
	CLIENT *clnt;
{
	return (clnt_call(clnt, GSS_SEAL,
		(xdrproc_t)xdr_gss_seal_arg, (caddr_t)argp,
		(xdrproc_t)xdr_gss_seal_res, (caddr_t)clnt_res,
		TIMEOUT));
}

enum clnt_stat 
gss_unseal_1(argp, clnt_res, clnt)
	gss_unseal_arg *argp;
	gss_unseal_res *clnt_res;
	CLIENT *clnt;
{
	return (clnt_call(clnt, GSS_UNSEAL,
		(xdrproc_t)xdr_gss_unseal_arg, (caddr_t)argp,
		(xdrproc_t)xdr_gss_unseal_res, (caddr_t)clnt_res,
		TIMEOUT));
}

enum clnt_stat 
gsscred_expname_to_unix_cred_1(argp, clnt_res, clnt)
	gsscred_expname_to_unix_cred_arg *argp;
	gsscred_expname_to_unix_cred_res *clnt_res;
	CLIENT *clnt;
{
	return (clnt_call(clnt, GSSCRED_EXPNAME_TO_UNIX_CRED,
		(xdrproc_t)xdr_gsscred_expname_to_unix_cred_arg, (caddr_t)argp,
		(xdrproc_t)xdr_gsscred_expname_to_unix_cred_res, (caddr_t)clnt_res,
		TIMEOUT));
}

enum clnt_stat 
gsscred_name_to_unix_cred_1(argp, clnt_res, clnt)
	gsscred_name_to_unix_cred_arg *argp;
	gsscred_name_to_unix_cred_res *clnt_res;
	CLIENT *clnt;
{
	return (clnt_call(clnt, GSSCRED_NAME_TO_UNIX_CRED,
		(xdrproc_t)xdr_gsscred_name_to_unix_cred_arg, (caddr_t)argp,
		(xdrproc_t)xdr_gsscred_name_to_unix_cred_res, (caddr_t)clnt_res,
		TIMEOUT));
}

enum clnt_stat 
gss_get_group_info_1(argp, clnt_res, clnt)
	gss_get_group_info_arg *argp;
	gss_get_group_info_res *clnt_res;
	CLIENT *clnt;
{
	return (clnt_call(clnt, GSS_GET_GROUP_INFO,
		(xdrproc_t)xdr_gss_get_group_info_arg, (caddr_t)argp,
		(xdrproc_t)xdr_gss_get_group_info_res, (caddr_t)clnt_res,
		TIMEOUT));
}

enum clnt_stat 
gss_get_kmod_1(argp, clnt_res, clnt)
	gss_get_kmod_arg *argp;
	gss_get_kmod_res *clnt_res;
	CLIENT *clnt;
{
	return (clnt_call(clnt, GSS_GET_KMOD,
		(xdrproc_t)xdr_gss_get_kmod_arg, (caddr_t)argp,
		(xdrproc_t)xdr_gss_get_kmod_res, (caddr_t)clnt_res,
		TIMEOUT));
}

enum clnt_stat 
gss_export_sec_context_1(argp, clnt_res, clnt)
	gss_export_sec_context_arg *argp;
	gss_export_sec_context_res *clnt_res;
	CLIENT *clnt;
{
	return (clnt_call(clnt, GSS_EXPORT_SEC_CONTEXT,
		(xdrproc_t)xdr_gss_export_sec_context_arg, (caddr_t)argp,
		(xdrproc_t)xdr_gss_export_sec_context_res, (caddr_t)clnt_res,
		TIMEOUT));
}

enum clnt_stat 
gss_import_sec_context_1(argp, clnt_res, clnt)
	gss_import_sec_context_arg *argp;
	gss_import_sec_context_res *clnt_res;
	CLIENT *clnt;
{
	return (clnt_call(clnt, GSS_IMPORT_SEC_CONTEXT,
		(xdrproc_t)xdr_gss_import_sec_context_arg, (caddr_t)argp,
		(xdrproc_t)xdr_gss_import_sec_context_res, (caddr_t)clnt_res,
		TIMEOUT));
}

enum clnt_stat 
gss_add_cred_1(argp, clnt_res, clnt)
	gss_add_cred_arg *argp;
	gss_add_cred_res *clnt_res;
	CLIENT *clnt;
{
	return (clnt_call(clnt, GSS_ADD_CRED,
		(xdrproc_t)xdr_gss_add_cred_arg, (caddr_t)argp,
		(xdrproc_t)xdr_gss_add_cred_res, (caddr_t)clnt_res,
		TIMEOUT));
}

enum clnt_stat 
gss_inquire_cred_by_mech_1(argp, clnt_res, clnt)
	gss_inquire_cred_by_mech_arg *argp;
	gss_inquire_cred_by_mech_res *clnt_res;
	CLIENT *clnt;
{
	return (clnt_call(clnt, GSS_INQUIRE_CRED_BY_MECH,
		(xdrproc_t)xdr_gss_inquire_cred_by_mech_arg, (caddr_t)argp,
		(xdrproc_t)xdr_gss_inquire_cred_by_mech_res, (caddr_t)clnt_res,
		TIMEOUT));
}
