[BACK]Return to tcvar.h CVS log [TXT][DIR] Up to [local] / sys / dev / tc

Annotation of sys/dev/tc/tcvar.h, Revision 1.1

1.1     ! nbrk        1: /* $OpenBSD: tcvar.h,v 1.12 2004/06/28 02:28:43 aaron Exp $ */
        !             2: /* $NetBSD: tcvar.h,v 1.17 2000/06/04 19:15:15 cgd Exp $ */
        !             3:
        !             4: /*
        !             5:  * Copyright (c) 1995 Carnegie-Mellon University.
        !             6:  * All rights reserved.
        !             7:  *
        !             8:  * Author: Chris G. Demetriou
        !             9:  *
        !            10:  * Permission to use, copy, modify and distribute this software and
        !            11:  * its documentation is hereby granted, provided that both the copyright
        !            12:  * notice and this permission notice appear in all copies of the
        !            13:  * software, derivative works or modified versions, and any portions
        !            14:  * thereof, and that both notices appear in supporting documentation.
        !            15:  *
        !            16:  * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
        !            17:  * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND
        !            18:  * FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
        !            19:  *
        !            20:  * Carnegie Mellon requests users of this software to return to
        !            21:  *
        !            22:  *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
        !            23:  *  School of Computer Science
        !            24:  *  Carnegie Mellon University
        !            25:  *  Pittsburgh PA 15213-3890
        !            26:  *
        !            27:  * any improvements or extensions that they make and grant Carnegie the
        !            28:  * rights to redistribute these changes.
        !            29:  */
        !            30:
        !            31: #ifndef __DEV_TC_TCVAR_H__
        !            32: #define __DEV_TC_TCVAR_H__
        !            33:
        !            34: /*
        !            35:  * Definitions for TURBOchannel autoconfiguration.
        !            36:  */
        !            37:
        !            38: #include <machine/bus.h>
        !            39: #include <dev/tc/tcreg.h>
        !            40:
        !            41: /*
        !            42:  * Machine-dependent definitions.
        !            43:  */
        !            44: #include <machine/tc_machdep.h>
        !            45:
        !            46: /*
        !            47:  * In the long run, the following block will go completely away.
        !            48:  * For now, the MI TC code still uses the old TC_IPL_ names
        !            49:  * and not the new IPL_ names.
        !            50:  */
        !            51: #if 1
        !            52: /*
        !            53:  * Map the new definitions to the old.
        !            54:  */
        !            55: #include <machine/intr.h>
        !            56:
        !            57: #define tc_intrlevel_t int
        !            58:
        !            59: #define        TC_IPL_NONE     IPL_NONE
        !            60: #define        TC_IPL_BIO      IPL_BIO
        !            61: #define        TC_IPL_NET      IPL_NET
        !            62: #define        TC_IPL_TTY      IPL_TTY
        !            63: #define        TC_IPL_CLOCK    IPL_CLOCK
        !            64: #endif /* 1 */
        !            65:
        !            66: struct tc_softc {
        !            67:        struct  device sc_dv;
        !            68:
        !            69:        int     sc_speed;
        !            70:        int     sc_nslots;
        !            71:        struct tc_slotdesc *sc_slots;
        !            72:
        !            73:        void    (*sc_intr_establish)(struct device *, void *,
        !            74:                        int, int (*)(void *), void *);
        !            75:        void    (*sc_intr_disestablish)(struct device *, void *);
        !            76:        bus_dma_tag_t (*sc_get_dma_tag)(int);
        !            77: };
        !            78:
        !            79: /*
        !            80:  * Arguments used to attach TURBOchannel busses.
        !            81:  */
        !            82: struct tcbus_attach_args {
        !            83:        char            *tba_busname;           /* XXX should be common */
        !            84:        bus_space_tag_t tba_memt;
        !            85:
        !            86:        /* Bus information */
        !            87:        u_int           tba_speed;              /* see TC_SPEED_* below */
        !            88:        u_int           tba_nslots;
        !            89:        struct tc_slotdesc *tba_slots;
        !            90:        u_int           tba_nbuiltins;
        !            91:        const struct tc_builtin *tba_builtins;
        !            92:
        !            93:
        !            94:        /* TC bus resource management; XXX will move elsewhere eventually. */
        !            95:        void    (*tba_intr_establish)(struct device *, void *,
        !            96:                        int, int (*)(void *), void *);
        !            97:        void    (*tba_intr_disestablish)(struct device *, void *);
        !            98:        bus_dma_tag_t (*tba_get_dma_tag)(int);
        !            99: };
        !           100:
        !           101: /*
        !           102:  * Arguments used to attach TURBOchannel devices.
        !           103:  */
        !           104: struct tc_attach_args {
        !           105:        bus_space_tag_t ta_memt;
        !           106:        bus_dma_tag_t   ta_dmat;
        !           107:
        !           108:        char            ta_modname[TC_ROM_LLEN+1];
        !           109:        u_int           ta_slot;
        !           110:        tc_offset_t     ta_offset;
        !           111:        tc_addr_t       ta_addr;
        !           112:        void            *ta_cookie;
        !           113:        u_int           ta_busspeed;            /* see TC_SPEED_* below */
        !           114: };
        !           115:
        !           116: /*
        !           117:  * Description of TURBOchannel slots, provided by machine-dependent
        !           118:  * code to the TURBOchannel bus driver.
        !           119:  */
        !           120: struct tc_slotdesc {
        !           121:        tc_addr_t       tcs_addr;
        !           122:        void            *tcs_cookie;
        !           123:        int             tcs_used;
        !           124: };
        !           125:
        !           126: /*
        !           127:  * Description of built-in TURBOchannel devices, provided by
        !           128:  * machine-dependent code to the TURBOchannel bus driver.
        !           129:  */
        !           130: struct tc_builtin {
        !           131:        char            *tcb_modname;
        !           132:        u_int           tcb_slot;
        !           133:        tc_offset_t     tcb_offset;
        !           134:        void            *tcb_cookie;
        !           135: };
        !           136:
        !           137: /*
        !           138:  * Interrupt establishment functions.
        !           139:  */
        !           140: int    tc_checkslot(tc_addr_t, char *);
        !           141: void   tc_devinfo(const char *, char *, size_t);
        !           142: void   tcattach(struct device *, struct device *, void *);
        !           143: void   tc_intr_establish(struct device *, void *, int, int (*)(void *),
        !           144:            void *);
        !           145: void   tc_intr_disestablish(struct device *, void *);
        !           146:
        !           147: /*
        !           148:  * Easy to remember names for TURBOchannel device locators.
        !           149:  */
        !           150: #define        tccf_slot       cf_loc[0]               /* slot */
        !           151: #define        tccf_offset     cf_loc[1]               /* offset */
        !           152:
        !           153: #define        TCCF_SLOT_UNKNOWN       -1
        !           154: #define        TCCF_OFFSET_UNKNOWN     -1
        !           155:
        !           156: /*
        !           157:  * Miscellaneous definitions.
        !           158:  */
        !           159: #define        TC_SPEED_12_5_MHZ       0               /* 12.5MHz TC bus */
        !           160: #define        TC_SPEED_25_MHZ         1               /* 25MHz TC bus */
        !           161:
        !           162: #endif /* __DEV_TC_TCVAR_H__ */

CVSweb