From 08b6a4cbee427b68518039a35579f86d2e646bb9 Mon Sep 17 00:00:00 2001 From: Doug Rabson Date: Sun, 15 Nov 1998 18:25:17 +0000 Subject: * Add hooks to allow the X server to access I/O ports and memory. * Update drivers to the latest version of the bus interface. The ISA drivers' use of the new resource api is minimal. Garrett has some much cleaner drivers which should be more easily shared between i386 and alpha. This has only been tested on cia based machines. It should work on lca and apecs but I might have broken something. --- sys/alpha/include/chipset.h | 25 +++++++++++++++++++++---- sys/alpha/include/intr.h | 17 ++++------------- sys/alpha/include/proc.h | 10 ++++++---- 3 files changed, 31 insertions(+), 21 deletions(-) (limited to 'sys/alpha/include') diff --git a/sys/alpha/include/chipset.h b/sys/alpha/include/chipset.h index 74698c5c5a9ab..f7a61be4c1f28 100644 --- a/sys/alpha/include/chipset.h +++ b/sys/alpha/include/chipset.h @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: chipset.h,v 1.4 1998/08/10 07:53:58 dfr Exp $ + * $Id: chipset.h,v 1.5 1998/10/06 14:18:39 dfr Exp $ */ #ifndef _MACHINE_CHIPSET_H_ @@ -54,7 +54,8 @@ typedef void alpha_chipset_cfgwritew_t(u_int, u_int, u_int, u_int, typedef void alpha_chipset_cfgwritel_t(u_int, u_int, u_int, u_int, u_int32_t); typedef vm_offset_t alpha_chipset_addrcvt_t(vm_offset_t); - +typedef u_int64_t alpha_chipset_read_hae_t(void); +typedef void alpha_chipset_write_hae_t(u_int64_t); typedef struct alpha_chipset { /* @@ -91,8 +92,14 @@ typedef struct alpha_chipset { /* * PCI address space translation functions */ - alpha_chipset_addrcvt_t* cvt_to_dense; - alpha_chipset_addrcvt_t* cvt_to_bwx; + alpha_chipset_addrcvt_t* cvt_to_dense; + alpha_chipset_addrcvt_t* cvt_to_bwx; + + /* + * Access the HAE register + */ + alpha_chipset_read_hae_t* read_hae; + alpha_chipset_write_hae_t* write_hae; /* * PCI interrupt device. @@ -104,4 +111,14 @@ typedef struct alpha_chipset { extern alpha_chipset_t chipset; +/* + * Exported sysctl variables describing the PCI chipset. + */ +extern char chipset_type[10]; +extern int chipset_bwx; +extern long chipset_ports; +extern long chipset_memory; +extern long chipset_dense; +extern long chipset_hae_mask; + #endif /* !_MACHINE_CHIPSET_H_ */ diff --git a/sys/alpha/include/intr.h b/sys/alpha/include/intr.h index 79af6fd9fa6dd..3f4c79dcd62d0 100644 --- a/sys/alpha/include/intr.h +++ b/sys/alpha/include/intr.h @@ -23,24 +23,15 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: intr.h,v 1.2 1998/07/12 16:09:30 dfr Exp $ + * $Id: intr.h,v 1.3 1998/08/10 07:53:58 dfr Exp $ */ #ifndef _MACHINE_INTR_H_ #define _MACHINE_INTR_H_ -LIST_HEAD(alpha_intr_list, alpha_intr); - -struct alpha_intr { - LIST_ENTRY(alpha_intr) list; /* chain handlers in this hash bucket */ - int vector; /* vector to match */ - driver_intr_t *intr; /* handler function */ - void *arg; /* argument to handler */ -}; - -struct alpha_intr *alpha_create_intr(int vector, - driver_intr_t *intr, void *arg); -int alpha_connect_intr(struct alpha_intr *i); +int alpha_setup_intr(int vector, driver_intr_t *intr, void *arg, + void **cookiep); +int alpha_teardown_intr(void *cookie); void alpha_dispatch_intr(void *frame, unsigned long vector); #endif /* !_MACHINE_INTR_H_ */ diff --git a/sys/alpha/include/proc.h b/sys/alpha/include/proc.h index 6a1af705706e3..de24336006604 100644 --- a/sys/alpha/include/proc.h +++ b/sys/alpha/include/proc.h @@ -1,4 +1,4 @@ -/* $Id: proc.h,v 1.2 1998/06/10 10:55:17 dfr Exp $ */ +/* $Id: proc.h,v 1.3 1998/07/15 20:16:27 dfr Exp $ */ /* From: NetBSD: proc.h,v 1.3 1997/04/06 08:47:36 cgd Exp */ /* @@ -38,12 +38,14 @@ struct mdbpt { }; struct mdproc { - u_long md_flags; + u_long md_flags; struct trapframe *md_tf; /* trap/syscall registers */ - struct pcb *md_pcbpaddr; /* phys addr of the pcb */ - struct mdbpt md_sstep[2]; /* two single step breakpoints */ + struct pcb *md_pcbpaddr; /* phys addr of the pcb */ + struct mdbpt md_sstep[2]; /* two single step breakpoints */ + u_int64_t md_hae; /* user HAE register value */ }; #define MDP_FPUSED 0x0001 /* Process used the FPU */ #define MDP_STEP1 0x0002 /* Single step normal instruction */ #define MDP_STEP2 0x0004 /* Single step branch instruction */ +#define MDP_HAEUSED 0x0008 /* Process used the HAE */ -- cgit v1.3