blob: aa6778c504b457b56a3595470bceb10bbd74ecd5 [file] [log] [blame]
Eric Biederman5899fd82003-04-24 06:25:08 +00001/*
Eric Biederman5899fd82003-04-24 06:25:08 +00002 * PCI defines and function prototypes
3 * Copyright 1994, Drew Eckhardt
4 * Copyright 1997--1999 Martin Mares <mj@atrey.karlin.mff.cuni.cz>
5 *
6 * For more information, please consult the following manuals (look at
7 * http://www.pcisig.com/ for how to get them):
8 *
9 * PCI BIOS Specification
10 * PCI Local Bus Specification
11 * PCI to PCI Bridge Specification
12 * PCI System Design Guide
13 */
14
15#ifndef PCI_H
16#define PCI_H
17
Eric Biederman52685572003-05-19 19:16:21 +000018#include <device/pci_def.h>
Eric Biederman5899fd82003-04-24 06:25:08 +000019#include <device/resource.h>
20#include <device/device.h>
21#include <device/pci_ops.h>
22
23
24struct pci_driver {
25 struct device_operations *ops;
26 unsigned short vendor;
27 unsigned short device;
28};
29
30#define __pci_driver __attribute__ ((unused,__section__(".rodata.pci_driver")))
31extern struct pci_driver pci_drivers[];
32extern struct pci_driver epci_drivers[];
33
34
35struct device_operations default_pci_ops_dev;
36struct device_operations default_pci_ops_bus;
Eric Biederman5899fd82003-04-24 06:25:08 +000037
38
Eric Biedermane9a271e32003-09-02 03:36:25 +000039void pci_dev_read_resources(device_t dev);
40void pci_bus_read_resources(device_t dev);
41void pci_dev_set_resources(device_t dev);
42void pci_dev_enable_resources(device_t dev);
43void pci_bus_enable_resources(device_t dev);
44unsigned int pci_scan_bridge(device_t bus, unsigned int max);
45unsigned int pci_scan_bus(struct bus *bus, unsigned min_devfn, unsigned max_devfn, unsigned int max);
Eric Biederman5899fd82003-04-24 06:25:08 +000046
47#define PCI_IO_BRIDGE_ALIGN 4096
48#define PCI_MEM_BRIDGE_ALIGN (1024*1024)
49
50#endif /* PCI_H */