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/interface/io/pciif.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  * PCI Backend/Frontend Common Data Structures & Macros
    3  *
    4  * Permission is hereby granted, free of charge, to any person obtaining a copy
    5  * of this software and associated documentation files (the "Software"), to
    6  * deal in the Software without restriction, including without limitation the
    7  * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
    8  * sell copies of the Software, and to permit persons to whom the Software is
    9  * furnished to do so, subject to the following conditions:
   10  *
   11  * The above copyright notice and this permission notice shall be included in
   12  * all copies or substantial portions of the Software.
   13  *
   14  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
   15  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
   16  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
   17  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
   18  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
   19  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
   20  * DEALINGS IN THE SOFTWARE.
   21  *
   22  *   Author: Ryan Wilson <hap9@epoch.ncsc.mil>
   23  */
   24 #ifndef __XEN_PCI_COMMON_H__
   25 #define __XEN_PCI_COMMON_H__
   26 
   27 /* Be sure to bump this number if you change this file */
   28 #define XEN_PCI_MAGIC "7"
   29 
   30 /* xen_pci_sharedinfo flags */
   31 #define _XEN_PCIF_active     (0)
   32 #define XEN_PCIF_active      (1<<_XEN_PCIF_active)
   33 #define _XEN_PCIB_AERHANDLER (1)
   34 #define XEN_PCIB_AERHANDLER  (1<<_XEN_PCIB_AERHANDLER)
   35 #define _XEN_PCIB_active     (2)
   36 #define XEN_PCIB_active      (1<<_XEN_PCIB_active)
   37 
   38 /* xen_pci_op commands */
   39 #define XEN_PCI_OP_conf_read            (0)
   40 #define XEN_PCI_OP_conf_write           (1)
   41 #define XEN_PCI_OP_enable_msi           (2)
   42 #define XEN_PCI_OP_disable_msi          (3)
   43 #define XEN_PCI_OP_enable_msix          (4)
   44 #define XEN_PCI_OP_disable_msix         (5)
   45 #define XEN_PCI_OP_aer_detected         (6)
   46 #define XEN_PCI_OP_aer_resume           (7)
   47 #define XEN_PCI_OP_aer_mmio             (8)
   48 #define XEN_PCI_OP_aer_slotreset        (9)
   49 
   50 /* xen_pci_op error numbers */
   51 #define XEN_PCI_ERR_success          (0)
   52 #define XEN_PCI_ERR_dev_not_found   (-1)
   53 #define XEN_PCI_ERR_invalid_offset  (-2)
   54 #define XEN_PCI_ERR_access_denied   (-3)
   55 #define XEN_PCI_ERR_not_implemented (-4)
   56 /* XEN_PCI_ERR_op_failed - backend failed to complete the operation */
   57 #define XEN_PCI_ERR_op_failed       (-5)
   58 
   59 /*
   60  * it should be PAGE_SIZE-sizeof(struct xen_pci_op))/sizeof(struct msix_entry))
   61  * Should not exceed 128
   62  */
   63 #define SH_INFO_MAX_VEC     128
   64 
   65 struct xen_msix_entry {
   66     uint16_t vector;
   67     uint16_t entry;
   68 };
   69 struct xen_pci_op {
   70     /* IN: what action to perform: XEN_PCI_OP_* */
   71     uint32_t cmd;
   72 
   73     /* OUT: will contain an error number (if any) from errno.h */
   74     int32_t err;
   75 
   76     /* IN: which device to touch */
   77     uint32_t domain; /* PCI Domain/Segment */
   78     uint32_t bus;
   79     uint32_t devfn;
   80 
   81     /* IN: which configuration registers to touch */
   82     int32_t offset;
   83     int32_t size;
   84 
   85     /* IN/OUT: Contains the result after a READ or the value to WRITE */
   86     uint32_t value;
   87     /* IN: Contains extra infor for this operation */
   88     uint32_t info;
   89     /*IN:  param for msi-x */
   90     struct xen_msix_entry msix_entries[SH_INFO_MAX_VEC];
   91 };
   92 
   93 /*used for pcie aer handling*/
   94 struct xen_pcie_aer_op
   95 {
   96 
   97     /* IN: what action to perform: XEN_PCI_OP_* */
   98     uint32_t cmd;
   99     /*IN/OUT: return aer_op result or carry error_detected state as input*/
  100     int32_t err;
  101 
  102     /* IN: which device to touch */
  103     uint32_t domain; /* PCI Domain/Segment*/
  104     uint32_t bus;
  105     uint32_t devfn;
  106 };
  107 struct xen_pci_sharedinfo {
  108     /* flags - XEN_PCIF_* */
  109     uint32_t flags;
  110     struct xen_pci_op op;
  111     struct xen_pcie_aer_op aer_op;
  112 };
  113 
  114 #endif /* __XEN_PCI_COMMON_H__ */
  115 
  116 /*
  117  * Local variables:
  118  * mode: C
  119  * c-set-style: "BSD"
  120  * c-basic-offset: 4
  121  * tab-width: 4
  122  * indent-tabs-mode: nil
  123  * End:
  124  */

Cache object: bc05d7567c52be2c2b070549189193ac


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