xref: /freebsd/sys/dev/pci/pci_if.m (revision 098ca2bda93c701c5331d4e6aace072495b4caaa)
1098ca2bdSWarner Losh#-
26182fdbdSPeter Wemm# Copyright (c) 1998 Doug Rabson
36182fdbdSPeter Wemm# All rights reserved.
46182fdbdSPeter Wemm#
56182fdbdSPeter Wemm# Redistribution and use in source and binary forms, with or without
66182fdbdSPeter Wemm# modification, are permitted provided that the following conditions
76182fdbdSPeter Wemm# are met:
86182fdbdSPeter Wemm# 1. Redistributions of source code must retain the above copyright
96182fdbdSPeter Wemm#    notice, this list of conditions and the following disclaimer.
106182fdbdSPeter Wemm# 2. Redistributions in binary form must reproduce the above copyright
116182fdbdSPeter Wemm#    notice, this list of conditions and the following disclaimer in the
126182fdbdSPeter Wemm#    documentation and/or other materials provided with the distribution.
136182fdbdSPeter Wemm#
146182fdbdSPeter Wemm# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
156182fdbdSPeter Wemm# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
166182fdbdSPeter Wemm# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
176182fdbdSPeter Wemm# ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
186182fdbdSPeter Wemm# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
196182fdbdSPeter Wemm# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
206182fdbdSPeter Wemm# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
216182fdbdSPeter Wemm# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
226182fdbdSPeter Wemm# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
236182fdbdSPeter Wemm# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
246182fdbdSPeter Wemm# SUCH DAMAGE.
256182fdbdSPeter Wemm#
26c3aac50fSPeter Wemm# $FreeBSD$
276182fdbdSPeter Wemm#
286182fdbdSPeter Wemm
29f7b77691SDoug Rabson#include <sys/bus.h>
30f7b77691SDoug Rabson
316182fdbdSPeter WemmINTERFACE pci;
326182fdbdSPeter Wemm
336182fdbdSPeter WemmMETHOD u_int32_t read_config {
346182fdbdSPeter Wemm	device_t	dev;
356182fdbdSPeter Wemm	device_t	child;
366182fdbdSPeter Wemm	int		reg;
376182fdbdSPeter Wemm	int		width;
386182fdbdSPeter Wemm};
396182fdbdSPeter Wemm
406182fdbdSPeter WemmMETHOD void write_config {
416182fdbdSPeter Wemm	device_t	dev;
426182fdbdSPeter Wemm	device_t	child;
436182fdbdSPeter Wemm	int		reg;
446182fdbdSPeter Wemm	u_int32_t	val;
456182fdbdSPeter Wemm	int		width;
466182fdbdSPeter Wemm};
479eb13b39SPeter Wemm
489eb13b39SPeter WemmMETHOD int get_powerstate {
499eb13b39SPeter Wemm	device_t	dev;
509eb13b39SPeter Wemm	device_t	child;
519eb13b39SPeter Wemm};
529eb13b39SPeter Wemm
539eb13b39SPeter WemmMETHOD int set_powerstate {
549eb13b39SPeter Wemm	device_t	dev;
559eb13b39SPeter Wemm	device_t	child;
569eb13b39SPeter Wemm	int		state;
579eb13b39SPeter Wemm};
589eb13b39SPeter Wemm
59c047e5b1SMatthew N. DoddMETHOD int enable_busmaster {
609eb13b39SPeter Wemm	device_t	dev;
619eb13b39SPeter Wemm	device_t	child;
629eb13b39SPeter Wemm};
639eb13b39SPeter Wemm
64c047e5b1SMatthew N. DoddMETHOD int disable_busmaster {
659eb13b39SPeter Wemm	device_t	dev;
669eb13b39SPeter Wemm	device_t	child;
679eb13b39SPeter Wemm};
689eb13b39SPeter Wemm
69c047e5b1SMatthew N. DoddMETHOD int enable_io {
709eb13b39SPeter Wemm	device_t	dev;
719eb13b39SPeter Wemm	device_t	child;
729eb13b39SPeter Wemm	int		space;
739eb13b39SPeter Wemm};
749eb13b39SPeter Wemm
75c047e5b1SMatthew N. DoddMETHOD int disable_io {
769eb13b39SPeter Wemm	device_t	dev;
779eb13b39SPeter Wemm	device_t	child;
789eb13b39SPeter Wemm	int		space;
799eb13b39SPeter Wemm};
803920999dSThomas Moestl
813920999dSThomas MoestlMETHOD int assign_interrupt {
823920999dSThomas Moestl	device_t	dev;
833920999dSThomas Moestl	device_t	child;
843920999dSThomas Moestl};
85