Deleted Added
full compact
ofw_pci.c (139825) ofw_pci.c (153057)
1/*-
2 * Copyright (c) 1999, 2000 Matthew R. Green
3 * Copyright (c) 2001 - 2003 by Thomas Moestl <tmm@FreeBSD.org>
4 * All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:

--- 13 unchanged lines hidden (view full) ---

22 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
23 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
24 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
25 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
26 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27 * SUCH DAMAGE.
28 *
29 * from: NetBSD: psycho.c,v 1.35 2001/09/10 16:17:06 eeh Exp
1/*-
2 * Copyright (c) 1999, 2000 Matthew R. Green
3 * Copyright (c) 2001 - 2003 by Thomas Moestl <tmm@FreeBSD.org>
4 * All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:

--- 13 unchanged lines hidden (view full) ---

22 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
23 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
24 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
25 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
26 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27 * SUCH DAMAGE.
28 *
29 * from: NetBSD: psycho.c,v 1.35 2001/09/10 16:17:06 eeh Exp
30 *
31 * $FreeBSD: head/sys/sparc64/pci/ofw_pci.c 139825 2005-01-07 02:29:27Z imp $
32 */
33
30 */
31
32#include <sys/cdefs.h>
33__FBSDID("$FreeBSD: head/sys/sparc64/pci/ofw_pci.c 153057 2005-12-03 18:11:26Z marius $");
34
34#include "opt_ofw_pci.h"
35
36#include <sys/param.h>
37#include <sys/kernel.h>
38#include <sys/systm.h>
39#include <sys/bus.h>
40
41#include <dev/ofw/openfirm.h>
42
43#include <machine/bus.h>
44
45#include <sparc64/pci/ofw_pci.h>
46
35#include "opt_ofw_pci.h"
36
37#include <sys/param.h>
38#include <sys/kernel.h>
39#include <sys/systm.h>
40#include <sys/bus.h>
41
42#include <dev/ofw/openfirm.h>
43
44#include <machine/bus.h>
45
46#include <sparc64/pci/ofw_pci.h>
47
47static u_int8_t pci_bus_cnt;
48static uint8_t pci_bus_cnt;
48static phandle_t *pci_bus_map;
49static int pci_bus_map_sz;
50
51#define PCI_BUS_MAP_INC 10
52
49static phandle_t *pci_bus_map;
50static int pci_bus_map_sz;
51
52#define PCI_BUS_MAP_INC 10
53
53u_int8_t
54uint8_t
54ofw_pci_alloc_busno(phandle_t node)
55{
56 phandle_t *om;
57 int osz;
55ofw_pci_alloc_busno(phandle_t node)
56{
57 phandle_t *om;
58 int osz;
58 u_int8_t n;
59 uint8_t n;
59
60 n = pci_bus_cnt++;
61 /* Establish a mapping between bus numbers and device nodes. */
62 if (n >= pci_bus_map_sz) {
63 osz = pci_bus_map_sz;
64 om = pci_bus_map;
65 pci_bus_map_sz = n + PCI_BUS_MAP_INC;
66 pci_bus_map = malloc(sizeof(*pci_bus_map) * pci_bus_map_sz,
67 M_DEVBUF, M_WAITOK | M_ZERO);
68 if (om != NULL) {
69 bcopy(om, pci_bus_map, sizeof(*om) * osz);
70 free(om, M_DEVBUF);
71 }
72 }
73 pci_bus_map[n] = node;
74 return (n);
75}
60
61 n = pci_bus_cnt++;
62 /* Establish a mapping between bus numbers and device nodes. */
63 if (n >= pci_bus_map_sz) {
64 osz = pci_bus_map_sz;
65 om = pci_bus_map;
66 pci_bus_map_sz = n + PCI_BUS_MAP_INC;
67 pci_bus_map = malloc(sizeof(*pci_bus_map) * pci_bus_map_sz,
68 M_DEVBUF, M_WAITOK | M_ZERO);
69 if (om != NULL) {
70 bcopy(om, pci_bus_map, sizeof(*om) * osz);
71 free(om, M_DEVBUF);
72 }
73 }
74 pci_bus_map[n] = node;
75 return (n);
76}