home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Media Share 9
/
MEDIASHARE_09.ISO
/
pascal
/
vdl020d.zip
/
ASPILOW.DOC
next >
Wrap
Text File
|
1993-04-14
|
6KB
|
247 lines
{
════════════════════════════════════════════════════════════════════════════
Visionix ASPI Low-level Functions Unit (VASPILOW)
Copyright 1991,92,93 Visionix
ALL RIGHTS RESERVED
────────────────────────────────────────────────────────────────────────────
Revision history in reverse chronological order:
Initials Date Comment
──────── ──────── ────────────────────────────────────────────────────────
mep 02/11/93 Cleaned up code for beta release
mep 02/08/93 Sync with beta 0.12 release
════════════════════════════════════════════════════════════════════════════
}
Unit ASPILow;
Uses
DOS;
{────────────────────────────────────────────────────────────────────────────}
Const
asReqInProc = $00;
asReqDone = $01;
asReqAborted = $02;
asReqDoneErr = $03;
asReqInvalid = $04;
asReqBadHost = $05;
asReqBadDev = $06;
Type
TError = WORD;
{---------------------------}
{ Ascii ID for Host Inquiry }
{---------------------------}
TAspiAsciiID = ARray[1..16] of CHAR;
PAspiAsciiID = ^TAspiAsciiId;
{--------------------------}
{ Host Inquiry Unique data }
{--------------------------}
TAspiHostInqUnique = Array[1..16] of BYTE;
PAspiHostInqUnique = ^TAspiHostInqUnique;
{---------------------}
{ ASPI Caps structure }
{---------------------}
TAspiCaps = RECORD
Reserved : BYTE;
END;
PAspiCaps = ^TAspiCaps;
{---------------------}
{ Host Inquiry Packet }
{---------------------}
TAspiHostInqPacket = RECORD
Command : BYTE;
Status : BYTE;
HostNum : BYTE;
SCSIReqFlags : BYTE;
Reserved : LONGINT;
NumHosts : BYTE;
HostSCSIid : BYTE;
SCSIManagerID : TAspiAsciiID;
HostAdapterID : TAspiAsciiID;
HostUniqueParams : TAspiHostInqUnique;
END;
PAsipHostInqPacket = ^TAspiHostInqPacket;
{---------------------}
{ Get Dev Type Packet }
{---------------------}
TAspiGetDevTypePacket = RECORD
Command : BYTE;
Status : BYTE;
HostNum : BYTE;
SCSIReqFlags : BYTE;
Reserved : LONGINT;
Target : BYTE;
LUN : BYTE;
DevType : BYTE;
END;
PAspiGetDevTypePacket = ^TAspiGetDevTypePacket;
{-----------------}
{ Exec SCI Packet }
{-----------------}
TAspiExecSCSIPacket = RECORD
Command : BYTE;
Status : BYTE;
HostNum : BYTE;
SCSIReqFlags : BYTE;
Reserved : LONGINT;
Target : BYTE;
LUN : BYTE;
DataSize : LONGINT;
SenseSize : BYTE;
DataBuff : POINTER;
SRBLink : POINTER;
CDBSize : BYTE;
HostStatus : BYTE;
DevStatus : BYTE;
PostRoutine : POINTER;
ASPIWorkSpace : Array[1..34] of BYTE;
CDB : Array[1..16+64] of BYTE;
END;
PAspiExecSCSIPacket = ^TAspiExecSCSIPacket;
{-----------------------------}
{ ASPI Get Int 13 info packet }
{-----------------------------}
TAspiGetInt13InfoPacket = RECORD
Command : BYTE;
Status : BYTE;
HostNum : BYTE;
SCSIReqFlags : BYTE;
Reserved : LONGINT;
Target : BYTE;
LUN : BYTE;
Int13Flags : BYTE;
Int13Drive : BYTE;
PrefHeadTrans : BYTE;
PrefSecTrans : BYTE;
Reserved2 : Array[1..10] of BYTE;
END;
PAspiGetInt13InfoPacket = ^TAspiGetInt13InfoPacket;
{-----------------------------}
{ ASPI Host Inquiry structure }
{-----------------------------}
TAspiHostInq = RECORD
HostSCSIid : BYTE;
HostAdapterID : TAspiAsciiID;
SCSIManagerID : TAspiAsciiID;
HostUniqueParams : TAspiHostInqUnique;
END;
PAspiHostInq = ^TAspiHostInq;
{-----------------------------------}
{ ASPI Int13 (Drive) Info structure }
{-----------------------------------}
TAspiInt13Info = RECORD
Int13Flags : BYTE;
Int13Drive : BYTE;
PrefHeadTrans : BYTE;
PrefSecTrans : BYTE;
END;
PAspiInt13Info = ^TAspiInt13Info;
{────────────────────────────────────────────────────────────────────────────}
Procedure ASPI_GetCaps( AspiCaps : PAspiCaps );
Function ASPI_LibInit : WORD;
Procedure ASPI_ExecPacket( ASPIPacket : POINTER );
Function ASPI_GetNumHosts : BYTE;
Function ASPI_HostInquiry( HostNum : BYTE;
HostInq : PAspiHostInq ):TError;
Function ASPI_GetDevType( HostNum : BYTE;
Target : BYTE;
Lun : BYTE ):BYTE;
Function ASPI_GetINT13Info( HostNum : BYTE;
Target : BYTE;
Lun : BYTE;
Int13Info : PAspiInt13Info ):TError;
{────────────────────────────────────────────────────────────────────────────}
Var
ASPIEntry : POINTER;
{────────────────────────────────────────────────────────────────────────────}