[BACK]Return to mainbus.c CVS log [TXT][DIR] Up to [local] / sys / arch / arm / mainbus

Annotation of sys/arch/arm/mainbus/mainbus.c, Revision 1.1

1.1     ! nbrk        1: /*     $OpenBSD: mainbus.c,v 1.3 2005/12/31 23:03:58 drahn Exp $       */
        !             2: /* $NetBSD: mainbus.c,v 1.3 2001/06/13 17:52:43 nathanw Exp $ */
        !             3:
        !             4: /*
        !             5:  * Copyright (c) 1994,1995 Mark Brinicombe.
        !             6:  * Copyright (c) 1994 Brini.
        !             7:  * All rights reserved.
        !             8:  *
        !             9:  * Redistribution and use in source and binary forms, with or without
        !            10:  * modification, are permitted provided that the following conditions
        !            11:  * are met:
        !            12:  * 1. Redistributions of source code must retain the above copyright
        !            13:  *    notice, this list of conditions and the following disclaimer.
        !            14:  * 2. Redistributions in binary form must reproduce the above copyright
        !            15:  *    notice, this list of conditions and the following disclaimer in the
        !            16:  *    documentation and/or other materials provided with the distribution.
        !            17:  * 3. All advertising materials mentioning features or use of this software
        !            18:  *    must display the following acknowledgement:
        !            19:  *     This product includes software developed by Brini.
        !            20:  * 4. The name of the company nor the name of the author may be used to
        !            21:  *    endorse or promote products derived from this software without specific
        !            22:  *    prior written permission.
        !            23:  *
        !            24:  * THIS SOFTWARE IS PROVIDED BY BRINI ``AS IS'' AND ANY EXPRESS OR IMPLIED
        !            25:  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
        !            26:  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
        !            27:  * IN NO EVENT SHALL BRINI OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
        !            28:  * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
        !            29:  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
        !            30:  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
        !            31:  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
        !            32:  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
        !            33:  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
        !            34:  * SUCH DAMAGE.
        !            35:  *
        !            36:  * RiscBSD kernel project
        !            37:  *
        !            38:  * mainbus.c
        !            39:  *
        !            40:  * mainbus configuration
        !            41:  *
        !            42:  * Created      : 15/12/94
        !            43:  */
        !            44:
        !            45: #include <sys/param.h>
        !            46: #include <sys/systm.h>
        !            47: #include <sys/kernel.h>
        !            48: #include <sys/conf.h>
        !            49: #include <sys/malloc.h>
        !            50: #include <sys/device.h>
        !            51:
        !            52: #if defined(arm32)             /* XXX */
        !            53: #include <machine/io.h>
        !            54: #endif
        !            55: #include <machine/bus.h>
        !            56: #include <arm/mainbus/mainbus.h>
        !            57: /*
        !            58: #include "locators.h"
        !            59: */
        !            60:
        !            61: /*
        !            62:  * mainbus is a root device so we a bus space tag to pass to children
        !            63:  *
        !            64:  * The tag is provided by mainbus_io.c and mainbus_io_asm.S
        !            65:  */
        !            66:
        !            67: extern struct bus_space mainbus_bs_tag;
        !            68:
        !            69: /* Prototypes for functions provided */
        !            70:
        !            71: int  mainbusmatch  (struct device *, void *, void *);
        !            72: void mainbusattach (struct device *, struct device *, void *);
        !            73: int  mainbusprint  (void *aux, const char *mainbus);
        !            74: int mainbussearch (struct device *,  void *, void *);
        !            75:
        !            76: /* attach and device structures for the device */
        !            77:
        !            78: struct cfattach mainbus_ca = {
        !            79:        sizeof(struct device), mainbusmatch, mainbusattach
        !            80: };
        !            81:
        !            82: struct cfdriver mainbus_cd = {
        !            83:        NULL, "mainbus", DV_DULL
        !            84: };
        !            85:
        !            86: /*
        !            87:  * int mainbusmatch(struct device *parent, struct cfdata *cf, void *aux)
        !            88:  *
        !            89:  * Always match for unit 0
        !            90:  */
        !            91:
        !            92: int
        !            93: mainbusmatch(struct device *parent, void *cf, void *aux)
        !            94: {
        !            95:        return (1);
        !            96: }
        !            97:
        !            98: /*
        !            99:  * void mainbusattach(struct device *parent, struct device *self, void *aux)
        !           100:  *
        !           101:  * probe and attach all children
        !           102:  */
        !           103:
        !           104: void
        !           105: mainbusattach(struct device *parent, struct device *self, void *aux)
        !           106: {
        !           107:        printf("\n");
        !           108:
        !           109:        config_search(mainbussearch, self, self);
        !           110: }
        !           111:
        !           112: int
        !           113: mainbussearch(struct device *parent, void *c, void *aux)
        !           114: {
        !           115:        struct mainbus_attach_args ma;
        !           116:        struct cfdata *cf = c;
        !           117:
        !           118:
        !           119:        ma.ma_iot = &mainbus_bs_tag;
        !           120:        ma.ma_name = cf->cf_driver->cd_name;
        !           121:
        !           122:        config_found(parent, &ma, mainbusprint);
        !           123:
        !           124:        return 1;
        !           125: }
        !           126:
        !           127: /*
        !           128:  * int mainbusprint(void *aux, const char *mainbus)
        !           129:  *
        !           130:  * print routine used during config of children
        !           131:  */
        !           132:
        !           133: int
        !           134: mainbusprint(void *aux, const char *mainbus)
        !           135: {
        !           136: /* XXXX print flags */
        !           137:        return (QUIET);
        !           138: }

CVSweb