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/kern/msi_if.m

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 # Copyright (c) 2016 The FreeBSD Foundation
    3 #
    4 # This software was developed by Andrew Turner under
    5 # sponsorship from the FreeBSD Foundation.
    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 # 1. Redistributions of source code must retain the above copyright
   11 #    notice, this list of conditions and the following disclaimer.
   12 # 2. Redistributions in binary form must reproduce the above copyright
   13 #    notice, this list of conditions and the following disclaimer in the
   14 #    documentation and/or other materials provided with the distribution.
   15 #
   16 # THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
   17 # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
   18 # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
   19 # ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
   20 # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
   21 # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
   22 # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
   23 # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
   24 # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
   25 # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   26 # SUCH DAMAGE.
   27 #
   28 # $FreeBSD$
   29 #
   30 
   31 INTERFACE msi;
   32 
   33 HEADER {
   34         #include <machine/bus.h>
   35         #include <dev/iommu/iommu_msi.h>
   36 
   37         struct intr_irqsrc;
   38 };
   39 
   40 #
   41 # Default implementations of some methods.
   42 #
   43 CODE {
   44         static int
   45         iommu_init(device_t dev, device_t child, struct iommu_domain **domain)
   46         {
   47                 *domain = NULL;
   48                 return (0);
   49         }
   50         static void
   51         iommu_deinit(device_t dev, device_t child)
   52         {
   53         }
   54 };
   55 
   56 METHOD int alloc_msi {
   57         device_t        dev;
   58         device_t        child;
   59         int             count;
   60         int             maxcount;
   61         device_t        *pic;
   62         struct intr_irqsrc **srcs;
   63 };
   64 
   65 METHOD int release_msi {
   66         device_t        dev;
   67         device_t        child;
   68         int             count;
   69         struct intr_irqsrc **srcs;
   70 };
   71 
   72 METHOD int alloc_msix {
   73         device_t        dev;
   74         device_t        child;
   75         device_t        *pic;
   76         struct intr_irqsrc **src;
   77 };
   78 
   79 METHOD int release_msix {
   80         device_t        dev;
   81         device_t        child;
   82         struct intr_irqsrc *src;
   83 };
   84 
   85 METHOD int map_msi {
   86         device_t        dev;
   87         device_t        child;
   88         struct intr_irqsrc *src;
   89         uint64_t        *addr;
   90         uint32_t        *data;
   91 };
   92 
   93 METHOD int iommu_init {
   94         device_t        dev;
   95         device_t        child;
   96         struct iommu_domain **domain;
   97 } DEFAULT iommu_init;
   98 
   99 METHOD void iommu_deinit {
  100         device_t        dev;
  101         device_t        child;
  102 } DEFAULT iommu_deinit;

Cache object: 21d0d9ff6b57fd7f0035baf37644d21b


[ 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.