Release 4.11 drivers/scsi/dpt/dptsig.h
/* 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;
typedef unsigned int sigINT;
/*
* 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 */
#ifdef 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/ia64 */
#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 */
#define PROC_IA64 0x40
/* Intel IA64 processor */
/* 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 */
sigINT 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 */
#ifdef STRUCTALIGNMENTSUPPORTED
#pragma options align=reset
#endif
#endif
Overall Contributors
Person | Tokens | Prop | Commits | CommitProp |
Linus Torvalds | 1037 | 98.76% | 1 | 25.00% |
Jeff Mahoney | 6 | 0.57% | 1 | 25.00% |
Olaf Hering | 4 | 0.38% | 1 | 25.00% |
Miquel van Smoorenburg | 3 | 0.29% | 1 | 25.00% |
Total | 1050 | 100.00% | 4 | 100.00% |
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.