|
|
1.1 ! root 1: /* ! 2: * Mach Operating System ! 3: * Copyright (c) 1991,1990,1989 Carnegie Mellon University ! 4: * All Rights Reserved. ! 5: * ! 6: * Permission to use, copy, modify and distribute this software and its ! 7: * documentation is hereby granted, provided that both the copyright ! 8: * notice and this permission notice appear in all copies of the ! 9: * software, derivative works or modified versions, and any portions ! 10: * thereof, and that both notices appear in supporting documentation. ! 11: * ! 12: * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" ! 13: * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR ! 14: * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. ! 15: * ! 16: * Carnegie Mellon requests users of this software to return to ! 17: * ! 18: * Software Distribution Coordinator or [email protected] ! 19: * School of Computer Science ! 20: * Carnegie Mellon University ! 21: * Pittsburgh PA 15213-3890 ! 22: * ! 23: * any improvements or extensions that they make and grant Carnegie Mellon ! 24: * the rights to redistribute these changes. ! 25: */ ! 26: /* ! 27: * File: mapped_scsi.h ! 28: * Author: Alessandro Forin, Carnegie Mellon University ! 29: * Date: 11/90 ! 30: * ! 31: * Definitions for the User-level SCSI Driver ! 32: */ ! 33: ! 34: /* ! 35: * HBA chips of various sorts ! 36: */ ! 37: ! 38: /* DEC 7061 used on pmaxen */ ! 39: ! 40: typedef struct sii_volatile_regs { ! 41: unsigned short sii_conn_csr; ! 42: unsigned short sii_data_csr; ! 43: } *sii_reg_t; ! 44: ! 45: #define HBA_DEC_7061 0x00000001 ! 46: ! 47: /* layout of mapped stuff */ ! 48: #define SII_REGS_BASE (SCSI_INFO_BASE+SCSI_INFO_SIZE) ! 49: #define SII_REGS_SIZE PAGE_SIZE ! 50: #define SII_RAM_BASE (SII_REGS_BASE+SII_REGS_SIZE) ! 51: ! 52: ! 53: /* National 53C94, used on 3maxen' PMAZ-AA boards */ ! 54: ! 55: typedef struct asc_volatile_regs { ! 56: unsigned char csr; ! 57: unsigned char isr; ! 58: unsigned char seq; ! 59: unsigned char cmd; ! 60: } *asc_reg_t; ! 61: ! 62: #define HBA_NCR_53c94 0x00000002 ! 63: ! 64: /* layout of mapped stuff */ ! 65: #define ASC_REGS_BASE (SCSI_INFO_BASE+SCSI_INFO_SIZE) ! 66: #define ASC_REGS_SIZE PAGE_SIZE ! 67: #define ASC_DMAR_BASE (ASC_REGS_BASE+ASC_REGS_SIZE) ! 68: #define ASC_DMAR_SIZE PAGE_SIZE ! 69: #define ASC_RAM_BASE (ASC_DMAR_BASE+ASC_DMAR_SIZE) ! 70: ! 71: /* ! 72: * User-mapped information block, common to all ! 73: */ ! 74: #define SCSI_INFO_BASE 0 ! 75: #define SCSI_INFO_SIZE PAGE_SIZE ! 76: ! 77: #define SCSI_MAX_MAPPED_SIZE (ASC_RAM_BASE+128*1024) ! 78: ! 79: typedef struct { ! 80: int interrupt_count;/* Counter kept by kernel */ ! 81: unsigned int wait_event; /* To wait for interrupts */ ! 82: unsigned ram_size; ! 83: int hba_type; /* Tag for regs union */ ! 84: union { /* Space for regs saved on ! 85: * intr. Only few used */ ! 86: struct asc_volatile_regs asc; ! 87: struct sii_volatile_regs sii; ! 88: } saved_regs; ! 89: } *mapped_scsi_info_t; ! 90:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.