The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/dev/liquidio/lio_bsd.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /*
    2  *   BSD LICENSE
    3  *
    4  *   Copyright(c) 2017 Cavium, Inc.. All rights reserved.
    5  *   All rights reserved.
    6  *
    7  *   Redistribution and use in source and binary forms, with or without
    8  *   modification, are permitted provided that the following conditions
    9  *   are met:
   10  *
   11  *     * Redistributions of source code must retain the above copyright
   12  *       notice, this list of conditions and the following disclaimer.
   13  *     * Redistributions in binary form must reproduce the above copyright
   14  *       notice, this list of conditions and the following disclaimer in
   15  *       the documentation and/or other materials provided with the
   16  *       distribution.
   17  *     * Neither the name of Cavium, Inc. nor the names of its
   18  *       contributors may be used to endorse or promote products derived
   19  *       from this software without specific prior written permission.
   20  *
   21  *   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
   22  *   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
   23  *   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
   24  *   A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
   25  *   OWNER(S) OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   26  *   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   27  *   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
   28  *   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
   29  *   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
   30  *   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
   31  *   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
   32  */
   33 /*$FreeBSD$*/
   34 
   35 #ifndef __LIO_BSD_H__
   36 #define __LIO_BSD_H__
   37 
   38 #include <sys/param.h>
   39 #include <sys/gsb_crc32.h>
   40 #include <sys/eventhandler.h>
   41 #include <sys/socket.h>
   42 #include <sys/kernel.h>
   43 #include <sys/module.h>
   44 #include <sys/sockio.h>
   45 
   46 #include <net/if.h>
   47 #include <net/if_var.h>
   48 #include <net/bpf.h>
   49 #include <net/ethernet.h>
   50 #include <net/if_dl.h>
   51 #include <net/if_media.h>
   52 
   53 #include <net/if_types.h>
   54 #include <net/if_vlan_var.h>
   55 
   56 #include <netinet/in.h>
   57 #include <netinet/tcp_lro.h>
   58 
   59 #include <sys/bus.h>
   60 #include <machine/bus.h>
   61 #include <sys/rman.h>
   62 #include <vm/vm.h>
   63 #include <vm/pmap.h>
   64 #include <dev/pci/pcivar.h>
   65 #include <dev/pci/pcireg.h>
   66 #include <sys/sysctl.h>
   67 #include <sys/taskqueue.h>
   68 #include <sys/smp.h>
   69 #include <sys/kthread.h>
   70 #include <sys/firmware.h>
   71 
   72 #include <vm/vm_extern.h>
   73 #include <vm/vm_kern.h>
   74 
   75 #ifndef PCI_VENDOR_ID_CAVIUM
   76 #define PCI_VENDOR_ID_CAVIUM    0x177D
   77 #endif
   78 
   79 #define BIT(nr)         (1UL << (nr))
   80 
   81 #define lio_check_timeout(a, b)  ((int)((b) - (a)) < 0)
   82 
   83 #define lio_ms_to_ticks(x)                              \
   84         ((hz > 1000) ? ((x) * (hz/1000)) : ((x) / (1000/hz)))
   85 
   86 #define lio_mdelay(x) do {                              \
   87         if (cold)                                       \
   88                 DELAY(1000 * (x));                      \
   89         else                                            \
   90                 pause("Wait", lio_ms_to_ticks(x));      \
   91 } while(0)
   92 
   93 #define lio_sleep_timeout(timeout)      lio_mdelay((timeout))
   94 
   95 typedef uint32_t __be32;
   96 typedef uint64_t __be64;
   97 
   98 #define lio_dev_info(oct, format, args...)              \
   99         device_printf(oct->device, "Info: " format, ##args)
  100 #define lio_dev_warn(oct, format, args...)              \
  101         device_printf(oct->device, "Warn: " format, ##args)
  102 #define lio_dev_err(oct, format, args...)               \
  103         device_printf(oct->device, "Error: " format, ##args)
  104 
  105 #ifdef LIO_DEBUG
  106 #define lio_dev_dbg(oct, format, args...)               \
  107         device_printf(oct->device, "Debug: " format, ##args)
  108 #else
  109 #define lio_dev_dbg(oct, format, args...)       {do { } while (0); }
  110 #endif
  111 
  112 struct lio_stailq_node {
  113         STAILQ_ENTRY (lio_stailq_node) entries;
  114 };
  115 STAILQ_HEAD (lio_stailq_head, lio_stailq_node);
  116 
  117 static inline struct lio_stailq_node *
  118 lio_delete_first_node(struct lio_stailq_head *root)
  119 {
  120         struct lio_stailq_node *node;
  121 
  122         if (STAILQ_EMPTY(root))
  123                 node = NULL;
  124         else
  125                 node = STAILQ_FIRST(root);
  126 
  127         if (node != NULL)
  128                 STAILQ_REMOVE_HEAD(root, entries);
  129 
  130         return (node);
  131 }
  132 
  133 #endif  /* __LIO_BSD_H__ */

Cache object: 2c9edd33591a6987c6d9b45bd9d9e2a0


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.