OpenCloudOS-Kernel/drivers/scsi/dpt/sys_info.h

418 lines
11 KiB
C

/* BSDI sys_info.h,v 1.6 1998/06/03 19:14:59 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 __SYS_INFO_H
#define __SYS_INFO_H
/*File - SYS_INFO.H
****************************************************************************
*
*Description:
*
* This file contains structure definitions for the OS dependent
*layer system information buffers.
*
*Copyright Distributed Processing Technology, Corp.
* 140 Candace Dr.
* Maitland, Fl. 32751 USA
* Phone: (407) 830-5522 Fax: (407) 260-5366
* All Rights Reserved
*
*Author: Don Kemper
*Date: 5/10/94
*
*Editors:
*
*Remarks:
*
*
*****************************************************************************/
/*Include Files ------------------------------------------------------------- */
#include "osd_util.h"
#ifndef NO_PACK
#if defined (_DPT_AIX)
#pragma options align=packed
#else
#pragma pack(1)
#endif /* aix */
#endif // no unpack
/*struct - driveParam_S - start
*===========================================================================
*
*Description:
*
* This structure defines the drive parameters seen during
*booting.
*
*---------------------------------------------------------------------------*/
#ifdef __cplusplus
struct driveParam_S {
#else
typedef struct {
#endif
uSHORT cylinders; /* Up to 1024 */
uCHAR heads; /* Up to 255 */
uCHAR sectors; /* Up to 63 */
#ifdef __cplusplus
//---------- Portability Additions ----------- in sp_sinfo.cpp
#ifdef DPT_PORTABLE
uSHORT netInsert(dptBuffer_S *buffer);
uSHORT netExtract(dptBuffer_S *buffer);
#endif // DPT PORTABLE
//--------------------------------------------
};
#else
} driveParam_S;
#endif
/*driveParam_S - end */
/*struct - sysInfo_S - start
*===========================================================================
*
*Description:
*
* This structure defines the command system information that
*should be returned by every OS dependent layer.
*
*---------------------------------------------------------------------------*/
/*flags - bit definitions */
#define SI_CMOS_Valid 0x0001
#define SI_NumDrivesValid 0x0002
#define SI_ProcessorValid 0x0004
#define SI_MemorySizeValid 0x0008
#define SI_DriveParamsValid 0x0010
#define SI_SmartROMverValid 0x0020
#define SI_OSversionValid 0x0040
#define SI_OSspecificValid 0x0080 /* 1 if OS structure returned */
#define SI_BusTypeValid 0x0100
#define SI_ALL_VALID 0x0FFF /* All Std SysInfo is valid */
#define SI_NO_SmartROM 0x8000
/*busType - definitions */
#define SI_ISA_BUS 0x00
#define SI_MCA_BUS 0x01
#define SI_EISA_BUS 0x02
#define SI_PCI_BUS 0x04
#ifdef __cplusplus
struct sysInfo_S {
#else
typedef struct {
#endif
uCHAR drive0CMOS; /* CMOS Drive 0 Type */
uCHAR drive1CMOS; /* CMOS Drive 1 Type */
uCHAR numDrives; /* 0040:0075 contents */
uCHAR processorFamily; /* Same as DPTSIG's definition */
uCHAR processorType; /* Same as DPTSIG's definition */
uCHAR smartROMMajorVersion;
uCHAR smartROMMinorVersion; /* SmartROM version */
uCHAR smartROMRevision;
uSHORT flags; /* See bit definitions above */
uSHORT conventionalMemSize; /* in KB */
uINT extendedMemSize; /* in KB */
uINT osType; /* Same as DPTSIG's definition */
uCHAR osMajorVersion;
uCHAR osMinorVersion; /* The OS version */
uCHAR osRevision;
#ifdef _SINIX_ADDON
uCHAR busType; /* See defininitions above */
uSHORT osSubRevision;
uCHAR pad[2]; /* For alignment */
#else
uCHAR osSubRevision;
uCHAR busType; /* See defininitions above */
uCHAR pad[3]; /* For alignment */
#endif
driveParam_S drives[16]; /* SmartROM Logical Drives */
#ifdef __cplusplus
//---------- Portability Additions ----------- in sp_sinfo.cpp
#ifdef DPT_PORTABLE
uSHORT netInsert(dptBuffer_S *buffer);
uSHORT netExtract(dptBuffer_S *buffer);
#endif // DPT PORTABLE
//--------------------------------------------
};
#else
} sysInfo_S;
#endif
/*sysInfo_S - end */
/*struct - DOS_Info_S - start
*===========================================================================
*
*Description:
*
* This structure defines the system information specific to a
*DOS workstation.
*
*---------------------------------------------------------------------------*/
/*flags - bit definitions */
#define DI_DOS_HIGH 0x01 /* DOS is loaded high */
#define DI_DPMI_VALID 0x02 /* DPMI version is valid */
#ifdef __cplusplus
struct DOS_Info_S {
#else
typedef struct {
#endif
uCHAR flags; /* See bit definitions above */
uSHORT driverLocation; /* SmartROM BIOS address */
uSHORT DOS_version;
uSHORT DPMI_version;
#ifdef __cplusplus
//---------- Portability Additions ----------- in sp_sinfo.cpp
#ifdef DPT_PORTABLE
uSHORT netInsert(dptBuffer_S *buffer);
uSHORT netExtract(dptBuffer_S *buffer);
#endif // DPT PORTABLE
//--------------------------------------------
};
#else
} DOS_Info_S;
#endif
/*DOS_Info_S - end */
/*struct - Netware_Info_S - start
*===========================================================================
*
*Description:
*
* This structure defines the system information specific to a
*Netware machine.
*
*---------------------------------------------------------------------------*/
#ifdef __cplusplus
struct Netware_Info_S {
#else
typedef struct {
#endif
uCHAR driverName[13]; /* ie PM12NW31.DSK */
uCHAR serverName[48];
uCHAR netwareVersion; /* The Netware OS version */
uCHAR netwareSubVersion;
uCHAR netwareRevision;
uSHORT maxConnections; /* Probably 250 or 1000 */
uSHORT connectionsInUse;
uSHORT maxVolumes;
uCHAR unused;
uCHAR SFTlevel;
uCHAR TTSlevel;
uCHAR clibMajorVersion; /* The CLIB.NLM version */
uCHAR clibMinorVersion;
uCHAR clibRevision;
#ifdef __cplusplus
//---------- Portability Additions ----------- in sp_sinfo.cpp
#ifdef DPT_PORTABLE
uSHORT netInsert(dptBuffer_S *buffer);
uSHORT netExtract(dptBuffer_S *buffer);
#endif // DPT PORTABLE
//--------------------------------------------
};
#else
} Netware_Info_S;
#endif
/*Netware_Info_S - end */
/*struct - OS2_Info_S - start
*===========================================================================
*
*Description:
*
* This structure defines the system information specific to an
*OS/2 machine.
*
*---------------------------------------------------------------------------*/
#ifdef __cplusplus
struct OS2_Info_S {
#else
typedef struct {
#endif
uCHAR something;
#ifdef __cplusplus
//---------- Portability Additions ----------- in sp_sinfo.cpp
#ifdef DPT_PORTABLE
uSHORT netInsert(dptBuffer_S *buffer);
uSHORT netExtract(dptBuffer_S *buffer);
#endif // DPT PORTABLE
//--------------------------------------------
};
#else
} OS2_Info_S;
#endif
/*OS2_Info_S - end */
/*struct - WinNT_Info_S - start
*===========================================================================
*
*Description:
*
* This structure defines the system information specific to a
*Windows NT machine.
*
*---------------------------------------------------------------------------*/
#ifdef __cplusplus
struct WinNT_Info_S {
#else
typedef struct {
#endif
uCHAR something;
#ifdef __cplusplus
//---------- Portability Additions ----------- in sp_sinfo.cpp
#ifdef DPT_PORTABLE
uSHORT netInsert(dptBuffer_S *buffer);
uSHORT netExtract(dptBuffer_S *buffer);
#endif // DPT PORTABLE
//--------------------------------------------
};
#else
} WinNT_Info_S;
#endif
/*WinNT_Info_S - end */
/*struct - SCO_Info_S - start
*===========================================================================
*
*Description:
*
* This structure defines the system information specific to an
*SCO UNIX machine.
*
*---------------------------------------------------------------------------*/
#ifdef __cplusplus
struct SCO_Info_S {
#else
typedef struct {
#endif
uCHAR something;
#ifdef __cplusplus
//---------- Portability Additions ----------- in sp_sinfo.cpp
#ifdef DPT_PORTABLE
uSHORT netInsert(dptBuffer_S *buffer);
uSHORT netExtract(dptBuffer_S *buffer);
#endif // DPT PORTABLE
//--------------------------------------------
};
#else
} SCO_Info_S;
#endif
/*SCO_Info_S - end */
/*struct - USL_Info_S - start
*===========================================================================
*
*Description:
*
* This structure defines the system information specific to a
*USL UNIX machine.
*
*---------------------------------------------------------------------------*/
#ifdef __cplusplus
struct USL_Info_S {
#else
typedef struct {
#endif
uCHAR something;
#ifdef __cplusplus
//---------- Portability Additions ----------- in sp_sinfo.cpp
#ifdef DPT_PORTABLE
uSHORT netInsert(dptBuffer_S *buffer);
uSHORT netExtract(dptBuffer_S *buffer);
#endif // DPT PORTABLE
//--------------------------------------------
};
#else
} USL_Info_S;
#endif
/*USL_Info_S - end */
/* Restore default structure packing */
#ifndef NO_UNPACK
#if defined (_DPT_AIX)
#pragma options align=reset
#elif defined (UNPACK_FOUR)
#pragma pack(4)
#else
#pragma pack()
#endif /* aix */
#endif // no unpack
#endif // __SYS_INFO_H