eisa_machdep.h revision 1.14
11.14Sknakahar/*	$NetBSD: eisa_machdep.h,v 1.14 2015/04/27 08:30:11 knakahara Exp $	*/
21.1Scgd
31.1Scgd/*
41.1Scgd * Copyright (c) 1996 Christopher G. Demetriou.  All rights reserved.
51.1Scgd *
61.1Scgd * Redistribution and use in source and binary forms, with or without
71.1Scgd * modification, are permitted provided that the following conditions
81.1Scgd * are met:
91.1Scgd * 1. Redistributions of source code must retain the above copyright
101.1Scgd *    notice, this list of conditions and the following disclaimer.
111.1Scgd * 2. Redistributions in binary form must reproduce the above copyright
121.1Scgd *    notice, this list of conditions and the following disclaimer in the
131.1Scgd *    documentation and/or other materials provided with the distribution.
141.1Scgd * 3. All advertising materials mentioning features or use of this software
151.1Scgd *    must display the following acknowledgement:
161.1Scgd *      This product includes software developed by Christopher G. Demetriou
171.1Scgd *	for the NetBSD Project.
181.1Scgd * 4. The name of the author may not be used to endorse or promote products
191.1Scgd *    derived from this software without specific prior written permission
201.1Scgd *
211.1Scgd * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
221.1Scgd * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
231.1Scgd * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
241.1Scgd * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
251.1Scgd * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
261.1Scgd * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
271.1Scgd * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
281.1Scgd * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
291.1Scgd * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
301.1Scgd * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
311.1Scgd */
321.1Scgd
331.1Scgd/*
341.2Scgd * Machine-specific definitions for EISA autoconfiguration.
351.2Scgd */
361.2Scgd
371.2Scgd/*
381.2Scgd * i386-specific EISA definitions.
391.2Scgd * NOT TO BE USED DIRECTLY BY MACHINE INDEPENDENT CODE.
401.1Scgd */
411.1Scgd#define	EISA_ID			"EISA"
421.1Scgd#define	EISA_ID_LEN		(sizeof(EISA_ID) - 1)
431.1Scgd#define	EISA_ID_PADDR		0xfffd9
441.4Sthorpej
451.10Sfvdlextern struct x86_bus_dma_tag eisa_bus_dma_tag;
461.9Sfvdl
471.9Sfvdl/* EISA Edge/Level trigger control registers */
481.9Sfvdl#define ELCR0   0x4d0                   /* eisa irq 0-7 */
491.9Sfvdl#define ELCR1   0x4d1                   /* eisa irq 8-15 */
501.2Scgd
511.14Sknakahar#include <machine/intr.h> /* for intr_handle_t */
521.2Scgd/*
531.2Scgd * Types provided to machine-independent EISA code.
541.2Scgd */
551.2Scgdtypedef void *eisa_chipset_tag_t;
561.14Sknakahartypedef intr_handle_t eisa_intr_handle_t;
571.2Scgd
581.2Scgd/*
591.2Scgd * Functions provided to machine-independent EISA code.
601.2Scgd */
611.11Sceggervoid		eisa_attach_hook(device_t, device_t,
621.6Scgd		    struct eisabus_attach_args *);
631.6Scgdint		eisa_maxslots(eisa_chipset_tag_t);
641.6Scgdint		eisa_intr_map(eisa_chipset_tag_t, u_int,
651.6Scgd		    eisa_intr_handle_t *);
661.13Schristosconst char	*eisa_intr_string(eisa_chipset_tag_t, eisa_intr_handle_t,
671.13Schristos		    char *, size_t);
681.7Scgdconst struct evcnt *eisa_intr_evcnt(eisa_chipset_tag_t, eisa_intr_handle_t);
691.6Scgdvoid		*eisa_intr_establish(eisa_chipset_tag_t,
701.6Scgd		    eisa_intr_handle_t, int, int, int (*)(void *), void *);
711.6Scgdvoid		eisa_intr_disestablish(eisa_chipset_tag_t, void *);
721.8Sthorpej
731.8Sthorpejint		eisa_conf_read_mem(eisa_chipset_tag_t, int, int, int,
741.8Sthorpej		    struct eisa_cfg_mem *);
751.8Sthorpejint		eisa_conf_read_irq(eisa_chipset_tag_t, int, int, int,
761.8Sthorpej		    struct eisa_cfg_irq *);
771.8Sthorpejint		eisa_conf_read_dma(eisa_chipset_tag_t, int, int, int,
781.8Sthorpej		    struct eisa_cfg_dma *);
791.8Sthorpejint		eisa_conf_read_io(eisa_chipset_tag_t, int, int, int,
801.8Sthorpej		    struct eisa_cfg_io *);
81