#ifndef _LINUX_SUNRPC_AUTH_H
#define _LINUX_SUNRPC_AUTH_H
#include <linux/sunrpc/sched.h>
#include <linux/sunrpc/msg_prot.h>
#include <linux/sunrpc/xdr.h>
#include <linux/atomic.h>
#include <linux/rcupdate.h>
#include <linux/uidgid.h>
#include <linux/utsname.h>
#define NUL_CALLSLACK …
#define NUL_REPLYSLACK …
#define UNX_MAXNODENAME …
#define UNX_CALLSLACK …
#define UNX_NGROUPS …
struct rpcsec_gss_info;
struct auth_cred { … };
struct rpc_auth;
struct rpc_credops;
struct rpc_cred { … };
#define RPCAUTH_CRED_NEW …
#define RPCAUTH_CRED_UPTODATE …
#define RPCAUTH_CRED_HASHED …
#define RPCAUTH_CRED_NEGATIVE …
const struct cred *rpc_machine_cred(void);
struct rpc_cred_cache;
struct rpc_authops;
struct rpc_auth { … };
#define RPCAUTH_AUTH_DATATOUCH …
#define RPCAUTH_AUTH_UPDATE_SLACK …
struct rpc_auth_create_args { … };
#define RPCAUTH_LOOKUP_NEW …
#define RPCAUTH_LOOKUP_ASYNC …
struct rpc_authops { … };
struct rpc_credops { … };
extern const struct rpc_authops authunix_ops;
extern const struct rpc_authops authnull_ops;
extern const struct rpc_authops authtls_ops;
int __init rpc_init_authunix(void);
int __init rpcauth_init_module(void);
void rpcauth_remove_module(void);
void rpc_destroy_authunix(void);
int rpcauth_register(const struct rpc_authops *);
int rpcauth_unregister(const struct rpc_authops *);
struct rpc_auth * rpcauth_create(const struct rpc_auth_create_args *,
struct rpc_clnt *);
void rpcauth_release(struct rpc_auth *);
rpc_authflavor_t rpcauth_get_pseudoflavor(rpc_authflavor_t,
struct rpcsec_gss_info *);
int rpcauth_get_gssinfo(rpc_authflavor_t,
struct rpcsec_gss_info *);
struct rpc_cred * rpcauth_lookup_credcache(struct rpc_auth *, struct auth_cred *, int, gfp_t);
void rpcauth_init_cred(struct rpc_cred *, const struct auth_cred *, struct rpc_auth *, const struct rpc_credops *);
struct rpc_cred * rpcauth_lookupcred(struct rpc_auth *, int);
void put_rpccred(struct rpc_cred *);
int rpcauth_marshcred(struct rpc_task *task,
struct xdr_stream *xdr);
int rpcauth_checkverf(struct rpc_task *task,
struct xdr_stream *xdr);
int rpcauth_wrap_req_encode(struct rpc_task *task,
struct xdr_stream *xdr);
int rpcauth_wrap_req(struct rpc_task *task,
struct xdr_stream *xdr);
int rpcauth_unwrap_resp_decode(struct rpc_task *task,
struct xdr_stream *xdr);
int rpcauth_unwrap_resp(struct rpc_task *task,
struct xdr_stream *xdr);
bool rpcauth_xmit_need_reencode(struct rpc_task *task);
int rpcauth_refreshcred(struct rpc_task *);
void rpcauth_invalcred(struct rpc_task *);
int rpcauth_uptodatecred(struct rpc_task *);
int rpcauth_init_credcache(struct rpc_auth *);
void rpcauth_destroy_credcache(struct rpc_auth *);
void rpcauth_clear_credcache(struct rpc_cred_cache *);
char * rpcauth_stringify_acceptor(struct rpc_cred *);
static inline
struct rpc_cred *get_rpccred(struct rpc_cred *cred)
{ … }
#endif