SXXXXXXX_PyBusMonitor1553/cpp/GrifoScope/AvbDdcLegacy/DDC/TestSim/TS_Ena.H
2025-12-17 07:59:30 +01:00

314 lines
7.0 KiB
C

/* ILC Data Device Corp.
*
* BU-65550 MIL-STD-1553 BC/RT/MT PCMCIA Interface Card
* PCMCIA Enabler Software
*
* rel 1.63 3-MAR-98
*
* Copyright (c) 1995, 1996, 1997, 1998 by ILC Data Device Corp.
* All Rights Reserved.
*
* 65550ENA.C (PCMCIA ENABLER MODULE)
*
* ILC Data Device Corp.
* 105 Wilbur Place
* Bohemia N.Y. 11716
* (516) 567-5600
*
* Revision History for 65550ENA.C (HEADER FILE)
*
* Release Date Description
*
* 1.40 22-Feb-94 mh/kl Default interrupt level for Card Info
* structure was changed from 5 to 0xffff.
* 0xffff will request that Card Services
* select an unused IRQ level.
*
* 1.51 27-Feb-94 mh/kl Corrected error in error string table.
*
* 1.61 01-Sep-95 bp none
*
* 1.62 26-Jan-96 bp none
*
* 1.63 03-Mar-98 dl Replaced far with __BUFAR
*/
#ifndef TS_ENA_H
#define TS_ENA_H
/* Microsoft C defaults to word alignment on strucuture members. This will
* corrupt the format of out card services strucutres which must support
* byte aligned struture members. This pragma will set alignment to 1 byte. */
/* #define BU_DISPLAY_MESSAGES 1 for debuggin */
#ifdef _MSC_VER
#pragma pack(1)
#endif
#ifdef __cplusplus
extern "C" {
#endif
#ifndef U8BIT
#define U8BIT unsigned char
#endif
#ifndef U16BIT
#define U16BIT unsigned
#endif
#ifndef U32BIT
#define U32BIT unsigned long
#endif
/* Card Service Functions */
#define GetCardServicesInfo 0x0B
#define RegisterClient 0x10
#define DeregisterClient 0x02
#define GetStatus 0x0C
#define ResetCard 0x11
#define SetEventMask 0x31
#define GetEventMask 0x2E
#define RequestIO 0x1F
#define ReleaseIO 0x1B
#define RequestIRQ 0x20
#define ReleaseIRQ 0x1C
#define RequestWindow 0x21
#define ReleaseWindow 0x1D
#define ModifyWindow 0x17
#define MapMemPage 0x14
#define RequestSocketMask 0x22
#define ReleaseSocketMask 0x2F
#define RequestConfiguration 0x30
#define GetConfigurationInfo 0x04
#define ModifyConfiguration 0x27
#define ReleaseConfiguration 0x1E
#define GetFirstTuple 0x07
#define GetNextTuple 0x0A
#define GetTupleData 0x0D
/* Card Service Return Codes */
#define SUCCESS 0x00
/* Card Services Call Back Function Codes */
#define CARD_INSERTION 0x40
#define REGISTRATION_COMPLETE 0x82
#define __BUFAR far
typedef struct
{
U16BIT InfoLen;
U16BIT Signature;
U16BIT Count;
U16BIT Revision;
U16BIT CSLevel;
U16BIT VStrOff;
U16BIT VStrLen;
char VendorString[256];
} CardInfoStruct;
/* Client Registration Information Structure passed to RegisterClient function*/
typedef struct
{
U16BIT Attributes;
U16BIT EventMask;
struct
{
U16BIT Data;
U16BIT Segment;
U16BIT Offset;
U16BIT Reserved;
} ClientData;
U16BIT Version;
} ClientRegInfoStruct;
/* Socket and PC Card Configuration information structure */
typedef struct
{
U16BIT Socket;
U16BIT Attributes;
U8BIT Vcc;
U8BIT Vpp1;
U8BIT Vpp2;
U8BIT IntType;
U32BIT ConfigBase;
U8BIT Status;
U8BIT Pin;
U8BIT Copy;
U8BIT Option;
U8BIT Present;
U8BIT FirstDevType;
U8BIT FuncCode;
U8BIT SysInitMask;
U16BIT ManufCode;
U16BIT ManufInfo;
U8BIT CardValues;
U8BIT AssignedIRQ;
U16BIT IRQAttributes;
U16BIT BasePort1;
U8BIT NumPorts1;
U8BIT Attributes1;
U16BIT BasePort2;
U8BIT NumPorts2;
U8BIT Attributes2;
U8BIT IOAddrLines;
} ConfigurationInfoStruct;
/* request configuration structure */
typedef struct
{
U16BIT Socket;
U16BIT Attributes;
U8BIT Vcc;
U8BIT Vpp1;
U8BIT Vpp2;
U8BIT IntType;
U32BIT ConfigBase;
U8BIT Status;
U8BIT Pin;
U8BIT Copy;
U8BIT ConfigIndex;
U8BIT Present;
} RequestConfigStruct;
/* Window information structure */
typedef struct
{
U16BIT Socket;
U16BIT Attributes;
U32BIT Base;
U32BIT Size;
U8BIT AccessSpeed;
} WindowInfoStruct;
typedef struct
{
U32BIT CardOffset;
U8BIT PageNumber;
} MapMemStruct;
/* Tuple Data structure (CIS - Card Information Structure */
typedef struct
{
U16BIT Socket;
U16BIT Attributes;
U8BIT DesiredTuple;
U8BIT TupleOffset;
U16BIT Flags;
U32BIT LinkOffset;
U32BIT CISOffset;
U16BIT TupleDataMax;
U16BIT TupleDataLen;
U8BIT TupleData[256];
} TupleDataStruct;
/* PC Card Status structure */
typedef struct
{
U16BIT Socket;
U16BIT CardState;
U16BIT SocketState;
} PCCardStatusStruct;
typedef struct
{
U16BIT Socket;
U16BIT BasePort1;
U8BIT NumPorts1;
U8BIT Attributes1;
U16BIT BasePort2;
U8BIT NumPorts2;
U8BIT Attributes2;
U8BIT IOAddressLines;
} IOInfoStruct;
typedef struct
{
U16BIT Socket;
U16BIT Attributes;
U8BIT AssignedIRQ;
U8BIT IRQInfo1;
U16BIT IRQInfo2;
} IRQInfoStruct;
typedef struct
{
U16BIT socket;
U16BIT attributes;
U8BIT assignedIRQ;
} ReleaseIRQStruct;
typedef struct
{
U16BIT Socket;
U16BIT BasePort1;
U8BIT NumPorts1;
U8BIT Attributes1;
U16BIT BasePort2;
U8BIT NumPorts2;
U8BIT Attributes2;
U8BIT IOAddressLines;
} ReleaseIOStruct;
typedef struct
{
U16BIT Socket;
U16BIT IrqLevel;
U32BIT MemBase;
U32BIT IoBase;
U32BIT MemWinSize;
U32BIT IoBaseSize;
U16BIT NumMemWins;
U16BIT IrqRegistered;
U16BIT PCCardConfigured;
U16BIT IoWindowHandle;
U16BIT IoWindowAllocated;
U16BIT MemWindow1Handle;
U16BIT MemWindow1Allocated;
U16BIT MemWindow2Handle;
U16BIT MemWindow2Allocated;
U16BIT MemWindow3Handle;
U16BIT MemWindow3Allocated;
U16BIT __BUFAR *MemPointer;
U16BIT __BUFAR *RegPointer;
#ifdef _UseWindows
HANDLE MemSelector;
HANDLE RegSelector;
#endif
} PCCardStruct;
/* Default interrupt level 0xffff (any available interrupt level) */
#ifdef _UseWindows
#define PC_CARD_DEFAULTS {0,0xFFFF,0l,0x0l,0x8000l,0x0008l,1,0,0,0,0,0,0,0,0,0,0, 0l, 0l, 0, 0}
#else
#define PC_CARD_DEFAULTS {0,0xFFFF,0l,0x0l,0x8000l,0x0008l,1,0,0,0,0,0,0,0,0,0,0, 0l, 0l}
#endif
U16BIT CardServices(U16BIT Function, U16BIT *Handle, void __BUFAR *Pointer,
U16BIT *ArgLength, void __BUFAR *ArgPointer);
/* PC Card Functions */
unsigned PCMCIAMapIO(void);
unsigned PCMCIAMapMemory(void);
unsigned CheckSlot(void);
unsigned RequestIrq(PCCardStruct *PCCardInfo);
unsigned ReleaseIrq(PCCardStruct *PCCardInfo);
unsigned ReleaseConfig(PCCardStruct *PCCardInfo);
unsigned RequestConfig(PCCardStruct *PCCardInfo);
unsigned GetMemWindow(PCCardStruct *PCCardInfo);
unsigned GetIOWindow(PCCardStruct *PCCardInfo);
unsigned Enable_BU65550(PCCardStruct *PCCardInfo);
unsigned Disable_BU65550(PCCardStruct *PCCardInfo);
unsigned BU_RegisterClient(void);
unsigned BU_DeregisterClient(void);
U16BIT InqConfig(void);
#ifdef __cplusplus
}
#endif
#endif /* #ifndef TS_ENA_H */