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