Loading...
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 | /* BSDI dptsig.h,v 1.7 1998/06/03 19:15:00 karels Exp */ /* * Copyright (c) 1996-1999 Distributed Processing Technology Corporation * All rights reserved. * * Redistribution and use in source form, with or without modification, are * permitted provided that redistributions of source code must retain the * above copyright notice, this list of conditions and the following disclaimer. * * This software is provided `as is' by Distributed Processing Technology and * any express or implied warranties, including, but not limited to, the * implied warranties of merchantability and fitness for a particular purpose, * are disclaimed. In no event shall Distributed Processing Technology be * liable for any direct, indirect, incidental, special, exemplary or * consequential damages (including, but not limited to, procurement of * substitute goods or services; loss of use, data, or profits; or business * interruptions) however caused and on any theory of liability, whether in * contract, strict liability, or tort (including negligence or otherwise) * arising in any way out of the use of this driver software, even if advised * of the possibility of such damage. * */ #ifndef __DPTSIG_H_ #define __DPTSIG_H_ #ifdef _SINIX_ADDON #include "dpt.h" #endif /* DPT SIGNATURE SPEC AND HEADER FILE */ /* Signature Version 1 (sorry no 'A') */ /* to make sure we are talking the same size under all OS's */ typedef unsigned char sigBYTE; typedef unsigned short sigWORD; #if (defined(_MULTI_DATAMODEL) && defined(sun) && !defined(_ILP32)) typedef uint32_t sigLONG; #else typedef unsigned long sigLONG; #endif /* * use sigWORDLittleEndian for: * dsCapabilities * dsDeviceSupp * dsAdapterSupp * dsApplication * use sigLONGLittleEndian for: * dsOS * so that the sig can be standardised to Little Endian */ #if (defined(_DPT_BIG_ENDIAN)) # define sigWORDLittleEndian(x) ((((x)&0xFF)<<8)|(((x)>>8)&0xFF)) # define sigLONGLittleEndian(x) \ ((((x)&0xFF)<<24) | \ (((x)&0xFF00)<<8) | \ (((x)&0xFF0000L)>>8) | \ (((x)&0xFF000000L)>>24)) #else # define sigWORDLittleEndian(x) (x) # define sigLONGLittleEndian(x) (x) #endif /* must make sure the structure is not word or double-word aligned */ /* --------------------------------------------------------------- */ /* Borland will ignore the following pragma: */ /* Word alignment is OFF by default. If in the, IDE make */ /* sure that Options | Compiler | Code Generation | Word Alignment */ /* is not checked. If using BCC, do not use the -a option. */ #ifndef NO_PACK #if defined (_DPT_AIX) #pragma options align=packed #else #pragma pack(1) #endif /* aix */ #endif /* For the Macintosh */ #if STRUCTALIGNMENTSUPPORTED #pragma options align=mac68k #endif /* Current Signature Version - sigBYTE dsSigVersion; */ /* ------------------------------------------------------------------ */ #define SIG_VERSION 1 /* Processor Family - sigBYTE dsProcessorFamily; DISTINCT VALUES */ /* ------------------------------------------------------------------ */ /* What type of processor the file is meant to run on. */ /* This will let us know whether to read sigWORDs as high/low or low/high. */ #define PROC_INTEL 0x00 /* Intel 80x86 */ #define PROC_MOTOROLA 0x01 /* Motorola 68K */ #define PROC_MIPS4000 0x02 /* MIPS RISC 4000 */ #define PROC_ALPHA 0x03 /* DEC Alpha */ #define PROC_POWERPC 0x04 /* IBM Power PC */ #define PROC_i960 0x05 /* Intel i960 */ #define PROC_ULTRASPARC 0x06 /* SPARC processor */ /* Specific Minimim Processor - sigBYTE dsProcessor; FLAG BITS */ /* ------------------------------------------------------------------ */ /* Different bit definitions dependent on processor_family */ /* PROC_INTEL: */ #define PROC_8086 0x01 /* Intel 8086 */ #define PROC_286 0x02 /* Intel 80286 */ #define PROC_386 0x04 /* Intel 80386 */ #define PROC_486 0x08 /* Intel 80486 */ #define PROC_PENTIUM 0x10 /* Intel 586 aka P5 aka Pentium */ #define PROC_SEXIUM 0x20 /* Intel 686 aka P6 aka Pentium Pro or MMX */ /* PROC_i960: */ #define PROC_960RX 0x01 /* Intel 80960RC/RD */ #define PROC_960HX 0x02 /* Intel 80960HA/HD/HT */ /* PROC_MOTOROLA: */ #define PROC_68000 0x01 /* Motorola 68000 */ #define PROC_68010 0x02 /* Motorola 68010 */ #define PROC_68020 0x04 /* Motorola 68020 */ #define PROC_68030 0x08 /* Motorola 68030 */ #define PROC_68040 0x10 /* Motorola 68040 */ /* PROC_POWERPC */ #define PROC_PPC601 0x01 /* PowerPC 601 */ #define PROC_PPC603 0x02 /* PowerPC 603 */ #define PROC_PPC604 0x04 /* PowerPC 604 */ /* PROC_MIPS4000: */ #define PROC_R4000 0x01 /* MIPS R4000 */ /* Filetype - sigBYTE dsFiletype; DISTINCT VALUES */ /* ------------------------------------------------------------------ */ #define FT_EXECUTABLE 0 /* Executable Program */ #define FT_SCRIPT 1 /* Script/Batch File??? */ #define FT_HBADRVR 2 /* HBA Driver */ #define FT_OTHERDRVR 3 /* Other Driver */ #define FT_IFS 4 /* Installable Filesystem Driver */ #define FT_ENGINE 5 /* DPT Engine */ #define FT_COMPDRVR 6 /* Compressed Driver Disk */ #define FT_LANGUAGE 7 /* Foreign Language file */ #define FT_FIRMWARE 8 /* Downloadable or actual Firmware */ #define FT_COMMMODL 9 /* Communications Module */ #define FT_INT13 10 /* INT 13 style HBA Driver */ #define FT_HELPFILE 11 /* Help file */ #define FT_LOGGER 12 /* Event Logger */ #define FT_INSTALL 13 /* An Install Program */ #define FT_LIBRARY 14 /* Storage Manager Real-Mode Calls */ #define FT_RESOURCE 15 /* Storage Manager Resource File */ #define FT_MODEM_DB 16 /* Storage Manager Modem Database */ /* Filetype flags - sigBYTE dsFiletypeFlags; FLAG BITS */ /* ------------------------------------------------------------------ */ #define FTF_DLL 0x01 /* Dynamic Link Library */ #define FTF_NLM 0x02 /* Netware Loadable Module */ #define FTF_OVERLAYS 0x04 /* Uses overlays */ #define FTF_DEBUG 0x08 /* Debug version */ #define FTF_TSR 0x10 /* TSR */ #define FTF_SYS 0x20 /* DOS Loadable driver */ #define FTF_PROTECTED 0x40 /* Runs in protected mode */ #define FTF_APP_SPEC 0x80 /* Application Specific */ #define FTF_ROM (FTF_SYS|FTF_TSR) /* Special Case */ /* OEM - sigBYTE dsOEM; DISTINCT VALUES */ /* ------------------------------------------------------------------ */ #define OEM_DPT 0 /* DPT */ #define OEM_ATT 1 /* ATT */ #define OEM_NEC 2 /* NEC */ #define OEM_ALPHA 3 /* Alphatronix */ #define OEM_AST 4 /* AST */ #define OEM_OLIVETTI 5 /* Olivetti */ #define OEM_SNI 6 /* Siemens/Nixdorf */ #define OEM_SUN 7 /* SUN Microsystems */ /* Operating System - sigLONG dsOS; FLAG BITS */ /* ------------------------------------------------------------------ */ #define OS_DOS 0x00000001 /* PC/MS-DOS */ #define OS_WINDOWS 0x00000002 /* Microsoft Windows 3.x */ #define OS_WINDOWS_NT 0x00000004 /* Microsoft Windows NT */ #define OS_OS2M 0x00000008 /* OS/2 1.2.x,MS 1.3.0,IBM 1.3.x - Monolithic */ #define OS_OS2L 0x00000010 /* Microsoft OS/2 1.301 - LADDR */ #define OS_OS22x 0x00000020 /* IBM OS/2 2.x */ #define OS_NW286 0x00000040 /* Novell NetWare 286 */ #define OS_NW386 0x00000080 /* Novell NetWare 386 */ #define OS_GEN_UNIX 0x00000100 /* Generic Unix */ #define OS_SCO_UNIX 0x00000200 /* SCO Unix */ #define OS_ATT_UNIX 0x00000400 /* ATT Unix */ #define OS_UNIXWARE 0x00000800 /* USL Unix */ #define OS_INT_UNIX 0x00001000 /* Interactive Unix */ #define OS_SOLARIS 0x00002000 /* SunSoft Solaris */ #define OS_QNX 0x00004000 /* QNX for Tom Moch */ #define OS_NEXTSTEP 0x00008000 /* NeXTSTEP/OPENSTEP/MACH */ #define OS_BANYAN 0x00010000 /* Banyan Vines */ #define OS_OLIVETTI_UNIX 0x00020000/* Olivetti Unix */ #define OS_MAC_OS 0x00040000 /* Mac OS */ #define OS_WINDOWS_95 0x00080000 /* Microsoft Windows '95 */ #define OS_NW4x 0x00100000 /* Novell Netware 4.x */ #define OS_BSDI_UNIX 0x00200000 /* BSDi Unix BSD/OS 2.0 and up */ #define OS_AIX_UNIX 0x00400000 /* AIX Unix */ #define OS_FREE_BSD 0x00800000 /* FreeBSD Unix */ #define OS_LINUX 0x01000000 /* Linux */ #define OS_DGUX_UNIX 0x02000000 /* Data General Unix */ #define OS_SINIX_N 0x04000000 /* SNI SINIX-N */ #define OS_PLAN9 0x08000000 /* ATT Plan 9 */ #define OS_TSX 0x10000000 /* SNH TSX-32 */ #define OS_OTHER 0x80000000 /* Other */ /* Capabilities - sigWORD dsCapabilities; FLAG BITS */ /* ------------------------------------------------------------------ */ #define CAP_RAID0 0x0001 /* RAID-0 */ #define CAP_RAID1 0x0002 /* RAID-1 */ #define CAP_RAID3 0x0004 /* RAID-3 */ #define CAP_RAID5 0x0008 /* RAID-5 */ #define CAP_SPAN 0x0010 /* Spanning */ #define CAP_PASS 0x0020 /* Provides passthrough */ #define CAP_OVERLAP 0x0040 /* Passthrough supports overlapped commands */ #define CAP_ASPI 0x0080 /* Supports ASPI Command Requests */ #define CAP_ABOVE16MB 0x0100 /* ISA Driver supports greater than 16MB */ #define CAP_EXTEND 0x8000 /* Extended info appears after description */ #ifdef SNI_MIPS #define CAP_CACHEMODE 0x1000 /* dpt_force_cache is set in driver */ #endif /* Devices Supported - sigWORD dsDeviceSupp; FLAG BITS */ /* ------------------------------------------------------------------ */ #define DEV_DASD 0x0001 /* DASD (hard drives) */ #define DEV_TAPE 0x0002 /* Tape drives */ #define DEV_PRINTER 0x0004 /* Printers */ #define DEV_PROC 0x0008 /* Processors */ #define DEV_WORM 0x0010 /* WORM drives */ #define DEV_CDROM 0x0020 /* CD-ROM drives */ #define DEV_SCANNER 0x0040 /* Scanners */ #define DEV_OPTICAL 0x0080 /* Optical Drives */ #define DEV_JUKEBOX 0x0100 /* Jukebox */ #define DEV_COMM 0x0200 /* Communications Devices */ #define DEV_OTHER 0x0400 /* Other Devices */ #define DEV_ALL 0xFFFF /* All SCSI Devices */ /* Adapters Families Supported - sigWORD dsAdapterSupp; FLAG BITS */ /* ------------------------------------------------------------------ */ #define ADF_2001 0x0001 /* PM2001 */ #define ADF_2012A 0x0002 /* PM2012A */ #define ADF_PLUS_ISA 0x0004 /* PM2011,PM2021 */ #define ADF_PLUS_EISA 0x0008 /* PM2012B,PM2022 */ #define ADF_SC3_ISA 0x0010 /* PM2021 */ #define ADF_SC3_EISA 0x0020 /* PM2022,PM2122, etc */ #define ADF_SC3_PCI 0x0040 /* SmartCache III PCI */ #define ADF_SC4_ISA 0x0080 /* SmartCache IV ISA */ #define ADF_SC4_EISA 0x0100 /* SmartCache IV EISA */ #define ADF_SC4_PCI 0x0200 /* SmartCache IV PCI */ #define ADF_SC5_PCI 0x0400 /* Fifth Generation I2O products */ /* * Combinations of products */ #define ADF_ALL_2000 (ADF_2001|ADF_2012A) #define ADF_ALL_PLUS (ADF_PLUS_ISA|ADF_PLUS_EISA) #define ADF_ALL_SC3 (ADF_SC3_ISA|ADF_SC3_EISA|ADF_SC3_PCI) #define ADF_ALL_SC4 (ADF_SC4_ISA|ADF_SC4_EISA|ADF_SC4_PCI) #define ADF_ALL_SC5 (ADF_SC5_PCI) /* All EATA Cacheing Products */ #define ADF_ALL_CACHE (ADF_ALL_PLUS|ADF_ALL_SC3|ADF_ALL_SC4) /* All EATA Bus Mastering Products */ #define ADF_ALL_MASTER (ADF_2012A|ADF_ALL_CACHE) /* All EATA Adapter Products */ #define ADF_ALL_EATA (ADF_2001|ADF_ALL_MASTER) #define ADF_ALL ADF_ALL_EATA /* Application - sigWORD dsApplication; FLAG BITS */ /* ------------------------------------------------------------------ */ #define APP_DPTMGR 0x0001 /* DPT Storage Manager */ #define APP_ENGINE 0x0002 /* DPT Engine */ #define APP_SYTOS 0x0004 /* Sytron Sytos Plus */ #define APP_CHEYENNE 0x0008 /* Cheyenne ARCServe + ARCSolo */ #define APP_MSCDEX 0x0010 /* Microsoft CD-ROM extensions */ #define APP_NOVABACK 0x0020 /* NovaStor Novaback */ #define APP_AIM 0x0040 /* Archive Information Manager */ /* Requirements - sigBYTE dsRequirements; FLAG BITS */ /* ------------------------------------------------------------------ */ #define REQ_SMARTROM 0x01 /* Requires SmartROM to be present */ #define REQ_DPTDDL 0x02 /* Requires DPTDDL.SYS to be loaded */ #define REQ_HBA_DRIVER 0x04 /* Requires an HBA driver to be loaded */ #define REQ_ASPI_TRAN 0x08 /* Requires an ASPI Transport Modules */ #define REQ_ENGINE 0x10 /* Requires a DPT Engine to be loaded */ #define REQ_COMM_ENG 0x20 /* Requires a DPT Communications Engine */ /* * You may adjust dsDescription_size with an override to a value less than * 50 so that the structure allocates less real space. */ #if (!defined(dsDescription_size)) # define dsDescription_size 50 #endif typedef struct dpt_sig { char dsSignature[6]; /* ALWAYS "dPtSiG" */ sigBYTE dsSigVersion; /* signature version (currently 1) */ sigBYTE dsProcessorFamily; /* what type of processor */ sigBYTE dsProcessor; /* precise processor */ sigBYTE dsFiletype; /* type of file */ sigBYTE dsFiletypeFlags; /* flags to specify load type, etc. */ sigBYTE dsOEM; /* OEM file was created for */ sigLONG dsOS; /* which Operating systems */ sigWORD dsCapabilities; /* RAID levels, etc. */ sigWORD dsDeviceSupp; /* Types of SCSI devices supported */ sigWORD dsAdapterSupp; /* DPT adapter families supported */ sigWORD dsApplication; /* applications file is for */ sigBYTE dsRequirements; /* Other driver dependencies */ sigBYTE dsVersion; /* 1 */ sigBYTE dsRevision; /* 'J' */ sigBYTE dsSubRevision; /* '9' ' ' if N/A */ sigBYTE dsMonth; /* creation month */ sigBYTE dsDay; /* creation day */ sigBYTE dsYear; /* creation year since 1980 (1993=13) */ /* description (NULL terminated) */ char dsDescription[dsDescription_size]; } dpt_sig_S; /* 32 bytes minimum - with no description. Put NULL at description[0] */ /* 81 bytes maximum - with 49 character description plus NULL. */ /* This line added at Roycroft's request */ /* Microsoft's NT compiler gets confused if you do a pack and don't */ /* restore it. */ #ifndef NO_UNPACK #if defined (_DPT_AIX) #pragma options align=reset #elif defined (UNPACK_FOUR) #pragma pack(4) #else #pragma pack() #endif /* aix */ #endif /* For the Macintosh */ #if STRUCTALIGNMENTSUPPORTED #pragma options align=reset #endif #endif |