Home | History | Annotate | Line # | Download | only in pci
      1  1.4    bouyer /*	$NetBSD: msipic.h,v 1.4 2022/05/23 15:03:05 bouyer Exp $	*/
      2  1.1  knakahar 
      3  1.1  knakahar /*
      4  1.1  knakahar  * Copyright (c) 2015 Internet Initiative Japan Inc.
      5  1.1  knakahar  * All rights reserved.
      6  1.1  knakahar  *
      7  1.1  knakahar  * Redistribution and use in source and binary forms, with or without
      8  1.1  knakahar  * modification, are permitted provided that the following conditions
      9  1.1  knakahar  * are met:
     10  1.1  knakahar  * 1. Redistributions of source code must retain the above copyright
     11  1.1  knakahar  *    notice, this list of conditions and the following disclaimer.
     12  1.1  knakahar  * 2. Redistributions in binary form must reproduce the above copyright
     13  1.1  knakahar  *    notice, this list of conditions and the following disclaimer in the
     14  1.1  knakahar  *    documentation and/or other materials provided with the distribution.
     15  1.1  knakahar  *
     16  1.1  knakahar  * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
     17  1.1  knakahar  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
     18  1.1  knakahar  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
     19  1.1  knakahar  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
     20  1.1  knakahar  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
     21  1.1  knakahar  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
     22  1.1  knakahar  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
     23  1.1  knakahar  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
     24  1.1  knakahar  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
     25  1.1  knakahar  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
     26  1.1  knakahar  * POSSIBILITY OF SUCH DAMAGE.
     27  1.1  knakahar  */
     28  1.1  knakahar 
     29  1.1  knakahar #ifndef _X86_PCI_MSIPIC_H_
     30  1.1  knakahar #define _X86_PCI_MSIPIC_H_
     31  1.1  knakahar 
     32  1.1  knakahar #include <dev/pci/pcivar.h>
     33  1.1  knakahar 
     34  1.2  knakahar struct pic	*msipic_construct_msi_pic(const struct pci_attach_args *);
     35  1.1  knakahar void		msipic_destruct_msi_pic(struct pic *);
     36  1.2  knakahar struct pic	*msipic_construct_msix_pic(const struct pci_attach_args *);
     37  1.1  knakahar void		msipic_destruct_msix_pic(struct pic *);
     38  1.1  knakahar struct pic	*msipic_find_msi_pic(int);
     39  1.1  knakahar int		msipic_set_msi_vectors(struct pic *, pci_intr_handle_t *, int);
     40  1.1  knakahar 
     41  1.1  knakahar bool		msipic_is_msi_pic(struct pic *);
     42  1.1  knakahar int		msipic_get_devid(struct pic *);
     43  1.1  knakahar 
     44  1.3  jdolecek struct msipic_pci_info {
     45  1.3  jdolecek 	int mp_bus, mp_dev, mp_fun;
     46  1.3  jdolecek 	int mp_veccnt; /* The number of MSI/MSI-X vectors. */
     47  1.4    bouyer 	uint32_t mp_table_base; /* Xen: MSI-X table location in memory space */
     48  1.4    bouyer 	int *mp_xen_pirq; /* Xen: pirq numbers */
     49  1.3  jdolecek };
     50  1.3  jdolecek 
     51  1.3  jdolecek const struct msipic_pci_info *msipic_get_pci_info(struct pic *);
     52  1.3  jdolecek 
     53  1.1  knakahar void		msipic_init(void);
     54  1.1  knakahar 
     55  1.1  knakahar #endif /* _X86_PCI_MSIPIC_H_ */
     56