NT4/private/ntos/miniport/always/ntenv.h
2020-09-30 17:12:29 +02:00

120 lines
4.6 KiB
C

/* Copyright (C) 1993 by Always Technology Corporation.
This module contains information proprietary to
Always Technology Corporation, and should be treated as confidential.
*/
#ifndef __NTENV_H__
#define __NTENV_H__
#define VCN "655"
#define FAR
#define ALLOC_D /* Distance of a allocm (far or blank) */
#define FARLOCALNOTIFY /* The internal notify procs are FAR */
#define NILL NULL /* Local definition of what is usually NULL */
// In a debug build, export all procedures for the debugger:
#if !defined(DEBUG_ON)
#define LOCAL static /* Optional for those who don't like statics (i.e. symdeb'ers */
#else
#define LOCAL
#endif
#ifdef USEFASTCALLS
#define REGPARMS _fastcall
#else
#define REGPARMS
#endif
#define ALLOC_T void ALLOC_D * /* Type and distance of a malloc */
typedef signed char I8;
typedef UCHAR U8;
typedef signed short int I16;
typedef USHORT U16;
typedef LONG I32;
typedef ULONG U32;
#ifdef USEFASTCALLS
#define REGPARMS _fastcall
#else
#define REGPARMS
#endif
/* Envlib type things: */
#define inb(Port) ScsiPortReadPortUchar((PUCHAR)(Port))
#define inw(Port) ScsiPortReadPortUshort((PUSHORT)(Port))
#define outb(Port, Val) ScsiPortWritePortUchar((PUCHAR)(Port), (UCHAR)(Val))
#define outw(Port, Val) ScsiPortWritePortUshort((PUSHORT)(Port), (USHORT)(Val))
#define repinsb(Port, Buffer, Count) ScsiPortReadPortBufferUchar((PUCHAR)(Port), (PUCHAR)(Buffer), (ULONG)(Count))
#define repinsw(Port, Buffer, Count) ScsiPortReadPortBufferUshort((PUSHORT)(Port), (PUSHORT)(Buffer), (ULONG)(Count))
#define repoutsb(Port, Buffer, Count) ScsiPortWritePortBufferUchar((PUCHAR)(Port), (PUCHAR)(Buffer), (ULONG)(Count))
#define repoutsw(Port, Buffer, Count) ScsiPortWritePortBufferUshort((PUSHORT)(Port), (PUSHORT)(Buffer), (ULONG)(Count))
#define FreeMemHandle(MemHandle)
#define LocalMemHandle(MHP, MemPtr)(*(MHP) = (void FAR *)(MemPtr))
#define LocalPostCallback(ofs) ofs
#define msPause(msTicks) {unsigned register i = msTicks;while(i--) ScsiPortStallExecution(1000L);}
#define ImportReq(Req) Req
#define ExportReq(Req) Req
#define RegisterIO(HA, Base, Length, AddrSpace) ((PUCHAR)ScsiPortGetDeviceBase(HA, Isa, 0, ScsiPortConvertUlongToPhysicalAddress((ULONG)Base), Length, (AddrSpace == AddrSpaceIO) ))
#define AddrSpaceIO 0
#define AddrSpaceMem 1
#define DeregisterIO(HA, Handle) ScsiPortFreeDeviceBase(HA, Handle)
typedef PUCHAR IOHandle;
typedef unsigned short CriticalT;
#define critical(HA)
#define uncritical(HA)
//#define EnvBreakPoint(HA) DbgBreakPoint() // Define the break call for the DEBUG breakpoit
#define EnvBreakPoint(HA)
/* Load time permanent parameters and parm list type: */
#define ParmStrucVersion 0x1010 /* Structure format 1.0, content version 1.0 */
struct AD_ParmStruc {
unsigned short Version; /* Version of this entry */
unsigned short ParmLength; /* Number of parm bytes to follow */
unsigned short ADStrucEntries; /* Number of AD Parm structs */
struct AD_ParmList *AD_List; /* Pointer to list AD Parm strucs */
unsigned short DebugEntries; /* Number of debug things */
int *DebugPtr; /* Pointer to debug level control */
};
struct AD_ParmList {
unsigned short IO_Addr; /* IO address for this addapter */
unsigned char ParmList[16]; /* Parm bytes for the adapter at this address */
};
// ParmList array index defines:
#define PL_ID_PARMS 0 /* Start of drive parms per SCSI ID (0-7) */
#define PL_ALLOW_SYNC 0x01 /* Attempt sync. xfer on this SCSI_ID */
#define PL_USE_DISC 0x02 /* Attempt disconnect/reconnect on this SCSI ID */
#define DRIVE_PL(SCSI_ID) (PL_ID_PARMS + SCSI_ID)
#define PL_HA_ID 15
typedef unsigned char ADParmList[16]; /* Type for adapter parm list; an array, or pointer to array */
#define LogMessage(HA, Req, TID, LUN, Code, Info) ScsiPortLogError(HA, Req, 0, TID, LUN, Code, Info)
#define MSG_PARITY SP_BUS_PARITY_ERROR
#define MSG_INTERNAL_ERROR SP_INTERNAL_ADAPTER_ERROR // Some form of internal error
#define MSG_BUS_FREE SP_UNEXPECTED_DISCONNECT
#define MSG_SCSI_PROTCOL SP_PROTOCOL_ERROR
#define MSG_BAD_RESEL SP_INVALID_RESELECTION
#define MSG_SEL_TIMEOUT SP_BUS_TIMEOUT
#define MSG_NO_INTERRUPTS SP_IRQ_NOT_RESPONDING
#define MSG_BAD_FIRMWARE SP_BAD_FW_ERROR
#define MSG_NO_INT_ENABLE SP_IRQ_NOT_RESPONDING
#endif /* __NTENV_H__ */