This repository has been archived on 2024-12-16. You can view files and clone it, but cannot push or open issues or pull requests.
CodeBlocksPortable/Borland/BCC55/Include/syncdtct.h

108 lines
6.4 KiB
C

#pragma option push -b -a8 -pc -A- /*P_O_Push*/
/*****************************************************************************/
/* */
/* SYNCDTCT.H - External include file for SYNCDTCT.DLL which is used by */
/* setup to detect sync. comms. cards. */
/* */
/* SEE SYNCDTCT.C FOR DETAILED SYNTAX OF THE CALLS */
/* */
/*****************************************************************************/
/*****************************************************************************/
/* Returned structure containing config data on the card */
/* */
/* NEVER CHANGE THESE STRUCTURES WITHOUT ALSO CHANGING IBMSYNC.SYS */
/* */
/* The individual SYNC_CFG structures are stored as raw data in a single */
/* registry value under \SERVICES\IBMSYNC\PARAMETERS\CardCfg. */
/* */
/* When IBMSYNC starts, it reads the raw data into memory and then uses the */
/* result as it's config array. This means the data must be in the form the */
/* driver expects. */
/* */
/* Note: For MCA buses, the DMA & port info is read in a new every time the */
/* driver runs. It is the McaSlot & McaId field which define the cards.*/
/* */
/* For ISA/EISA buses, the base port addresses define the cards, and */
/* this infois only updated when setup is run. */
/* */
/*****************************************************************************/
typedef struct _SYNC_CARD
{
ULONG IdandUseCount; /* LOWORD is the adapter ID */
/* HIWORD is the use count */
/* Done this way to preserve back */
/* compatibility. */
UCHAR DisplayName[50];
} SYNC_CARD,* PSYNC_CARD;
typedef struct _PORT_DEF
{
ULONG Addr;
ULONG Len;
} PORT_DEF;
typedef struct _SYNC_CFG
{
SYNC_CARD Card;
UCHAR DeviceName[25];
PORT_DEF AdapterBase; /* Zero for MPA/A card if sync disabled */
UCHAR Irq;
#define NO_IRQ_GENERATED 0xFF /* Adapter failed to generate interrupt */
UCHAR DmaChannel;
#define DMA_CANT_BE_DETECTED 0xFF /* Need to get user to select 0, 1 or 3 */
#define NO_DMA 0x10 /* IBMSYNC checks for this define */
USHORT McaId;
UCHAR McaSlot;
PORT_DEF MpcaModePort;
UCHAR MpcaModeValue;
} SYNC_CFG,* PSYNC_CFG;
/*****************************************************************************/
/* */
/* Calls to query sync cards */
/* ------------------------- */
/* */
/* DetectPresentCards() is used during an initial install of sync devices to */
/* get a list of present cards.This corresponds to */
/* primary netcard detection. */
/* */
/* QueryPossibleCards() are used when a users wants to add a new card. The */
/* & QueryCardConfig() fisrt call is made to get a list of all sync cards */
/* and then once one has been selected, the second call */
/* checks for the cards existence and returns the config*/
/* to be written to the registry. These calls correspond*/
/* to secondary net card detection. */
/* */
/* Both sets of cards can return NO_IRQ_GENERATED in the Irq field to */
/* indicate a possible interrupt clash and DMA_CANT_BE_DETECTED in the case */
/* of MicroGate cards when the DMA channel can't be selected. In the second */
/* case setup has to prompt the user for either 0,1 or 3 before putting info */
/* in the registry. */
/*****************************************************************************/
DWORD DetectPresentCards(SYNC_CFG CfgArray[], int MaxNum, int * pAvailNum);
DWORD QueryPossibleCards(SYNC_CARD CardArray[], int MaxNum, int * pAvailNum);
DWORD QueryCardConfig(ULONG CardId, PSYNC_CFG pCfg);
/*****************************************************************************/
/* */
/* Calls used to store cfg */
/* ----------------------- */
/* */
/* These calls store the card configuration information under the IBMSYNC */
/* key in a format which the device driver can understand. */
/* */
/* WriteSyncCfg() Saves an array of card config entries where they can be */
/* accessed by the card. */
/* */
/* ReadSyncCfg() Returns an array containing config on all the cards */
/* currently configured. */
/* */
/*****************************************************************************/
DWORD WriteSyncCfg(SYNC_CFG CfgArray[], int NumEntries);
DWORD ReadSyncCfg (SYNC_CFG CfgArray[], int MaxNum, int * pAvailNum);
#pragma option pop /*P_O_Pop*/