From c344a95134a0e37aa500e4746fe76878b5a97032 Mon Sep 17 00:00:00 2001 From: Ruslan Bukin Date: Fri, 24 Jan 2020 16:43:49 +0000 Subject: o Move the software context struct to a header file. o Make the pci_host_generic_acpi_attach() globally visible. o Declare a new driver class. These will be used by a new PCI root complex driver. Sponsored by: DARPA, AFRL --- sys/dev/pci/pci_host_generic_acpi.c | 8 ++----- sys/dev/pci/pci_host_generic_acpi.h | 47 +++++++++++++++++++++++++++++++++++++ 2 files changed, 49 insertions(+), 6 deletions(-) create mode 100644 sys/dev/pci/pci_host_generic_acpi.h (limited to 'sys/dev') diff --git a/sys/dev/pci/pci_host_generic_acpi.c b/sys/dev/pci/pci_host_generic_acpi.c index 016fa32d212f..c5ca9ab0a1d0 100644 --- a/sys/dev/pci/pci_host_generic_acpi.c +++ b/sys/dev/pci/pci_host_generic_acpi.c @@ -57,6 +57,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include @@ -88,11 +89,6 @@ __FBSDID("$FreeBSD$"); #define PROPS_CELL_SIZE 1 #define PCI_ADDR_CELL_SIZE 2 -struct generic_pcie_acpi_softc { - struct generic_pcie_core_softc base; - ACPI_BUFFER ap_prt; /* interrupt routing table */ -}; - /* Forward prototypes */ static int generic_pcie_acpi_probe(device_t dev); @@ -233,7 +229,7 @@ pci_host_acpi_get_ecam_resource(device_t dev) return (0); } -static int +int pci_host_generic_acpi_attach(device_t dev) { struct generic_pcie_acpi_softc *sc; diff --git a/sys/dev/pci/pci_host_generic_acpi.h b/sys/dev/pci/pci_host_generic_acpi.h new file mode 100644 index 000000000000..eb9b23094703 --- /dev/null +++ b/sys/dev/pci/pci_host_generic_acpi.h @@ -0,0 +1,47 @@ +/*- + * Copyright (C) 2018 Cavium Inc. + * Copyright (c) 2015 Ruslan Bukin + * Copyright (c) 2014 The FreeBSD Foundation + * All rights reserved. + * + * This software was developed by Semihalf under + * the sponsorship of the FreeBSD Foundation. + * + * 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. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``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 OR CONTRIBUTORS 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. + * + * $FreeBSD$ + */ + +#ifndef _DEV_PCI_PCI_HOST_GENERIC_ACPI_H_ +#define _DEV_PCI_PCI_HOST_GENERIC_ACPI_H_ + +struct generic_pcie_acpi_softc { + struct generic_pcie_core_softc base; + int segment; + ACPI_BUFFER ap_prt; /* interrupt routing table */ +}; + +DECLARE_CLASS(generic_pcie_acpi_driver); + +int pci_host_generic_acpi_attach(device_t dev); + +#endif /* !_DEV_PCI_PCI_HOST_GENERIC_ACPI_H_ */ -- cgit v1.3