17ba175acSWarner Losh /* 27ba175acSWarner Losh * Copyright (c) 1997, Stefan Esser <se@freebsd.org> 37ba175acSWarner Losh * Copyright (c) 2000, Michael Smith <msmith@freebsd.org> 47ba175acSWarner Losh * Copyright (c) 2000, BSDi 57ba175acSWarner Losh * All rights reserved. 67ba175acSWarner Losh * 77ba175acSWarner Losh * Redistribution and use in source and binary forms, with or without 87ba175acSWarner Losh * modification, are permitted provided that the following conditions 97ba175acSWarner Losh * are met: 107ba175acSWarner Losh * 1. Redistributions of source code must retain the above copyright 117ba175acSWarner Losh * notice unmodified, this list of conditions, and the following 127ba175acSWarner Losh * disclaimer. 137ba175acSWarner Losh * 2. Redistributions in binary form must reproduce the above copyright 147ba175acSWarner Losh * notice, this list of conditions and the following disclaimer in the 157ba175acSWarner Losh * documentation and/or other materials provided with the distribution. 167ba175acSWarner Losh * 177ba175acSWarner Losh * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 187ba175acSWarner Losh * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 197ba175acSWarner Losh * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 207ba175acSWarner Losh * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 217ba175acSWarner Losh * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 227ba175acSWarner Losh * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 237ba175acSWarner Losh * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 247ba175acSWarner Losh * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 257ba175acSWarner Losh * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 267ba175acSWarner Losh * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 277ba175acSWarner Losh * 287ba175acSWarner Losh * $FreeBSD$ 297ba175acSWarner Losh * 307ba175acSWarner Losh */ 317ba175acSWarner Losh 327ba175acSWarner Losh #ifndef _PCI_PRIVATE_H_ 337ba175acSWarner Losh #define _PCI_PRIVATE_H_ 347ba175acSWarner Losh 357ba175acSWarner Losh /* 367ba175acSWarner Losh * Export definitions of the pci bus so that we can more easily share 377ba175acSWarner Losh * it with "subclass" busses. A more generic subclassing mechanism would 387ba175acSWarner Losh * be nice, but is not present in the tree at this time. 397ba175acSWarner Losh */ 407ba175acSWarner Losh int pci_print_child(device_t dev, device_t child); 417ba175acSWarner Losh void pci_probe_nomatch(device_t dev, device_t child); 427ba175acSWarner Losh int pci_read_ivar(device_t dev, device_t child, int which, 437ba175acSWarner Losh uintptr_t *result); 447ba175acSWarner Losh int pci_write_ivar(device_t dev, device_t child, int which, 457ba175acSWarner Losh uintptr_t value); 467ba175acSWarner Losh int pci_set_powerstate_method(device_t dev, device_t child, 477ba175acSWarner Losh int state); 487ba175acSWarner Losh int pci_get_powerstate_method(device_t dev, device_t child); 497ba175acSWarner Losh u_int32_t pci_read_config_method(device_t dev, device_t child, 507ba175acSWarner Losh int reg, int width); 517ba175acSWarner Losh void pci_write_config_method(device_t dev, device_t child, 527ba175acSWarner Losh int reg, u_int32_t val, int width); 537ba175acSWarner Losh void pci_enable_busmaster_method(device_t dev, device_t child); 547ba175acSWarner Losh void pci_disable_busmaster_method(device_t dev, device_t child); 557ba175acSWarner Losh void pci_enable_io_method(device_t dev, device_t child, int space); 567ba175acSWarner Losh void pci_disable_io_method(device_t dev, device_t child, int space); 577ba175acSWarner Losh struct resource *pci_alloc_resource(device_t dev, device_t child, 587ba175acSWarner Losh int type, int *rid, u_long start, u_long end, u_long count, 597ba175acSWarner Losh u_int flags); 607ba175acSWarner Losh void pci_delete_resource(device_t dev, device_t child, 617ba175acSWarner Losh int type, int rid); 627ba175acSWarner Losh struct resource_list *pci_get_resource_list (device_t dev, device_t child); 637ba175acSWarner Losh struct pci_devinfo *pci_read_device(device_t pcib, int b, int s, int f); 647ba175acSWarner Losh void pci_print_verbose(struct pci_devinfo *dinfo); 657ba175acSWarner Losh int pci_freecfg(struct pci_devinfo *dinfo); 667ba175acSWarner Losh 677ba175acSWarner Losh #endif /* _PCI_PRIVATE_H_ */ 68