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

#ifndef _ADS_PRIV_H_RPCGEN
#define	_ADS_PRIV_H_RPCGEN

#include <rpc/rpc.h>
#ifndef _KERNEL
#include <synch.h>
#include <thread.h>
#endif /* !_KERNEL */

#ifdef __cplusplus
extern "C" {
#endif

/*
 * Copyright 2014 Nexenta Systems, Inc.  All rights reserved.
 */
/*
 * from ads_priv.x
 * Active Directory Services (ADS) Private interface between
 * libads and the ADS deamon.  (RPC over doors)
 */
/*
 *  Declarations for the ADS API
 */
#define	ADSPRIV_MAX_XFER 16384
#define	ADSPRIV_GUID_LEN 16
#define	ADSPRIV_SOCKADDR_LEN 256
#define	ADSPRIV_STR_MAX 256

typedef char adspriv_guid[ADSPRIV_GUID_LEN];

typedef char adspriv_sockaddr[ADSPRIV_SOCKADDR_LEN];

struct adspriv_dcinfo {
	char *dci_DcName;
	char *dci_DcAddr;
	u_int dci_AddrType;
	adspriv_guid dci_guid;
	char *dci_DomainName;
	char *dci_DnsForestName;
	u_int dci_Flags;
	char *dci_DcSiteName;
	char *dci_ClientSiteName;
	adspriv_sockaddr dci_sockaddr;
};
typedef struct adspriv_dcinfo adspriv_dcinfo;

struct DsForceRediscoveryArgs {
	u_int Flags;
	char *DomainName;
};
typedef struct DsForceRediscoveryArgs DsForceRediscoveryArgs;

struct DsGetDcNameArgs {
	char *ComputerName;
	char *DomainName;
	char *DomainGuid;
	char *SiteName;
	u_int Flags;
};
typedef struct DsGetDcNameArgs DsGetDcNameArgs;

struct DsGetDcNameRes {
	int status;
	union {
		adspriv_dcinfo res0;
	} DsGetDcNameRes_u;
};
typedef struct DsGetDcNameRes DsGetDcNameRes;

#define	ADSPRIV_PROGRAM	100001
#define	ADSPRIV_V1	1

#if defined(__STDC__) || defined(__cplusplus)
#define	ADSPRIV_NULL	0
extern  enum clnt_stat adspriv_null_1(void *, CLIENT *);
extern  bool_t adspriv_null_1_svc(void *, struct svc_req *);
#define	ADSPRIV_ForceRediscovery	1
extern  enum clnt_stat adspriv_forcerediscovery_1(DsForceRediscoveryArgs , int *, CLIENT *);
extern  bool_t adspriv_forcerediscovery_1_svc(DsForceRediscoveryArgs , int *, struct svc_req *);
#define	ADSPRIV_GetDcName	2
extern  enum clnt_stat adspriv_getdcname_1(DsGetDcNameArgs , DsGetDcNameRes *, CLIENT *);
extern  bool_t adspriv_getdcname_1_svc(DsGetDcNameArgs , DsGetDcNameRes *, struct svc_req *);
extern int adspriv_program_1_freeresult(SVCXPRT *, xdrproc_t, caddr_t);

#else /* K&R C */
#define	ADSPRIV_NULL	0
extern  enum clnt_stat adspriv_null_1();
extern  bool_t adspriv_null_1_svc();
#define	ADSPRIV_ForceRediscovery	1
extern  enum clnt_stat adspriv_forcerediscovery_1();
extern  bool_t adspriv_forcerediscovery_1_svc();
#define	ADSPRIV_GetDcName	2
extern  enum clnt_stat adspriv_getdcname_1();
extern  bool_t adspriv_getdcname_1_svc();
extern int adspriv_program_1_freeresult();
#endif /* K&R C */

/* the xdr functions */

#if defined(__STDC__) || defined(__cplusplus)
extern  bool_t xdr_adspriv_guid(XDR *, adspriv_guid);
extern  bool_t xdr_adspriv_sockaddr(XDR *, adspriv_sockaddr);
extern  bool_t xdr_adspriv_dcinfo(XDR *, adspriv_dcinfo*);
extern  bool_t xdr_DsForceRediscoveryArgs(XDR *, DsForceRediscoveryArgs*);
extern  bool_t xdr_DsGetDcNameArgs(XDR *, DsGetDcNameArgs*);
extern  bool_t xdr_DsGetDcNameRes(XDR *, DsGetDcNameRes*);

#else /* K&R C */
extern bool_t xdr_adspriv_guid();
extern bool_t xdr_adspriv_sockaddr();
extern bool_t xdr_adspriv_dcinfo();
extern bool_t xdr_DsForceRediscoveryArgs();
extern bool_t xdr_DsGetDcNameArgs();
extern bool_t xdr_DsGetDcNameRes();

#endif /* K&R C */

#ifdef __cplusplus
}
#endif

#endif /* !_ADS_PRIV_H_RPCGEN */
