/* $NetBSD: acpi_pci.h,v 1.13 2022/10/14 22:10:15 jmcneill Exp $ */

/*
* Copyright (c) 2009 The NetBSD Foundation, Inc.
* All rights reserved.
*
* This code is derived from software contributed to The NetBSD Foundation
* by Christoph Egger.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
*    notice, this list of conditions and the following disclaimer.
* 2. The name of the author may not be used to endorse or promote products
*    derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
* IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/

#ifndef _SYS_DEV_ACPI_ACPI_PCI_H
#define _SYS_DEV_ACPI_ACPI_PCI_H

ACPI_STATUS              acpi_pcidev_scan(struct acpi_devnode *);
ACPI_STATUS              acpi_pcidev_pciroot_bus(ACPI_HANDLE, uint16_t *);
ACPI_STATUS              acpi_pcidev_ppb_downbus(pci_chipset_tag_t,
                                                uint16_t, uint16_t, uint16_t,
                                                uint16_t, uint16_t *);
struct acpi_devnode     *acpi_pcidev_find(uint16_t, uint16_t,
                                         uint16_t, uint16_t);
pci_chipset_tag_t        acpi_pcidev_get_tag(uint16_t, uint16_t,
                                            uint16_t, uint16_t);
device_t                 acpi_pcidev_find_dev(struct acpi_devnode *);
struct acpi_devnode     *acpi_pciroot_find(uint16_t, uint16_t);

#endif  /* !_SYS_DEV_ACPI_ACPI_PCI_H */