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/xen/xenbus/xenbusb_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) 2010 Spectra Logic Corporation
    3 # All rights reserved.
    4 #
    5 # Redistribution and use in source and binary forms, with or without
    6 # modification, are permitted provided that the following conditions
    7 # are met:
    8 # 1. Redistributions of source code must retain the above copyright
    9 #    notice, this list of conditions, and the following disclaimer,
   10 #    without modification.
   11 # 2. Redistributions in binary form must reproduce at minimum a disclaimer
   12 #    substantially similar to the "NO WARRANTY" disclaimer below
   13 #    ("Disclaimer") and any redistribution must be conditioned upon
   14 #    including a substantially similar Disclaimer requirement for further
   15 #    binary redistribution.
   16 #
   17 # NO WARRANTY
   18 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
   19 # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
   20 # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
   21 # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
   22 # HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
   23 # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
   24 # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
   25 # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
   26 # STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
   27 # IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
   28 # POSSIBILITY OF SUCH DAMAGES.
   29 #
   30 # $FreeBSD: releng/10.1/sys/xen/xenbus/xenbusb_if.m 222975 2011-06-11 04:59:01Z gibbs $
   31 #
   32 
   33 #include <sys/bus.h>
   34 #include <sys/lock.h>
   35 #include <sys/sx.h>
   36 #include <sys/taskqueue.h>
   37 
   38 #include <xen/xenstore/xenstorevar.h>
   39 #include <xen/xenbus/xenbusb.h>
   40 
   41 INTERFACE xenbusb;
   42 
   43 /**
   44  * \brief Enumerate all devices of the given type on this bus.
   45  *
   46  * \param _dev  NewBus device_t for this XenBus (front/back) bus instance.
   47  * \param _type String indicating the device sub-tree (e.g. "vfb", "vif")
   48  *              to enumerate. 
   49  *
   50  * \return  On success, 0. Otherwise an errno value indicating the
   51  *          type of failure.
   52  *
   53  * Devices that are found should be entered into the NewBus hierarchy via
   54  * xenbusb_add_device().  xenbusb_add_device() ignores duplicate detects
   55  * and ignores duplicate devices, so it can be called unconditionally
   56  * for any device found in the XenStore.
   57  */
   58 METHOD int enumerate_type {
   59         device_t _dev;
   60         const char *_type;
   61 };
   62 
   63 /**
   64  * \brief Determine and store the XenStore path for the other end of
   65  *        a split device whose local end is represented by ivars.
   66  *
   67  * If successful, the xd_otherend_path field of the child's instance
   68  * variables must be updated.
   69  *
   70  * \param _dev    NewBus device_t for this XenBus (front/back) bus instance.
   71  * \param _ivars  Instance variables from the XenBus child device for
   72  *                which to perform this function.
   73  *
   74  * \return  On success, 0. Otherwise an errno value indicating the
   75  *          type of failure.
   76  */
   77 METHOD int get_otherend_node {
   78         device_t _dev;
   79         struct xenbus_device_ivars *_ivars;
   80 }
   81 
   82 /**
   83  * \brief Handle a XenStore change detected in the peer tree of a child
   84  *        device of the bus.
   85  *
   86  * \param _bus       NewBus device_t for this XenBus (front/back) bus instance.
   87  * \param _child     NewBus device_t for the child device whose peer XenStore
   88  *                   tree has changed.
   89  * \param _state     The current state of the peer.
   90  */
   91 METHOD void otherend_changed {
   92         device_t _bus;
   93         device_t _child;
   94         enum xenbus_state _state;
   95 } DEFAULT xenbusb_otherend_changed;
   96 
   97 /**
   98  * \brief Handle a XenStore change detected in the local tree of a child
   99  *        device of the bus.
  100  *
  101  * \param _bus    NewBus device_t for this XenBus (front/back) bus instance.
  102  * \param _child  NewBus device_t for the child device whose peer XenStore
  103  *                tree has changed.
  104  * \param _path   The tree relative sub-path to the modified node.  The empty
  105  *                string indicates the root of the tree was destroyed.
  106  */
  107 METHOD void localend_changed {
  108         device_t _bus;
  109         device_t _child;
  110         const char * _path;
  111 } DEFAULT xenbusb_localend_changed;

Cache object: 217085acf7838d70d65a04019d851461


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