xref: /openbmc/linux/net/sunrpc/sunrpc.h (revision f45db2b909c7e76f35850e78f017221f30282b8e)
155ae1aabSRicardo Labiaga /******************************************************************************
255ae1aabSRicardo Labiaga 
355ae1aabSRicardo Labiaga (c) 2008 NetApp.  All Rights Reserved.
455ae1aabSRicardo Labiaga 
555ae1aabSRicardo Labiaga NetApp provides this source code under the GPL v2 License.
655ae1aabSRicardo Labiaga The GPL v2 license is available at
755ae1aabSRicardo Labiaga http://opensource.org/licenses/gpl-license.php.
855ae1aabSRicardo Labiaga 
955ae1aabSRicardo Labiaga THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
1055ae1aabSRicardo Labiaga "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
1155ae1aabSRicardo Labiaga LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
1255ae1aabSRicardo Labiaga A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
1355ae1aabSRicardo Labiaga CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
1455ae1aabSRicardo Labiaga EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
1555ae1aabSRicardo Labiaga PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
1655ae1aabSRicardo Labiaga PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
1755ae1aabSRicardo Labiaga LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
1855ae1aabSRicardo Labiaga NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
1955ae1aabSRicardo Labiaga SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2055ae1aabSRicardo Labiaga 
2155ae1aabSRicardo Labiaga ******************************************************************************/
2255ae1aabSRicardo Labiaga 
2355ae1aabSRicardo Labiaga /*
2455ae1aabSRicardo Labiaga  * Functions and macros used internally by RPC
2555ae1aabSRicardo Labiaga  */
2655ae1aabSRicardo Labiaga 
2755ae1aabSRicardo Labiaga #ifndef _NET_SUNRPC_SUNRPC_H
2855ae1aabSRicardo Labiaga #define _NET_SUNRPC_SUNRPC_H
2955ae1aabSRicardo Labiaga 
306951867bSBenny Halevy #include <linux/net.h>
316951867bSBenny Halevy 
326951867bSBenny Halevy /*
336951867bSBenny Halevy  * Header for dynamically allocated rpc buffers.
346951867bSBenny Halevy  */
356951867bSBenny Halevy struct rpc_buffer {
366951867bSBenny Halevy 	size_t	len;
376951867bSBenny Halevy 	char	data[];
386951867bSBenny Halevy };
396951867bSBenny Halevy 
40ef11ce24SNeilBrown static inline int sock_is_loopback(struct sock *sk)
41ef11ce24SNeilBrown {
42ef11ce24SNeilBrown 	struct dst_entry *dst;
43ef11ce24SNeilBrown 	int loopback = 0;
44ef11ce24SNeilBrown 	rcu_read_lock();
45ef11ce24SNeilBrown 	dst = rcu_dereference(sk->sk_dst_cache);
46ef11ce24SNeilBrown 	if (dst && dst->dev &&
47ef11ce24SNeilBrown 	    (dst->dev->features & NETIF_F_LOOPBACK))
48ef11ce24SNeilBrown 		loopback = 1;
49ef11ce24SNeilBrown 	rcu_read_unlock();
50ef11ce24SNeilBrown 	return loopback;
51ef11ce24SNeilBrown }
52ef11ce24SNeilBrown 
5380df9d20SStanislav Kinsbursky int rpc_clients_notifier_register(void);
5480df9d20SStanislav Kinsbursky void rpc_clients_notifier_unregister(void);
55*f45db2b9SNeilBrown void auth_domain_cleanup(void);
5655ae1aabSRicardo Labiaga #endif /* _NET_SUNRPC_SUNRPC_H */
57