Deleted Added
full compact
pci_cfgreg.c (205432) pci_cfgreg.c (253560)
1/*-
2 * Copyright (c) 2010 Marcel Moolenaar
3 * Copyright (c) 2001 Doug Rabson
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:

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

19 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
20 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
21 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
22 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
25 * SUCH DAMAGE.
26 *
1/*-
2 * Copyright (c) 2010 Marcel Moolenaar
3 * Copyright (c) 2001 Doug Rabson
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:

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

19 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
20 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
21 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
22 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
25 * SUCH DAMAGE.
26 *
27 * $FreeBSD: head/sys/ia64/pci/pci_cfgreg.c 205432 2010-03-22 03:06:11Z marcel $
27 * $FreeBSD: head/sys/ia64/pci/pci_cfgreg.c 253560 2013-07-23 03:03:17Z marcel $
28 */
29
30#include <sys/param.h>
31#include <machine/cpufunc.h>
32#include <machine/pci_cfgreg.h>
33#include <machine/sal.h>
34
35static u_long

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

65
66uint32_t
67pci_cfgregread(int bus, int slot, int func, int reg, int len)
68{
69 struct ia64_sal_result res;
70 register_t is;
71 u_long addr;
72
28 */
29
30#include <sys/param.h>
31#include <machine/cpufunc.h>
32#include <machine/pci_cfgreg.h>
33#include <machine/sal.h>
34
35static u_long

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

65
66uint32_t
67pci_cfgregread(int bus, int slot, int func, int reg, int len)
68{
69 struct ia64_sal_result res;
70 register_t is;
71 u_long addr;
72
73 addr = pci_sal_address(0, bus, slot, func, reg);
73 addr = pci_sal_address(bus >> 8, bus & 0xff, slot, func, reg);
74 if (addr == ~0ul)
75 return (~0);
76
77 if (!pci_valid_access(reg, len))
78 return (~0);
79
80 is = intr_disable();
81 res = ia64_sal_entry(SAL_PCI_CONFIG_READ, addr, len, 0, 0, 0, 0, 0);

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

86
87void
88pci_cfgregwrite(int bus, int slot, int func, int reg, uint32_t data, int len)
89{
90 struct ia64_sal_result res;
91 register_t is;
92 u_long addr;
93
74 if (addr == ~0ul)
75 return (~0);
76
77 if (!pci_valid_access(reg, len))
78 return (~0);
79
80 is = intr_disable();
81 res = ia64_sal_entry(SAL_PCI_CONFIG_READ, addr, len, 0, 0, 0, 0, 0);

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

86
87void
88pci_cfgregwrite(int bus, int slot, int func, int reg, uint32_t data, int len)
89{
90 struct ia64_sal_result res;
91 register_t is;
92 u_long addr;
93
94 addr = pci_sal_address(0, bus, slot, func, reg);
94 addr = pci_sal_address(bus >> 8, bus & 0xff, slot, func, reg);
95 if (addr == ~0ul)
96 return;
97
98 if (!pci_valid_access(reg, len))
99 return;
100
101 is = intr_disable();
102 res = ia64_sal_entry(SAL_PCI_CONFIG_WRITE, addr, len, data, 0, 0, 0, 0);
103 intr_restore(is);
104}
95 if (addr == ~0ul)
96 return;
97
98 if (!pci_valid_access(reg, len))
99 return;
100
101 is = intr_disable();
102 res = ia64_sal_entry(SAL_PCI_CONFIG_WRITE, addr, len, data, 0, 0, 0, 0);
103 intr_restore(is);
104}