1/* 2 * GPL HEADER START 3 * 4 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 5 * 6 * This program is free software; you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License version 2 only, 8 * as published by the Free Software Foundation. 9 * 10 * This program is distributed in the hope that it will be useful, but 11 * WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 * General Public License version 2 for more details (a copy is included 14 * in the LICENSE file that accompanied this code). 15 * 16 * You should have received a copy of the GNU General Public License 17 * version 2 along with this program; If not, see 18 * http://www.sun.com/software/products/lustre/docs/GPLv2.pdf 19 * 20 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, 21 * CA 95054 USA or visit www.sun.com if you need additional information or 22 * have any questions. 23 * 24 * GPL HEADER END 25 */ 26/* 27 * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. 28 * Use is subject to license terms. 29 * 30 * Copyright (c) 2012, Intel Corporation. 31 */ 32/* 33 * This file is part of Lustre, http://www.lustre.org/ 34 * Lustre is a trademark of Sun Microsystems, Inc. 35 */ 36 37#define DEBUG_PORTAL_ALLOC 38 39#ifndef __LINUX_SOCKNAL_LIB_H__ 40#define __LINUX_SOCKNAL_LIB_H__ 41 42#include <linux/module.h> 43#include <linux/kernel.h> 44#include <linux/version.h> 45#include <linux/mm.h> 46#include <linux/string.h> 47#include <linux/stat.h> 48#include <linux/errno.h> 49#include <linux/unistd.h> 50#include <net/sock.h> 51#include <net/tcp.h> 52#include <linux/uio.h> 53#include <linux/if.h> 54 55#include <asm/uaccess.h> 56#include <asm/irq.h> 57 58#include <linux/init.h> 59#include <linux/fs.h> 60#include <linux/file.h> 61#include <linux/stat.h> 62#include <linux/list.h> 63#include <linux/kmod.h> 64#include <linux/sysctl.h> 65#include <asm/uaccess.h> 66#include <asm/div64.h> 67#include <linux/syscalls.h> 68 69#include <linux/libcfs/libcfs.h> 70#include <linux/libcfs/linux/portals_compat25.h> 71 72#include <linux/crc32.h> 73static inline __u32 ksocknal_csum(__u32 crc, unsigned char const *p, size_t len) 74{ 75#if 1 76 return crc32_le(crc, p, len); 77#else 78 while (len-- > 0) 79 crc = ((crc + 0x100) & ~0xff) | ((crc + *p++) & 0xff) ; 80 return crc; 81#endif 82} 83 84#define SOCKNAL_WSPACE(sk) sk_stream_wspace(sk) 85#define SOCKNAL_MIN_WSPACE(sk) sk_stream_min_wspace(sk) 86 87/* assume one thread for each connection type */ 88#define SOCKNAL_NSCHEDS 3 89#define SOCKNAL_NSCHEDS_HIGH (SOCKNAL_NSCHEDS << 1) 90 91#endif 92