Deleted Added
full compact
pci_private.h (166176) pci_private.h (169221)
1/*-
2 * Copyright (c) 1997, Stefan Esser <se@freebsd.org>
3 * Copyright (c) 2000, Michael Smith <msmith@freebsd.org>
4 * Copyright (c) 2000, BSDi
5 * All rights reserved.
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions
9 * are met:
10 * 1. Redistributions of source code must retain the above copyright
11 * notice unmodified, this list of conditions, and the following
12 * disclaimer.
13 * 2. Redistributions in binary form must reproduce the above copyright
14 * notice, this list of conditions and the following disclaimer in the
15 * documentation and/or other materials provided with the distribution.
16 *
17 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
18 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
19 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
20 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
21 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
22 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 *
1/*-
2 * Copyright (c) 1997, Stefan Esser <se@freebsd.org>
3 * Copyright (c) 2000, Michael Smith <msmith@freebsd.org>
4 * Copyright (c) 2000, BSDi
5 * All rights reserved.
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions
9 * are met:
10 * 1. Redistributions of source code must retain the above copyright
11 * notice unmodified, this list of conditions, and the following
12 * disclaimer.
13 * 2. Redistributions in binary form must reproduce the above copyright
14 * notice, this list of conditions and the following disclaimer in the
15 * documentation and/or other materials provided with the distribution.
16 *
17 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
18 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
19 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
20 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
21 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
22 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 *
28 * $FreeBSD: head/sys/dev/pci/pci_private.h 166176 2007-01-22 21:48:44Z jhb $
28 * $FreeBSD: head/sys/dev/pci/pci_private.h 169221 2007-05-02 17:50:36Z jhb $
29 *
30 */
31
32#ifndef _PCI_PRIVATE_H_
33#define _PCI_PRIVATE_H_
34
35/*
36 * Export definitions of the pci bus so that we can more easily share
37 * it with "subclass" busses.
38 */
39DECLARE_CLASS(pci_driver);
40
41void pci_add_children(device_t dev, int busno, size_t dinfo_size);
42void pci_add_child(device_t bus, struct pci_devinfo *dinfo);
43void pci_add_resources(device_t bus, device_t dev, int force,
44 uint32_t prefetchmask);
45void pci_driver_added(device_t dev, driver_t *driver);
46int pci_print_child(device_t dev, device_t child);
47void pci_probe_nomatch(device_t dev, device_t child);
48int pci_read_ivar(device_t dev, device_t child, int which,
49 uintptr_t *result);
50int pci_write_ivar(device_t dev, device_t child, int which,
51 uintptr_t value);
29 *
30 */
31
32#ifndef _PCI_PRIVATE_H_
33#define _PCI_PRIVATE_H_
34
35/*
36 * Export definitions of the pci bus so that we can more easily share
37 * it with "subclass" busses.
38 */
39DECLARE_CLASS(pci_driver);
40
41void pci_add_children(device_t dev, int busno, size_t dinfo_size);
42void pci_add_child(device_t bus, struct pci_devinfo *dinfo);
43void pci_add_resources(device_t bus, device_t dev, int force,
44 uint32_t prefetchmask);
45void pci_driver_added(device_t dev, driver_t *driver);
46int pci_print_child(device_t dev, device_t child);
47void pci_probe_nomatch(device_t dev, device_t child);
48int pci_read_ivar(device_t dev, device_t child, int which,
49 uintptr_t *result);
50int pci_write_ivar(device_t dev, device_t child, int which,
51 uintptr_t value);
52int pci_setup_intr(device_t dev, device_t child,
53 struct resource *irq, int flags, driver_filter_t *filter,
54 driver_intr_t *intr, void *arg, void **cookiep);
55int pci_teardown_intr(device_t dev, device_t child,
56 struct resource *irq, void *cookie);
52int pci_get_vpd_ident_method(device_t dev, device_t child,
53 const char **identptr);
54int pci_get_vpd_readonly_method(device_t dev, device_t child,
55 const char *kw, const char **vptr);
56int pci_set_powerstate_method(device_t dev, device_t child,
57 int state);
58int pci_get_powerstate_method(device_t dev, device_t child);
59uint32_t pci_read_config_method(device_t dev, device_t child,
60 int reg, int width);
61void pci_write_config_method(device_t dev, device_t child,
62 int reg, uint32_t val, int width);
63int pci_enable_busmaster_method(device_t dev, device_t child);
64int pci_disable_busmaster_method(device_t dev, device_t child);
65int pci_enable_io_method(device_t dev, device_t child, int space);
66int pci_disable_io_method(device_t dev, device_t child, int space);
67int pci_find_extcap_method(device_t dev, device_t child,
68 int capability, int *capreg);
69int pci_alloc_msi_method(device_t dev, device_t child, int *count);
70int pci_alloc_msix_method(device_t dev, device_t child, int *count);
71int pci_remap_msix_method(device_t dev, device_t child,
57int pci_get_vpd_ident_method(device_t dev, device_t child,
58 const char **identptr);
59int pci_get_vpd_readonly_method(device_t dev, device_t child,
60 const char *kw, const char **vptr);
61int pci_set_powerstate_method(device_t dev, device_t child,
62 int state);
63int pci_get_powerstate_method(device_t dev, device_t child);
64uint32_t pci_read_config_method(device_t dev, device_t child,
65 int reg, int width);
66void pci_write_config_method(device_t dev, device_t child,
67 int reg, uint32_t val, int width);
68int pci_enable_busmaster_method(device_t dev, device_t child);
69int pci_disable_busmaster_method(device_t dev, device_t child);
70int pci_enable_io_method(device_t dev, device_t child, int space);
71int pci_disable_io_method(device_t dev, device_t child, int space);
72int pci_find_extcap_method(device_t dev, device_t child,
73 int capability, int *capreg);
74int pci_alloc_msi_method(device_t dev, device_t child, int *count);
75int pci_alloc_msix_method(device_t dev, device_t child, int *count);
76int pci_remap_msix_method(device_t dev, device_t child,
72 u_int *indices);
77 int count, const u_int *vectors);
73int pci_release_msi_method(device_t dev, device_t child);
74int pci_msi_count_method(device_t dev, device_t child);
75int pci_msix_count_method(device_t dev, device_t child);
76struct resource *pci_alloc_resource(device_t dev, device_t child,
77 int type, int *rid, u_long start, u_long end, u_long count,
78 u_int flags);
79void pci_delete_resource(device_t dev, device_t child,
80 int type, int rid);
81struct resource_list *pci_get_resource_list (device_t dev, device_t child);
82struct pci_devinfo *pci_read_device(device_t pcib, int b, int s, int f,
83 size_t size);
84void pci_print_verbose(struct pci_devinfo *dinfo);
85int pci_freecfg(struct pci_devinfo *dinfo);
86int pci_child_location_str_method(device_t cbdev, device_t child,
87 char *buf, size_t buflen);
88int pci_child_pnpinfo_str_method(device_t cbdev, device_t child,
89 char *buf, size_t buflen);
90int pci_assign_interrupt_method(device_t dev, device_t child);
91int pci_resume(device_t dev);
92int pci_suspend(device_t dev);
93void pci_cfg_restore(device_t, struct pci_devinfo *);
94void pci_cfg_save(device_t, struct pci_devinfo *, int);
95
96#endif /* _PCI_PRIVATE_H_ */
78int pci_release_msi_method(device_t dev, device_t child);
79int pci_msi_count_method(device_t dev, device_t child);
80int pci_msix_count_method(device_t dev, device_t child);
81struct resource *pci_alloc_resource(device_t dev, device_t child,
82 int type, int *rid, u_long start, u_long end, u_long count,
83 u_int flags);
84void pci_delete_resource(device_t dev, device_t child,
85 int type, int rid);
86struct resource_list *pci_get_resource_list (device_t dev, device_t child);
87struct pci_devinfo *pci_read_device(device_t pcib, int b, int s, int f,
88 size_t size);
89void pci_print_verbose(struct pci_devinfo *dinfo);
90int pci_freecfg(struct pci_devinfo *dinfo);
91int pci_child_location_str_method(device_t cbdev, device_t child,
92 char *buf, size_t buflen);
93int pci_child_pnpinfo_str_method(device_t cbdev, device_t child,
94 char *buf, size_t buflen);
95int pci_assign_interrupt_method(device_t dev, device_t child);
96int pci_resume(device_t dev);
97int pci_suspend(device_t dev);
98void pci_cfg_restore(device_t, struct pci_devinfo *);
99void pci_cfg_save(device_t, struct pci_devinfo *, int);
100
101#endif /* _PCI_PRIVATE_H_ */