diff options
author | Jason Downs <downsj@cvs.openbsd.org> | 1997-01-12 15:13:47 +0000 |
---|---|---|
committer | Jason Downs <downsj@cvs.openbsd.org> | 1997-01-12 15:13:47 +0000 |
commit | e661b0e07a7f4c778ac8e9b5eb341a7ad9795c2b (patch) | |
tree | 6158c02b8e503faa614ccff77b3cca01e9b912e4 /sys/arch/hp300/dev/intio.c | |
parent | d470dc6647ff9a7e3f6d00b205d12ab7428cc092 (diff) |
Mostly sync to NetBSD-current of 011196. Compiles, links, boots to single
user.
KNOWN NOT WORKING:
* DIO-II devices
* Dynamic executables
NOT EVEN TRIED:
* New config support
Diffstat (limited to 'sys/arch/hp300/dev/intio.c')
-rw-r--r-- | sys/arch/hp300/dev/intio.c | 115 |
1 files changed, 115 insertions, 0 deletions
diff --git a/sys/arch/hp300/dev/intio.c b/sys/arch/hp300/dev/intio.c new file mode 100644 index 00000000000..af6a5a1bb02 --- /dev/null +++ b/sys/arch/hp300/dev/intio.c @@ -0,0 +1,115 @@ +/* $OpenBSD: intio.c,v 1.1 1997/01/12 15:12:47 downsj Exp $ */ +/* $NetBSD: intio.c,v 1.1 1996/12/17 08:41:15 thorpej Exp $ */ + +/*- + * Copyright (c) 1996 The NetBSD Foundation, Inc. + * All rights reserved. + * + * This code is derived from software contributed to The NetBSD Foundation + * by Jason R. Thorpe. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the NetBSD + * Foundation, Inc. and its contributors. + * 4. Neither the name of The NetBSD Foundation nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * Autoconfiguration support for hp300 internal i/o space. + */ + +#include <sys/param.h> +#include <sys/systm.h> +#include <sys/device.h> + +#include <hp300/dev/intiovar.h> + +int intiomatch __P((struct device *, struct cfdata *, void *)); +void intioattach __P((struct device *, struct device *, void *)); +int intioprint __P((void *, const char *)); +int intiosearch __P((struct device *, struct cfdata *, void *)); + +struct cfattach intio_ca = { + sizeof(struct device), intiomatch, intioattach +}; + +struct cfdriver intio_cd = { + NULL, "intio", DV_DULL +}; + +int +intiomatch(parent, match, aux) + struct device *parent; + struct cfdata *match; + void *aux; +{ + static int intio_matched = 0; + + /* Allow only one instance. */ + if (intio_matched) + return (0); + + intio_matched = 1; + return (1); +} + +void +intioattach(parent, self, aux) + struct device *parent, *self; + void *aux; +{ + + printf("\n"); + + /* Search for and attach children. */ + config_search(intiosearch, self, NULL); +} + +int +intioprint(aux, pnp) + void *aux; + const char *pnp; +{ + struct intio_attach_args *ia = aux; + + if (ia->ia_addr != 0) + printf(" addr %p", ia->ia_addr); + return (UNCONF); +} + +int +intiosearch(parent, cf, aux) + struct device *parent; + struct cfdata *cf; + void *aux; +{ + struct intio_attach_args ia; + + bzero(&ia, sizeof(ia)); + if ((*cf->cf_attach->ca_match)(parent, cf, &ia) > 0) + config_attach(parent, cf, &ia, intioprint); + return (0); +} |