1139749Simp/*- 265312Smsmith * Copyright (c) 1996-2000 Distributed Processing Technology Corporation 382092Sscottl * Copyright (c) 2000-2001 Adaptec Corporation. 465312Smsmith * All rights reserved. 565312Smsmith * 665312Smsmith * Redistribution and use in source form, with or without modification, are 765312Smsmith * permitted provided that redistributions of source code must retain the 865312Smsmith * above copyright notice, this list of conditions and the following disclaimer. 965312Smsmith * 1065312Smsmith * This software is provided `as is' by Distributed Processing Technology and 1165312Smsmith * any express or implied warranties, including, but not limited to, the 1265312Smsmith * implied warranties of merchantability and fitness for a particular purpose, 1365312Smsmith * are disclaimed. In no event shall Distributed Processing Technology be 1465312Smsmith * liable for any direct, indirect, incidental, special, exemplary or 1565312Smsmith * consequential damages (including, but not limited to, procurement of 1665312Smsmith * substitute goods or services; loss of use, data, or profits; or business 1765312Smsmith * interruptions) however caused and on any theory of liability, whether in 1865312Smsmith * contract, strict liability, or tort (including negligence or otherwise) 1965312Smsmith * arising in any way out of the use of this driver software, even if advised 2065312Smsmith * of the possibility of such damage. 2165312Smsmith * 2287826Sobrien * $FreeBSD$ 2365312Smsmith */ 2465312Smsmith 2565312Smsmith#ifndef __DPTSIG_H_ 2696615Sobrien#define __DPTSIG_H_ 2765312Smsmith#ifdef _SINIX_ADDON 2865312Smsmith#include "dpt.h" 2965312Smsmith#endif 3096554Sobrien/* DPT SIGNATURE SPEC AND HEADER FILE */ 3196554Sobrien/* Signature Version 1 (sorry no 'A') */ 3265312Smsmith 3396554Sobrien/* to make sure we are talking the same size under all OS's */ 3465312Smsmithtypedef unsigned char sigBYTE; 3565312Smsmithtypedef unsigned short sigWORD; 3665312Smsmith#if (defined(_MULTI_DATAMODEL) && defined(sun) && !defined(_ILP32)) 3765312Smsmithtypedef uint32_t sigLONG; 3865312Smsmith#else 3965312Smsmithtypedef unsigned long sigLONG; 4065312Smsmith#endif 4165312Smsmith 4265312Smsmith/* 4365312Smsmith * use sigWORDLittleEndian for: 4465312Smsmith * dsCapabilities 4565312Smsmith * dsDeviceSupp 4665312Smsmith * dsAdapterSupp 4765312Smsmith * dsApplication 4865312Smsmith * use sigLONGLittleEndian for: 4996554Sobrien * dsOS 5065312Smsmith * so that the sig can be standardised to Little Endian 5165312Smsmith */ 5265312Smsmith#if (defined(_DPT_BIG_ENDIAN)) 5365312Smsmith# define sigWORDLittleEndian(x) ((((x)&0xFF)<<8)|(((x)>>8)&0xFF)) 5465312Smsmith# define sigLONGLittleEndian(x) \ 5596554Sobrien ((((x)&0xFF)<<24) | \ 5696554Sobrien (((x)&0xFF00)<<8) | \ 5796554Sobrien (((x)&0xFF0000L)>>8) | \ 5896554Sobrien (((x)&0xFF000000L)>>24)) 5965312Smsmith#else 6065312Smsmith# define sigWORDLittleEndian(x) (x) 6165312Smsmith# define sigLONGLittleEndian(x) (x) 6265312Smsmith#endif 6365312Smsmith 6496554Sobrien/* must make sure the structure is not word or double-word aligned */ 6596554Sobrien/* --------------------------------------------------------------- */ 6696554Sobrien/* Borland will ignore the following pragma: */ 6796554Sobrien/* Word alignment is OFF by default. If in the, IDE make */ 6896554Sobrien/* sure that Options | Compiler | Code Generation | Word Alignment */ 6996554Sobrien/* is not checked. If using BCC, do not use the -a option. */ 7065312Smsmith 7165312Smsmith#ifndef NO_PACK 7296614Sobrien#if defined(_DPT_AIX) 7365312Smsmith#pragma options align=packed 7465312Smsmith#else 7565312Smsmith#pragma pack(1) 7696554Sobrien#endif /* aix */ 7765312Smsmith#endif 7865312Smsmith/* For the Macintosh */ 79153084Sru#ifdef STRUCTALIGNMENTSUPPORTED 8065312Smsmith#pragma options align=mac68k 8165312Smsmith#endif 8265312Smsmith 8365312Smsmith 8465312Smsmith/* Current Signature Version - sigBYTE dsSigVersion; */ 8565312Smsmith/* ------------------------------------------------------------------ */ 8696615Sobrien#define SIG_VERSION 1 8765312Smsmith 8865312Smsmith/* Processor Family - sigBYTE dsProcessorFamily; DISTINCT VALUES */ 8965312Smsmith/* ------------------------------------------------------------------ */ 9065312Smsmith/* What type of processor the file is meant to run on. */ 9165312Smsmith/* This will let us know whether to read sigWORDs as high/low or low/high. */ 9296615Sobrien#define PROC_INTEL 0x00 /* Intel 80x86 */ 9396615Sobrien#define PROC_MOTOROLA 0x01 /* Motorola 68K */ 9496615Sobrien#define PROC_MIPS4000 0x02 /* MIPS RISC 4000 */ 9596615Sobrien#define PROC_MIPS PROC_MIPS4000 /* MIPS RISC */ 9696615Sobrien#define PROC_ALPHA 0x03 /* DEC Alpha */ 9796615Sobrien#define PROC_POWERPC 0x04 /* IBM Power PC */ 9896615Sobrien#define PROC_i960 0x05 /* Intel i960 */ 9996615Sobrien#define PROC_ULTRASPARC 0x06 /* SPARC processor */ 10065312Smsmith 10196554Sobrien/* Specific Minimim Processor - sigBYTE dsProcessor; FLAG BITS */ 10265312Smsmith/* ------------------------------------------------------------------ */ 10365312Smsmith/* Different bit definitions dependent on processor_family */ 10465312Smsmith 10565312Smsmith/* PROC_INTEL: */ 10696615Sobrien#define PROC_8086 0x01 /* Intel 8086 */ 10796615Sobrien#define PROC_286 0x02 /* Intel 80286 */ 10896615Sobrien#define PROC_386 0x04 /* Intel 80386 */ 10996615Sobrien#define PROC_486 0x08 /* Intel 80486 */ 11096615Sobrien#define PROC_PENTIUM 0x10 /* Intel 586 aka P5 aka Pentium */ 11196615Sobrien#define PROC_SEXIUM 0x20 /* Intel 686 aka P6 aka Pentium Pro or MMX */ 11296615Sobrien#define PROC_ITANIUM 0x40 /* Intel Itanium 64 bit */ 11365312Smsmith 11465312Smsmith/* PROC_i960: */ 11596615Sobrien#define PROC_960RX 0x01 /* Intel 80960RP/RD */ 11696615Sobrien#define PROC_960HX 0x02 /* Intel 80960HA/HD/HT */ 11796615Sobrien#define PROC_960RN 0x03 /* Intel 80960RN/RM */ 11896615Sobrien#define PROC_960RS 0x04 /* Intel 80960RS */ 11996615Sobrien#define PROC_80303 0x05 /* Intel 80303 (ZION) */ 12065312Smsmith 12165312Smsmith/* PROC_MOTOROLA: */ 12296615Sobrien#define PROC_68000 0x01 /* Motorola 68000 */ 12396615Sobrien#define PROC_68010 0x02 /* Motorola 68010 */ 12496615Sobrien#define PROC_68020 0x04 /* Motorola 68020 */ 12596615Sobrien#define PROC_68030 0x08 /* Motorola 68030 */ 12696615Sobrien#define PROC_68040 0x10 /* Motorola 68040 */ 12765312Smsmith 12865312Smsmith/* PROC_POWERPC */ 12996615Sobrien#define PROC_PPC601 0x01 /* PowerPC 601 */ 13096615Sobrien#define PROC_PPC603 0x02 /* PowerPC 603 */ 13196615Sobrien#define PROC_PPC604 0x04 /* PowerPC 604 */ 13265312Smsmith 13365312Smsmith/* PROC_MIPS */ 13496615Sobrien#define PROC_R4000 0x01 /* MIPS R4000 */ 13596615Sobrien#define PROC_RM7000 0x02 /* MIPS RM7000 */ 13665312Smsmith 13796554Sobrien/* Filetype - sigBYTE dsFiletype; DISTINCT VALUES */ 13865312Smsmith/* ------------------------------------------------------------------ */ 13996615Sobrien#define FT_EXECUTABLE 0 /* Executable Program */ 14096615Sobrien#define FT_SCRIPT 1 /* Script/Batch File??? */ 14196615Sobrien#define FT_HBADRVR 2 /* HBA Driver */ 14296615Sobrien#define FT_OTHERDRVR 3 /* Other Driver */ 14396615Sobrien#define FT_IFS 4 /* Installable Filesystem Driver */ 14496615Sobrien#define FT_ENGINE 5 /* DPT Engine */ 14596615Sobrien#define FT_COMPDRVR 6 /* Compressed Driver Disk */ 14696615Sobrien#define FT_LANGUAGE 7 /* Foreign Language file */ 14796615Sobrien#define FT_FIRMWARE 8 /* Downloadable or actual Firmware */ 14896615Sobrien#define FT_COMMMODL 9 /* Communications Module */ 14996615Sobrien#define FT_INT13 10 /* INT 13 style HBA Driver */ 15096615Sobrien#define FT_HELPFILE 11 /* Help file */ 15196615Sobrien#define FT_LOGGER 12 /* Event Logger */ 15296615Sobrien#define FT_INSTALL 13 /* An Install Program */ 15396615Sobrien#define FT_LIBRARY 14 /* Storage Manager Real-Mode Calls */ 15496615Sobrien#define FT_RESOURCE 15 /* Storage Manager Resource File */ 15596615Sobrien#define FT_MODEM_DB 16 /* Storage Manager Modem Database */ 15696615Sobrien#define FT_DMI 17 /* DMI component interface */ 15765312Smsmith 15896554Sobrien/* Filetype flags - sigBYTE dsFiletypeFlags; FLAG BITS */ 15965312Smsmith/* ------------------------------------------------------------------ */ 16096615Sobrien#define FTF_DLL 0x01 /* Dynamic Link Library */ 16196615Sobrien#define FTF_NLM 0x02 /* Netware Loadable Module */ 16296615Sobrien#define FTF_OVERLAYS 0x04 /* Uses overlays */ 16396615Sobrien#define FTF_DEBUG 0x08 /* Debug version */ 16496615Sobrien#define FTF_TSR 0x10 /* TSR */ 16596615Sobrien#define FTF_SYS 0x20 /* DOS Loadable driver */ 16696615Sobrien#define FTF_PROTECTED 0x40 /* Runs in protected mode */ 16796615Sobrien#define FTF_APP_SPEC 0x80 /* Application Specific */ 16896615Sobrien#define FTF_ROM (FTF_SYS|FTF_TSR) /* Special Case */ 16965312Smsmith 17096554Sobrien/* OEM - sigBYTE dsOEM; DISTINCT VALUES */ 17165312Smsmith/* ------------------------------------------------------------------ */ 17296615Sobrien#define OEM_DPT 0 /* DPT */ 17396615Sobrien#define OEM_ATT 1 /* ATT */ 17496615Sobrien#define OEM_NEC 2 /* NEC */ 17596615Sobrien#define OEM_ALPHA 3 /* Alphatronix */ 17696615Sobrien#define OEM_AST 4 /* AST */ 17796615Sobrien#define OEM_OLIVETTI 5 /* Olivetti */ 17896615Sobrien#define OEM_SNI 6 /* Siemens/Nixdorf */ 17996615Sobrien#define OEM_SUN 7 /* SUN Microsystems */ 18096615Sobrien#define OEM_ADAPTEC 8 /* Adaptec */ 18165312Smsmith 18296554Sobrien/* Operating System - sigLONG dsOS; FLAG BITS */ 18365312Smsmith/* ------------------------------------------------------------------ */ 18496615Sobrien#define OS_DOS 0x00000001 /* PC/MS-DOS */ 18596615Sobrien#define OS_WINDOWS 0x00000002 /* Microsoft Windows 3.x */ 18696615Sobrien#define OS_WINDOWS_NT 0x00000004 /* Microsoft Windows NT */ 18796615Sobrien#define OS_OS2M 0x00000008 /* OS/2 1.2.x,MS 1.3.0,IBM 1.3.x - Monolithic */ 18896615Sobrien#define OS_OS2L 0x00000010 /* Microsoft OS/2 1.301 - LADDR */ 18996615Sobrien#define OS_OS22x 0x00000020 /* IBM OS/2 2.x */ 19096615Sobrien#define OS_NW286 0x00000040 /* Novell NetWare 286 */ 19196615Sobrien#define OS_NW386 0x00000080 /* Novell NetWare 386 */ 19296615Sobrien#define OS_GEN_UNIX 0x00000100 /* Generic Unix */ 19396615Sobrien#define OS_SCO_UNIX 0x00000200 /* SCO Unix */ 19496615Sobrien#define OS_ATT_UNIX 0x00000400 /* ATT Unix */ 19596615Sobrien#define OS_UNIXWARE 0x00000800 /* USL Unix */ 19696615Sobrien#define OS_INT_UNIX 0x00001000 /* Interactive Unix */ 19796615Sobrien#define OS_SOLARIS 0x00002000 /* SunSoft Solaris */ 19896615Sobrien#define OS_QNX 0x00004000 /* QNX for Tom Moch */ 19996615Sobrien#define OS_NEXTSTEP 0x00008000 /* NeXTSTEP/OPENSTEP/MACH */ 20096615Sobrien#define OS_BANYAN 0x00010000 /* Banyan Vines */ 20196615Sobrien#define OS_OLIVETTI_UNIX 0x00020000/* Olivetti Unix */ 20296615Sobrien#define OS_MAC_OS 0x00040000 /* Mac OS */ 20396615Sobrien#define OS_WINDOWS_95 0x00080000 /* Microsoft Windows '95 */ 20496615Sobrien#define OS_NW4x 0x00100000 /* Novell Netware 4.x */ 20596615Sobrien#define OS_BSDI_UNIX 0x00200000 /* BSDi Unix BSD/OS 2.0 and up */ 20696615Sobrien#define OS_AIX_UNIX 0x00400000 /* AIX Unix */ 20796615Sobrien#define OS_FREE_BSD 0x00800000 /* FreeBSD Unix */ 20896615Sobrien#define OS_LINUX 0x01000000 /* Linux */ 20996615Sobrien#define OS_DGUX_UNIX 0x02000000 /* Data General Unix */ 21096615Sobrien#define OS_SINIX_N 0x04000000 /* SNI SINIX-N */ 21196615Sobrien#define OS_PLAN9 0x08000000 /* ATT Plan 9 */ 21296615Sobrien#define OS_TSX 0x10000000 /* SNH TSX-32 */ 21396615Sobrien#define OS_WINDOWS_98 0x20000000 /* Microsoft Windows '98 */ 21496615Sobrien#define OS_NW5x 0x40000000 /* Novell Netware 5x */ 21565312Smsmith 21696615Sobrien#define OS_OTHER 0x80000000 /* Other */ 21765312Smsmith 21896554Sobrien/* Capabilities - sigWORD dsCapabilities; FLAG BITS */ 21965312Smsmith/* ------------------------------------------------------------------ */ 22096615Sobrien#define CAP_RAID0 0x0001 /* RAID-0 */ 22196615Sobrien#define CAP_RAID1 0x0002 /* RAID-1 */ 22296615Sobrien#define CAP_RAID3 0x0004 /* RAID-3 */ 22396615Sobrien#define CAP_RAID5 0x0008 /* RAID-5 */ 22496615Sobrien#define CAP_SPAN 0x0010 /* Spanning */ 22596615Sobrien#define CAP_PASS 0x0020 /* Provides passthrough */ 22696615Sobrien#define CAP_OVERLAP 0x0040 /* Passthrough supports overlapped commands */ 22796615Sobrien#define CAP_ASPI 0x0080 /* Supports ASPI Command Requests */ 22896615Sobrien#define CAP_ABOVE16MB 0x0100 /* ISA Driver supports greater than 16MB */ 22996615Sobrien#define CAP_EXTEND 0x8000 /* Extended info appears after description */ 23065312Smsmith#ifdef SNI_MIPS 23196615Sobrien#define CAP_CACHEMODE 0x1000 /* dpt_force_cache is set in driver */ 23265312Smsmith#endif 23365312Smsmith 23496554Sobrien/* Devices Supported - sigWORD dsDeviceSupp; FLAG BITS */ 23565312Smsmith/* ------------------------------------------------------------------ */ 23696615Sobrien#define DEV_DASD 0x0001 /* DASD (hard drives) */ 23796615Sobrien#define DEV_TAPE 0x0002 /* Tape drives */ 23896615Sobrien#define DEV_PRINTER 0x0004 /* Printers */ 23996615Sobrien#define DEV_PROC 0x0008 /* Processors */ 24096615Sobrien#define DEV_WORM 0x0010 /* WORM drives */ 24196615Sobrien#define DEV_CDROM 0x0020 /* CD-ROM drives */ 24296615Sobrien#define DEV_SCANNER 0x0040 /* Scanners */ 24396615Sobrien#define DEV_OPTICAL 0x0080 /* Optical Drives */ 24496615Sobrien#define DEV_JUKEBOX 0x0100 /* Jukebox */ 24596615Sobrien#define DEV_COMM 0x0200 /* Communications Devices */ 24696615Sobrien#define DEV_OTHER 0x0400 /* Other Devices */ 24796615Sobrien#define DEV_ALL 0xFFFF /* All SCSI Devices */ 24865312Smsmith 24965312Smsmith/* Adapters Families Supported - sigWORD dsAdapterSupp; FLAG BITS */ 25065312Smsmith/* ------------------------------------------------------------------ */ 25196615Sobrien#define ADF_2001 0x0001 /* PM2001 */ 25296615Sobrien#define ADF_2012A 0x0002 /* PM2012A */ 25396615Sobrien#define ADF_PLUS_ISA 0x0004 /* PM2011,PM2021 */ 25496615Sobrien#define ADF_PLUS_EISA 0x0008 /* PM2012B,PM2022 */ 25596615Sobrien#define ADF_SC3_ISA 0x0010 /* PM2021 */ 25696615Sobrien#define ADF_SC3_EISA 0x0020 /* PM2022,PM2122, etc */ 25796615Sobrien#define ADF_SC3_PCI 0x0040 /* SmartCache III PCI */ 25896615Sobrien#define ADF_SC4_ISA 0x0080 /* SmartCache IV ISA */ 25996615Sobrien#define ADF_SC4_EISA 0x0100 /* SmartCache IV EISA */ 26096615Sobrien#define ADF_SC4_PCI 0x0200 /* SmartCache IV PCI */ 26196615Sobrien#define ADF_SC5_PCI 0x0400 /* Fifth Generation I2O products */ 26265312Smsmith/* 26396554Sobrien * Combinations of products 26465312Smsmith */ 26596615Sobrien#define ADF_ALL_2000 (ADF_2001|ADF_2012A) 26696615Sobrien#define ADF_ALL_PLUS (ADF_PLUS_ISA|ADF_PLUS_EISA) 26796615Sobrien#define ADF_ALL_SC3 (ADF_SC3_ISA|ADF_SC3_EISA|ADF_SC3_PCI) 26896615Sobrien#define ADF_ALL_SC4 (ADF_SC4_ISA|ADF_SC4_EISA|ADF_SC4_PCI) 26996615Sobrien#define ADF_ALL_SC5 (ADF_SC5_PCI) 27065312Smsmith/* All EATA Cacheing Products */ 27196615Sobrien#define ADF_ALL_CACHE (ADF_ALL_PLUS|ADF_ALL_SC3|ADF_ALL_SC4) 27265312Smsmith/* All EATA Bus Mastering Products */ 27396615Sobrien#define ADF_ALL_MASTER (ADF_2012A|ADF_ALL_CACHE) 27465312Smsmith/* All EATA Adapter Products */ 27596615Sobrien#define ADF_ALL_EATA (ADF_2001|ADF_ALL_MASTER) 27696615Sobrien#define ADF_ALL ADF_ALL_EATA 27765312Smsmith 27896554Sobrien/* Application - sigWORD dsApplication; FLAG BITS */ 27965312Smsmith/* ------------------------------------------------------------------ */ 28096615Sobrien#define APP_DPTMGR 0x0001 /* DPT Storage Manager */ 28196615Sobrien#define APP_ENGINE 0x0002 /* DPT Engine */ 28296615Sobrien#define APP_SYTOS 0x0004 /* Sytron Sytos Plus */ 28396615Sobrien#define APP_CHEYENNE 0x0008 /* Cheyenne ARCServe + ARCSolo */ 28496615Sobrien#define APP_MSCDEX 0x0010 /* Microsoft CD-ROM extensions */ 28596615Sobrien#define APP_NOVABACK 0x0020 /* NovaStor Novaback */ 28696615Sobrien#define APP_AIM 0x0040 /* Archive Information Manager */ 28765312Smsmith 28896554Sobrien/* Requirements - sigBYTE dsRequirements; FLAG BITS */ 28996554Sobrien/* ------------------------------------------------------------------ */ 29096615Sobrien#define REQ_SMARTROM 0x01 /* Requires SmartROM to be present */ 29196615Sobrien#define REQ_DPTDDL 0x02 /* Requires DPTDDL.SYS to be loaded */ 29296615Sobrien#define REQ_HBA_DRIVER 0x04 /* Requires an HBA driver to be loaded */ 29396615Sobrien#define REQ_ASPI_TRAN 0x08 /* Requires an ASPI Transport Modules */ 29496615Sobrien#define REQ_ENGINE 0x10 /* Requires a DPT Engine to be loaded */ 29596615Sobrien#define REQ_COMM_ENG 0x20 /* Requires a DPT Communications Engine */ 29665312Smsmith 29796554Sobrien/* ------------------------------------------------------------------ */ 29896554Sobrien/* Requirements - sigWORD dsFirmware; FLAG BITS */ 29996554Sobrien/* ------------------------------------------------------------------ */ 30096615Sobrien#define dsFirmware dsApplication 30196615Sobrien#define FW_DNLDSIZE16_OLD 0x0000 /* 0..3 DownLoader Size 16K - TO SUPPORT OLD IMAGES */ 30296615Sobrien#define FW_DNLDSIZE16k 0x0000 /* 0..3 DownLoader Size 16k */ 30396615Sobrien#define FW_DNLDSIZE16 0x0001 /* 0..3 DownLoader Size 16K */ 30496615Sobrien#define FW_DNLDSIZE32 0x0002 /* 0..3 DownLoader Size 32K */ 30596615Sobrien#define FW_DNLDSIZE64 0x0004 /* 0..3 DownLoader Size 64K */ 30696615Sobrien#define FW_DNLDSIZE0 0x000f /* 0..3 DownLoader Size 0K - NONE */ 30796615Sobrien#define FW_DNLDSIZE_NONE 0x000F /* 0..3 DownLoader Size - NONE */ 30865312Smsmith 30996554Sobrien /* Code Offset is position of the code within the ROM CODE Segment */ 31096615Sobrien#define FW_DNLDR_TOP 0x0000 /* 12 DownLoader Position (0=Top, 1=Bottom) */ 31196615Sobrien#define FW_DNLDR_BTM 0x1000 /* 12 DownLoader Position (0=Top, 1=Bottom) Dominator */ 31265312Smsmith 31396615Sobrien#define FW_LOAD_BTM 0x0000 /* 13 Code Offset (0=Btm, 1=Top) MIPS */ 31496615Sobrien#define FW_LOAD_TOP 0x2000 /* 13 Code Offset (0=Btm, 1=Top) i960 */ 31582092Sscottl 31696615Sobrien#define FW_SIG_VERSION1 0x0000 /* 15..14 Version Bits 0=Ver1 */ 31796615Sobrien#define FW_SIG_VERSION2 0x4000 /* 15..14 Version Bits 1=Ver2 */ 31882092Sscottl 31965312Smsmith/* 32096554Sobrien 0..3 Downloader Size (Value * 16K) 32165312Smsmith 32296554Sobrien 4 32396554Sobrien 5 32496554Sobrien 6 32596554Sobrien 7 32665312Smsmith 32796554Sobrien 8 32896554Sobrien 9 32996554Sobrien 10 33096554Sobrien 11 33165312Smsmith 33296554Sobrien 12 Downloader Position (0=Top of Image 1= Bottom of Image (Dominator) ) 33396554Sobrien 13 Load Offset (0=BTM (MIPS) -- 1=TOP (960) ) 33496554Sobrien 14..15 F/W Sig Version (0=Ver1) 33565312Smsmith*/ 33665312Smsmith 33796554Sobrien/* ------------------------------------------------------------------ */ 33896554Sobrien/* Sub System Vendor IDs - The PCI Sub system and vendor IDs for each */ 33996554Sobrien/* Adaptec Raid controller */ 34096554Sobrien/* ------------------------------------------------------------------ */ 34196615Sobrien#define PM1554U2_SUB_ID 0xC0011044 34296615Sobrien#define PM1654U2_SUB_ID 0xC0021044 34396615Sobrien#define PM1564U3_1_SUB_ID 0xC0031044 34496615Sobrien#define PM1564U3_2_SUB_ID 0xC0041044 34596615Sobrien#define PM1554U2_NOACPI_SUB_ID 0xC0051044 34696615Sobrien#define PM2554U2_SUB_ID 0xC00A1044 34796615Sobrien#define PM2654U2_SUB_ID 0xC00B1044 34896615Sobrien#define PM2664U3_1_SUB_ID 0xC00C1044 34996615Sobrien#define PM2664U3_2_SUB_ID 0xC00D1044 35096615Sobrien#define PM2554U2_NOACPI_SUB_ID 0xC00E1044 35196615Sobrien#define PM2654U2_NOACPI_SUB_ID 0xC00F1044 35296615Sobrien#define PM3754U2_SUB_ID 0xC0141044 35396615Sobrien#define PM3755U2B_SUB_ID 0xC0151044 35496615Sobrien#define PM3755F_SUB_ID 0xC0161044 35596615Sobrien#define PM3757U2_1_SUB_ID 0xC01E1044 35696615Sobrien#define PM3757U2_2_SUB_ID 0xC01F1044 35796615Sobrien#define PM3767U3_2_SUB_ID 0xC0201044 35896615Sobrien#define PM3767U3_4_SUB_ID 0xC0211044 35996615Sobrien#define PM2865U3_1_SUB_ID 0xC0281044 36096615Sobrien#define PM2865U3_2_SUB_ID 0xC0291044 36196615Sobrien#define PM2865F_SUB_ID 0xC02A1044 36296615Sobrien#define ADPT2000S_1_SUB_ID 0xC03C1044 36396615Sobrien#define ADPT2000S_2_SUB_ID 0xC03D1044 36496615Sobrien#define ADPT2000F_SUB_ID 0xC03E1044 36596615Sobrien#define ADPT3000S_1_SUB_ID 0xC0461044 36696615Sobrien#define ADPT3000S_2_SUB_ID 0xC0471044 36796615Sobrien#define ADPT3000F_SUB_ID 0xC0481044 36896615Sobrien#define ADPT5000S_1_SUB_ID 0xC0501044 36996615Sobrien#define ADPT5000S_2_SUB_ID 0xC0511044 37096615Sobrien#define ADPT5000F_SUB_ID 0xC0521044 37196615Sobrien#define ADPT1000UDMA_SUB_ID 0xC05A1044 37296615Sobrien#define ADPT1000UDMA_DAC_SUB_ID 0xC05B1044 37396615Sobrien#define ADPTI2O_DEVICE_ID 0xa501 37496615Sobrien#define ADPTDOMINATOR_DEVICE_ID 0xa511 37596615Sobrien#define ADPTDOMINATOR_SUB_ID_START 0xC0321044 37696615Sobrien#define ADPTDOMINATOR_SUB_ID_END 0xC03b1044 37782092Sscottl 37882092Sscottl 37982092Sscottl 38096554Sobrien/* ------------------------------------------------------------------ */ 38196554Sobrien/* ------------------------------------------------------------------ */ 38296554Sobrien/* ------------------------------------------------------------------ */ 38365312Smsmith 38465312Smsmith/* 38565312Smsmith * You may adjust dsDescription_size with an override to a value less than 38665312Smsmith * 50 so that the structure allocates less real space. 38765312Smsmith */ 38865312Smsmith#if (!defined(dsDescription_size)) 38965312Smsmith# define dsDescription_size 50 39065312Smsmith#endif 39165312Smsmith 39265312Smsmithtypedef struct dpt_sig { 39396554Sobrien char dsSignature[6]; /* ALWAYS "dPtSiG" */ 39496554Sobrien sigBYTE dsSigVersion; /* signature version (currently 1) */ 39596554Sobrien sigBYTE dsProcessorFamily; /* what type of processor */ 39696554Sobrien sigBYTE dsProcessor; /* precise processor */ 39796554Sobrien sigBYTE dsFiletype; /* type of file */ 39896554Sobrien sigBYTE dsFiletypeFlags; /* flags to specify load type, etc. */ 39996554Sobrien sigBYTE dsOEM; /* OEM file was created for */ 40096554Sobrien sigLONG dsOS; /* which Operating systems */ 40196554Sobrien sigWORD dsCapabilities; /* RAID levels, etc. */ 40296554Sobrien sigWORD dsDeviceSupp; /* Types of SCSI devices supported */ 40396554Sobrien sigWORD dsAdapterSupp; /* DPT adapter families supported */ 40496554Sobrien sigWORD dsApplication; /* applications file is for */ 40596554Sobrien sigBYTE dsRequirements; /* Other driver dependencies */ 40696554Sobrien sigBYTE dsVersion; /* 1 */ 40796554Sobrien sigBYTE dsRevision; /* 'J' */ 40896554Sobrien sigBYTE dsSubRevision; /* '9' ' ' if N/A */ 40996554Sobrien sigBYTE dsMonth; /* creation month */ 41096554Sobrien sigBYTE dsDay; /* creation day */ 41196554Sobrien sigBYTE dsYear; /* creation year since 1980 (1993=13) */ 41265312Smsmith /* description (NULL terminated) */ 41365312Smsmith char dsDescription[dsDescription_size]; 41465312Smsmith} dpt_sig_S; 41565312Smsmith/* 32 bytes minimum - with no description. Put NULL at description[0] */ 41665312Smsmith/* 81 bytes maximum - with 49 character description plus NULL. */ 41765312Smsmith 41865312Smsmith#if defined __bsdi__ 41965312Smsmith#ifndef PACK 42096615Sobrien#define PACK __attribute__ ((packed)) 42165312Smsmith#endif 42265312Smsmithtypedef struct dpt_sig_Packed { 42365312Smsmith char dsSignature[6] PACK; /* ALWAYS "dPtSiG" */ 42496554Sobrien sigBYTE dsSigVersion PACK; /* signature version (currently 1) */ 42565312Smsmith sigBYTE dsProcessorFamily PACK; /* what type of processor */ 42696554Sobrien sigBYTE dsProcessor PACK; /* precise processor */ 42796554Sobrien sigBYTE dsFiletype PACK; /* type of file */ 42865312Smsmith sigBYTE dsFiletypeFlags PACK; /* flags to specify load type, etc. */ 42996554Sobrien sigBYTE dsOEM PACK; /* OEM file was created for */ 43096554Sobrien sigLONG dsOS PACK; /* which Operating systems */ 43165312Smsmith sigWORD dsCapabilities PACK; /* RAID levels, etc. */ 43296554Sobrien sigWORD dsDeviceSupp PACK; /* Types of SCSI devices supported */ 43396554Sobrien sigWORD dsAdapterSupp PACK; /* DPT adapter families supported */ 43496554Sobrien sigWORD dsApplication PACK; /* applications file is for */ 43565312Smsmith sigBYTE dsRequirements PACK; /* Other driver dependencies */ 43696554Sobrien sigBYTE dsVersion PACK; /* 1 */ 43796554Sobrien sigBYTE dsRevision PACK; /* 'J' */ 43896554Sobrien sigBYTE dsSubRevision PACK; /* '9' ' ' if N/A */ 43996554Sobrien sigBYTE dsMonth PACK; /* creation month */ 44096554Sobrien sigBYTE dsDay PACK; /* creation day */ 44196554Sobrien sigBYTE dsYear PACK; /* creation year since 1980 (1993=13) */ 44265312Smsmith /* description (NULL terminated) */ 44365312Smsmith char dsDescription[dsDescription_size] PACK; 44465312Smsmith} dpt_sig_S_Packed; 44596615Sobrien#define PACKED_SIG_SIZE sizeof(dpt_sig_S_Packed) 44665312Smsmith#endif 44765312Smsmith/* This line added at Roycroft's request */ 44865312Smsmith/* Microsoft's NT compiler gets confused if you do a pack and don't */ 44965312Smsmith/* restore it. */ 45065312Smsmith 45165312Smsmith#ifndef NO_UNPACK 45296614Sobrien#if defined(_DPT_AIX) 45365312Smsmith#pragma options align=reset 45496614Sobrien#elif defined(UNPACK_FOUR) 45565312Smsmith#pragma pack(4) 45665312Smsmith#else 45765312Smsmith#pragma pack() 45896554Sobrien#endif /* aix */ 45965312Smsmith#endif 46065312Smsmith/* For the Macintosh */ 461153084Sru#ifdef STRUCTALIGNMENTSUPPORTED 46265312Smsmith#pragma options align=reset 46365312Smsmith#endif 46465312Smsmith 46565312Smsmith#endif 466