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 #define XEN_PCI_OP_enable_multi_msi     (10)
   50 
   51 /* xen_pci_op error numbers */
   52 #define XEN_PCI_ERR_success          (0)
   53 #define XEN_PCI_ERR_dev_not_found   (-1)
   54 #define XEN_PCI_ERR_invalid_offset  (-2)
   55 #define XEN_PCI_ERR_access_denied   (-3)
   56 #define XEN_PCI_ERR_not_implemented (-4)
   57 /* XEN_PCI_ERR_op_failed - backend failed to complete the operation */
   58 #define XEN_PCI_ERR_op_failed       (-5)
   59 
   60 /*
   61  * it should be PAGE_SIZE-sizeof(struct xen_pci_op))/sizeof(struct msix_entry))
   62  * Should not exceed 128
   63  */
   64 #define SH_INFO_MAX_VEC     128
   65 
   66 struct xen_msix_entry {
   67     uint16_t vector;
   68     uint16_t entry;
   69 };
   70 struct xen_pci_op {
   71     /* IN: what action to perform: XEN_PCI_OP_* */
   72     uint32_t cmd;
   73 
   74     /* OUT: will contain an error number (if any) from errno.h */
   75     int32_t err;
   76 
   77     /* IN: which device to touch */
   78     uint32_t domain; /* PCI Domain/Segment */
   79     uint32_t bus;
   80     uint32_t devfn;
   81 
   82     /* IN: which configuration registers to touch */
   83     int32_t offset;
   84     int32_t size;
   85 
   86     /* IN/OUT: Contains the result after a READ or the value to WRITE */
   87     uint32_t value;
   88     /* IN: Contains extra infor for this operation */
   89     uint32_t info;
   90     /*IN:  param for msi-x */
   91     struct xen_msix_entry msix_entries[SH_INFO_MAX_VEC];
   92 };
   93 
   94 /*used for pcie aer handling*/
   95 struct xen_pcie_aer_op
   96 {
   97 
   98     /* IN: what action to perform: XEN_PCI_OP_* */
   99     uint32_t cmd;
  100     /*IN/OUT: return aer_op result or carry error_detected state as input*/
  101     int32_t err;
  102 
  103     /* IN: which device to touch */
  104     uint32_t domain; /* PCI Domain/Segment*/
  105     uint32_t bus;
  106     uint32_t devfn;
  107 };
  108 struct xen_pci_sharedinfo {
  109     /* flags - XEN_PCIF_* */
  110     uint32_t flags;
  111     struct xen_pci_op op;
  112     struct xen_pcie_aer_op aer_op;
  113 };
  114 
  115 #endif /* __XEN_PCI_COMMON_H__ */
  116 
  117 /*
  118  * Local variables:
  119  * mode: C
  120  * c-file-style: "BSD"
  121  * c-basic-offset: 4
  122  * tab-width: 4
  123  * indent-tabs-mode: nil
  124  * End:
  125  */

Cache object: eb5ef5e10824401e9b937f2bc3617460


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