ofw_pci_if.m revision 86234
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. 9# 2. Redistributions in binary form must reproduce the above copyright 10# notice, this list of conditions and the following disclaimer in the 11# documentation and/or other materials provided with the distribution. 12# 13# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 14# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 15# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 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 $ 25 26#include <sys/bus.h> 27#include <machine/bus.h> 28 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 { 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 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 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; 76