12573a464SChuck Lever /* SPDX-License-Identifier: GPL-2.0+ */
21d658336SSimo Sorce /*
31d658336SSimo Sorce  *  linux/net/sunrpc/gss_rpc_upcall.h
41d658336SSimo Sorce  *
51d658336SSimo Sorce  *  Copyright (C) 2012 Simo Sorce <simo@redhat.com>
61d658336SSimo Sorce  */
71d658336SSimo Sorce 
81d658336SSimo Sorce #ifndef _GSS_RPC_UPCALL_H
91d658336SSimo Sorce #define _GSS_RPC_UPCALL_H
101d658336SSimo Sorce 
11b1df7637SJ. Bruce Fields #include <linux/sunrpc/gss_api.h>
121d658336SSimo Sorce #include <linux/sunrpc/auth_gss.h>
131d658336SSimo Sorce #include "gss_rpc_xdr.h"
141d658336SSimo Sorce #include "../netns.h"
151d658336SSimo Sorce 
161d658336SSimo Sorce struct gssp_upcall_data {
171d658336SSimo Sorce 	struct xdr_netobj in_handle;
181d658336SSimo Sorce 	struct gssp_in_token in_token;
191d658336SSimo Sorce 	struct xdr_netobj out_handle;
201d658336SSimo Sorce 	struct xdr_netobj out_token;
21b1df7637SJ. Bruce Fields 	struct rpcsec_gss_oid mech_oid;
221d658336SSimo Sorce 	struct svc_cred creds;
231d658336SSimo Sorce 	int found_creds;
241d658336SSimo Sorce 	int major_status;
251d658336SSimo Sorce 	int minor_status;
261d658336SSimo Sorce };
271d658336SSimo Sorce 
281d658336SSimo Sorce int gssp_accept_sec_context_upcall(struct net *net,
291d658336SSimo Sorce 				struct gssp_upcall_data *data);
301d658336SSimo Sorce void gssp_free_upcall_data(struct gssp_upcall_data *data);
311d658336SSimo Sorce 
321d658336SSimo Sorce void init_gssp_clnt(struct sunrpc_net *);
331d658336SSimo Sorce int set_gssp_clnt(struct net *);
341d658336SSimo Sorce void clear_gssp_clnt(struct sunrpc_net *);
352573a464SChuck Lever 
361d658336SSimo Sorce #endif /* _GSS_RPC_UPCALL_H */
37