1 /* $NetBSD: autoconf.h,v 1.8 1997/05/25 06:10:47 jonathan Exp $ */ 2 3 /* 4 * Copyright (c) 1994, 1995 Carnegie-Mellon University. 5 * All rights reserved. 6 * 7 * Author: Chris G. Demetriou 8 * 9 * Permission to use, copy, modify and distribute this software and 10 * its documentation is hereby granted, provided that both the copyright 11 * notice and this permission notice appear in all copies of the 12 * software, derivative works or modified versions, and any portions 13 * thereof, and that both notices appear in supporting documentation. 14 * 15 * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" 16 * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND 17 * FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. 18 * 19 * Carnegie Mellon requests users of this software to return to 20 * 21 * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU 22 * School of Computer Science 23 * Carnegie Mellon University 24 * Pittsburgh PA 15213-3890 25 * 26 * any improvements or extensions that they make and grant Carnegie the 27 * rights to redistribute these changes. 28 */ 29 30 /* 31 * Machine-dependent structures of autoconfiguration 32 */ 33 34 #include <machine/tc_machdep.h> 35 36 struct confargs; 37 38 39 /* Handle device interrupt for given unit of a driver */ 40 41 typedef void* intr_arg_t; /* pointer to some softc */ 42 typedef int (*intr_handler_t) __P((intr_arg_t)); 43 /* 44 * XXX Establish interrupt on an arbitrary decstation/decsystem bus. 45 */ 46 extern void 47 generic_intr_establish __P(( void * parent, void * cookie, 48 int level, 49 intr_handler_t handler, intr_arg_t arg)); 50 51 52 #define KN02_ASIC_NAME "KN02 " /* ROM name in 3max system slot */ 53 54 #define INTR_ESTABLISH(parent, cookie, level, handler, val) \ 55 generic_intr_establish((parent), (cookie), (level), (handler), (val)) 56 57 #define BUS_INTR_ESTABLISH(ca, handler, val) \ 58 generic_intr_establish( ((struct device*)(val))->dv_parent, \ 59 (void*)(ca)->ca_slotpri, 0, (handler), (val)) 60 61 62 struct confargs { 63 char *ca_name; /* Device name. */ 64 int ca_slot; /* Device slot (table entry). */ 65 int ca_offset; /* Offset into slot. */ 66 tc_addr_t ca_addr; /* Device address. */ 67 int ca_slotpri; /* Device interrupt "priority" */ 68 }; 69 70 extern caddr_t baseboard_cvtaddr __P((struct confargs *)); /*XXX*/ 71 72 #ifndef pmax 73 void set_clockintr __P((void (*)(struct clockframe *))); 74 #endif 75 void set_iointr __P((void (*)(void *, int))); 76 int badaddr __P((void *, u_int)); 77 void configure __P((void)); 78 void makebootdev __P((char *cp)); 79