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/dpaa2/dpaa2_mc_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 # SPDX-License-Identifier: BSD-2-Clause
    3 #
    4 # Copyright © 2021-2022 Dmitry Salychev
    5 #
    6 # Redistribution and use in source and binary forms, with or without
    7 # modification, are permitted provided that the following conditions
    8 # are met:
    9 # 1. Redistributions of source code must retain the above copyright
   10 #    notice, this list of conditions and the following disclaimer.
   11 # 2. Redistributions in binary form must reproduce the above copyright
   12 #    notice, this list of conditions and the following disclaimer in the
   13 #    documentation and/or other materials provided with the distribution.
   14 #
   15 # THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
   16 # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
   17 # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
   18 # ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
   19 # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
   20 # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
   21 # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
   22 # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
   23 # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
   24 # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   25 # SUCH DAMAGE.
   26 #
   27 
   28 #include <machine/bus.h>
   29 #include <dev/dpaa2/dpaa2_mc.h>
   30 
   31 /**
   32  * @brief Interface of the DPAA2 Management Complex (MC) bus driver.
   33  *
   34  * It helps to manipulate DPAA2-specific resources (DPIOs, DPBPs, etc.)
   35  */
   36 INTERFACE dpaa2_mc;
   37 
   38 #
   39 # Default implementation of the commands.
   40 #
   41 CODE {
   42         static int
   43         bypass_manage_dev(device_t dev, device_t dpaa2_dev, uint32_t flags)
   44         {
   45                 if (device_get_parent(dev) != NULL)
   46                         return (DPAA2_MC_MANAGE_DEV(device_get_parent(dev),
   47                                 dpaa2_dev, flags));
   48                 return (ENXIO);
   49         }
   50 
   51         static int
   52         bypass_get_free_dev(device_t dev, device_t *dpaa2_dev,
   53                 enum dpaa2_dev_type devtype)
   54         {
   55                 if (device_get_parent(dev) != NULL)
   56                         return (DPAA2_MC_GET_FREE_DEV(device_get_parent(dev),
   57                                 dpaa2_dev, devtype));
   58                 return (ENXIO);
   59         }
   60 
   61         static int
   62         bypass_get_dev(device_t dev, device_t *dpaa2_dev,
   63                 enum dpaa2_dev_type devtype, uint32_t obj_id)
   64         {
   65                 if (device_get_parent(dev) != NULL)
   66                         return (DPAA2_MC_GET_DEV(device_get_parent(dev),
   67                                 dpaa2_dev, devtype, obj_id));
   68                 return (ENXIO);
   69         }
   70 
   71         static int
   72         bypass_get_shared_dev(device_t dev, device_t *dpaa2_dev,
   73                 enum dpaa2_dev_type devtype)
   74         {
   75                 if (device_get_parent(dev) != NULL)
   76                         return (DPAA2_MC_GET_SHARED_DEV(device_get_parent(dev),
   77                                 dpaa2_dev, devtype));
   78                 return (ENXIO);
   79         }
   80 
   81         static int
   82         bypass_reserve_dev(device_t dev, device_t dpaa2_dev,
   83                 enum dpaa2_dev_type devtype)
   84         {
   85                 if (device_get_parent(dev) != NULL)
   86                         return (DPAA2_MC_RESERVE_DEV(device_get_parent(dev),
   87                                 dpaa2_dev, devtype));
   88                 return (ENXIO);
   89         }
   90 
   91         static int
   92         bypass_release_dev(device_t dev, device_t dpaa2_dev,
   93                 enum dpaa2_dev_type devtype)
   94         {
   95                 if (device_get_parent(dev) != NULL)
   96                         return (DPAA2_MC_RELEASE_DEV(device_get_parent(dev),
   97                                 dpaa2_dev, devtype));
   98                 return (ENXIO);
   99         }
  100 
  101         static int
  102         bypass_get_phy_dev(device_t dev, device_t *phy_dev, uint32_t id)
  103         {
  104                 if (device_get_parent(dev) != NULL)
  105                         return (DPAA2_MC_GET_PHY_DEV(device_get_parent(dev),
  106                             phy_dev, id));
  107                 return (ENXIO);
  108         }
  109 }
  110 
  111 METHOD int manage_dev {
  112         device_t         dev;
  113         device_t         dpaa2_dev;
  114         uint32_t         flags;
  115 } DEFAULT bypass_manage_dev;
  116 
  117 METHOD int get_free_dev {
  118         device_t         dev;
  119         device_t        *dpaa2_dev;
  120         enum dpaa2_dev_type devtype;
  121 } DEFAULT bypass_get_free_dev;
  122 
  123 METHOD int get_dev {
  124         device_t         dev;
  125         device_t        *dpaa2_dev;
  126         enum dpaa2_dev_type devtype;
  127         uint32_t         obj_id;
  128 } DEFAULT bypass_get_dev;
  129 
  130 METHOD int get_shared_dev {
  131         device_t         dev;
  132         device_t        *dpaa2_dev;
  133         enum dpaa2_dev_type devtype;
  134 } DEFAULT bypass_get_shared_dev;
  135 
  136 METHOD int reserve_dev {
  137         device_t         dev;
  138         device_t         dpaa2_dev;
  139         enum dpaa2_dev_type devtype;
  140 } DEFAULT bypass_reserve_dev;
  141 
  142 METHOD int release_dev {
  143         device_t         dev;
  144         device_t         dpaa2_dev;
  145         enum dpaa2_dev_type devtype;
  146 } DEFAULT bypass_release_dev;
  147 
  148 METHOD int get_phy_dev {
  149         device_t         dev;
  150         device_t         *phy_dev;
  151         uint32_t         id;
  152 } DEFAULT bypass_get_phy_dev;

Cache object: c757a0e15beef732ca01bf4916d8d428


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