ofw_pci_if.m (86234) | ofw_pci_if.m (115417) |
---|---|
1# Copyright (c) 2001 by Thomas Moestl <tmm@FreeBSD.org>. 2# All rights reserved. 3# 4# Redistribution and use in source and binary forms, with or without 5# modification, are permitted provided that the following conditions 6# are met: 7# 1. Redistributions of source code must retain the above copyright 8# notice, this list of conditions and the following disclaimer. --- 7 unchanged lines hidden (view full) --- 16# IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 17# INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 18# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 19# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 20# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 21# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE 22# USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 23# | 1# Copyright (c) 2001 by Thomas Moestl <tmm@FreeBSD.org>. 2# All rights reserved. 3# 4# Redistribution and use in source and binary forms, with or without 5# modification, are permitted provided that the following conditions 6# are met: 7# 1. Redistributions of source code must retain the above copyright 8# notice, this list of conditions and the following disclaimer. --- 7 unchanged lines hidden (view full) --- 16# IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 17# INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 18# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 19# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 20# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 21# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE 22# USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 23# |
24# $FreeBSD: head/sys/sparc64/pci/ofw_pci_if.m 86234 2001-11-09 20:43:44Z tmm $ | 24# $FreeBSD: head/sys/sparc64/pci/ofw_pci_if.m 115417 2003-05-30 20:48:05Z tmm $ |
25 26#include <sys/bus.h> 27#include <machine/bus.h> 28 | 25 26#include <sys/bus.h> 27#include <machine/bus.h> 28 |
29#include <dev/ofw/openfirm.h> 30 |
|
29INTERFACE sparcbus; 30 31HEADER { 32 /* Bus tag types for the get_bustag method */ 33 enum sbbt_id { 34 SBBT_IO, 35 SBBT_MEM, 36 }; 37}; 38 39CODE { | 31INTERFACE sparcbus; 32 33HEADER { 34 /* Bus tag types for the get_bustag method */ 35 enum sbbt_id { 36 SBBT_IO, 37 SBBT_MEM, 38 }; 39}; 40 41CODE { |
40 static int sparcbus_default_intr_pending(device_t, int); 41 static bus_space_handle_t sparcbus_default_get_bus_handle(device_t, 42 enum sbbt_id, bus_space_handle_t childhdl, bus_space_tag_t *tag); 43 | |
44 static int 45 sparcbus_default_intr_pending(device_t dev, int intr) 46 { 47 48 return (SPARCBUS_INTR_PENDING(device_get_parent(dev), intr)); 49 } 50 | 42 static int 43 sparcbus_default_intr_pending(device_t dev, int intr) 44 { 45 46 return (SPARCBUS_INTR_PENDING(device_get_parent(dev), intr)); 47 } 48 |
49 static u_int32_t 50 sparcbus_default_guess_ino(device_t dev, phandle_t node, u_int slot, 51 u_int pin) 52 { 53 54 return (SPARCBUS_GUESS_INO(device_get_parent(dev), node, slot, 55 pin)); 56 } 57 |
|
51 static bus_space_handle_t 52 sparcbus_default_get_bus_handle(device_t dev, enum sbbt_id id, 53 bus_space_handle_t childhdl, bus_space_tag_t *tag) 54 { 55 56 return (SPARCBUS_GET_BUS_HANDLE(device_get_parent(dev), id, 57 childhdl, tag)); 58 } 59}; 60 61# Return whether an interrupt request is pending for the INO intr. 62METHOD int intr_pending { 63 device_t dev; 64 int intr; 65} DEFAULT sparcbus_default_intr_pending; 66 | 58 static bus_space_handle_t 59 sparcbus_default_get_bus_handle(device_t dev, enum sbbt_id id, 60 bus_space_handle_t childhdl, bus_space_tag_t *tag) 61 { 62 63 return (SPARCBUS_GET_BUS_HANDLE(device_get_parent(dev), id, 64 childhdl, tag)); 65 } 66}; 67 68# Return whether an interrupt request is pending for the INO intr. 69METHOD int intr_pending { 70 device_t dev; 71 int intr; 72} DEFAULT sparcbus_default_intr_pending; 73 |
74# Let the bus driver guess the INO of the device at the given slot and intpin 75# on the bus described by the node if it could not be determined from the 76# firmware properties. Returns 255 if no INO could be found (mapping will 77# continue at the parent), or the desired INO. 78METHOD u_int32_t guess_ino { 79 device_t dev; 80 phandle_t node; 81 u_int slot; 82 u_int pin; 83} DEFAULT sparcbus_default_guess_ino; 84 |
|
67# Get the bustag for the root bus. This is needed for ISA old-stlye 68# in[bwl]()/out[bwl]() support, where no tag retrieved from a resource is 69# passed. The returned tag is used to construct a tag for the whole ISA bus. 70METHOD bus_space_handle_t get_bus_handle { 71 device_t dev; 72 enum sbbt_id id; 73 bus_space_handle_t childhdl; 74 bus_space_tag_t *tag; 75} DEFAULT sparcbus_default_get_bus_handle; | 85# Get the bustag for the root bus. This is needed for ISA old-stlye 86# in[bwl]()/out[bwl]() support, where no tag retrieved from a resource is 87# passed. The returned tag is used to construct a tag for the whole ISA bus. 88METHOD bus_space_handle_t get_bus_handle { 89 device_t dev; 90 enum sbbt_id id; 91 bus_space_handle_t childhdl; 92 bus_space_tag_t *tag; 93} DEFAULT sparcbus_default_get_bus_handle; |