blob: b5f982bc7c2cee6b9af582c0ee7289a57b38f5a5 (
plain) (
tree)
|
|
/****************************************************************************/
/****************************************************************************/
/* */
/* THE ADAPTER DEFINITIONS */
/* ======================= */
/* */
/* FTK_ADAP.H : Part of the FASTMAC TOOL-KIT (FTK) */
/* */
/* Copyright (c) Madge Networks Ltd. 1991-1994 */
/* Developed by MF */
/* CONFIDENTIAL */
/* */
/* */
/****************************************************************************/
/* */
/* This header file contains the definitions for the structure which is */
/* used to maintain information on an adapter that is being used by the */
/* FTK. */
/* */
/****************************************************************************/
/****************************************************************************/
/* */
/* VERSION_NUMBER of FTK to which this FTK_ADAP.H belongs : */
/* */
#define FTK_VERSION_NUMBER_FTK_ADAP_H 221
/****************************************************************************/
/* */
/* TYPEDEFs for all structures defined within this header file : */
/* */
typedef struct STRUCT_ADAPTER ADAPTER;
/****************************************************************************/
/* */
/* Structure type : ADAPTER */
/* */
/* The adapter structure is used to maintain all the information for a */
/* single adapter. This includes information on the Fastmac for the */
/* adapter. Most of the fields are filled in from the user supplied adapter */
/* information to driver_prepare_adapter and driver_start_adapter. */
/* */
struct STRUCT_ADAPTER
{
void (*set_dio_address) (struct STRUCT_ADAPTER*, DWORD);
void (*interrupt_handler) (struct STRUCT_ADAPTER*);
void (*remove_card) (struct STRUCT_ADAPTER*);
UINT adapter_card_bus_type;
UINT adapter_card_type;
UINT adapter_card_revision;
UINT adapter_ram_size; /* Depends on card type. */
#ifdef PCMCIA_POINT_ENABLE
UINT socket; /* Socket passed to point
enabler. */
BOOLEAN drop_int; /* Flag used to stop a
spurious interrupt being
claimed. */
#endif
WORD io_location;
WORD io_range;
WORD interrupt_number; /* 0 == Polling mode */
WBOOLEAN edge_triggered_ints;
WORD nselout_bits; /* IRQ select on Smart16 */
WORD dma_channel;
UINT transfer_mode; /* DMA/MMIO/PIO */
WBOOLEAN EaglePsDMA;
WORD mc32_config; /* special config info */
NODE_ADDRESS permanent_address; /* BIA PROM node address */
UINT ring_speed;
WBOOLEAN speed_detect; /* Card is capable of detecting ring speed */
WORD max_frame_size; /* determined by ring speed */
UINT set_ring_speed; /* Force ring speed to this */
DWORD mmio_base_address; /* MMIO base address */
DWORD pci_handle; /* PCI slot handle. */
WBOOLEAN use_32bit_pio;
WORD sif_dat; /* SIF register IO locations*/
WORD sif_datinc;
WORD sif_adr;
WORD sif_int;
WORD sif_acl;
WORD sif_adr2;
WORD sif_adx;
WORD sif_dmalen;
WORD sif_sdmadat;
WORD sif_sdmaadr;
WORD sif_sdmaadx;
WORD c46_bits; /* Bits we must remember in */
/* the AT93C46 control reg. */
WBOOLEAN set_irq; /* set IRQ if possible */
WBOOLEAN set_dma; /* set DMA if possible */
SRB_GENERAL srb_general; /* SRB for this adapter */
WORD size_of_srb; /* size of current SRB */
DOWNLOAD_IMAGE * download_image; /* ptr Fastmac binary image */
INITIALIZATION_BLOCK * init_block; /* ptr Fastmac init block */
SRB_HEADER * srb_dio_addr; /* addr of SRB in DIO space */
FASTMAC_STATUS_BLOCK * stb_dio_addr; /* addr of STB in DIO space */
WBOOLEAN interrupts_on; /* for this adapter */
WBOOLEAN dma_on; /* for this adapter */
UINT adapter_status; /* prepared or running */
UINT srb_status; /* free or in use */
ERROR_RECORD error_record; /* error type and value */
ERROR_MESSAGE error_message; /* error message string */
STATUS_INFORMATION * status_info; /* ptr adapter status info */
void * user_information; /* User's private data. */
ADAPTER_HANDLE adapter_handle;
#ifdef FMPLUS
DWORD dma_test_buf_phys;
DWORD dma_test_buf_virt;
RX_SLOT * rx_slot_array[FMPLUS_MAX_RX_SLOTS];
/* Rx slot DIO addresses */
TX_SLOT * tx_slot_array[FMPLUS_MAX_TX_SLOTS];
/* Tx slot DIO addresses */
void * rx_slot_mgmnt; /* pointer to user slot */
void * tx_slot_mgmnt; /* management structures. */
#else
DWORD rx_buffer_phys; /* RX buffer physical address*/
DWORD rx_buffer_virt; /* RX buffer virtual address */
DWORD tx_buffer_phys; /* TX buffer physical address*/
DWORD tx_buffer_virt; /* TX buffer virtual address */
#endif
};
/****************************************************************************/
/* */
/* Values : ADAPTER - WORD adapter_card_type */
/* */
/* The following are the different types of adapter cards supported by the */
/* FTK (and their subtypes). */
/* */
#define ADAPTER_CARD_TYPE_16_4_AT 2
#define ADAPTER_CARD_16_4_PC 0
#define ADAPTER_CARD_16_4_MAXY 1
#define ADAPTER_CARD_16_4_AT 2
#define ADAPTER_CARD_16_4_FIBRE 3
#define ADAPTER_CARD_16_4_BRIDGE 4
#define ADAPTER_CARD_16_4_ISA_C 5
#define ADAPTER_CARD_16_4_AT_P_REV 6
#define ADAPTER_CARD_16_4_FIBRE_P 7
#define ADAPTER_CARD_16_4_ISA_C_P 8
#define ADAPTER_CARD_16_4_AT_P 9
#define ADAPTER_CARD_TYPE_16_4_MC 3
#define ADAPTER_CARD_TYPE_16_4_MC_32 4
#define ADAPTER_CARD_TYPE_16_4_EISA 5
#define ADAPTER_CARD_16_4_EISA_MK1 1
#define ADAPTER_CARD_16_4_EISA_MK2 2
#define ADAPTER_CARD_16_4_EISA_BRIDGE 3
#define ADAPTER_CARD_16_4_EISA_MK3 4
#define ADAPTER_CARD_TYPE_SMART_16 6
#define ADAPTER_CARD_SMART_16 1
#define ADAPTER_CARD_TYPE_16_4_PCI 7
#define ADAPTER_CARD_16_4_PCI 0
#define ADAPTER_CARD_TYPE_16_4_PCMCIA 8
#define ADAPTER_CARD_16_4_PCMCIA 1
#define ADAPTER_CARD_TYPE_16_4_PNP 9
#define ADAPTER_CARD_PNP 0
#define ADAPTER_CARD_TYPE_16_4_PCIT 10
#define ADAPTER_CARD_16_4_PCIT 0
#define ADAPTER_CARD_TYPE_16_4_PCI2 11
#define ADAPTER_CARD_16_4_PCI2 0
#define ADAPTER_CARD_UNKNOWN 255
/****************************************************************************/
/* */
/* Values : ADAPTER - WORD adapter_status */
/* */
/* These values are for the different required states of the adapter when */
/* using the FTK. */
/* */
#define ADAPTER_PREPARED_FOR_START 0
#define ADAPTER_RUNNING 1
/****************************************************************************/
/* */
/* Values : ADAPTER - WORD srb_status */
/* */
/* These values are for the different required states of the SRB, */
/* associated with an adapter, when using the FTK. */
/* */
#define SRB_ANY_STATE 0
#define SRB_FREE 1
#define SRB_NOT_FREE 2
/****************************************************************************/
/* */
/* Value : Number of Adapters supported */
/* */
/* The FTK supports a specified maximum number of adapters. The smaller */
/* this value is, the less memory that is used. This is especially true */
/* when considering system specific parts such as the DOS example code */
/* within this FTK. It uses the maximum number of adapters value for */
/* determining the size of static arrays of adapter structures and */
/* initialization blocks. It also uses it for determining the number of */
/* interrupt stubs required given that : */
/* */
/* NOTE : If using the DOS example system specific code, then it must be */
/* the case that MAX_NUMBER_OF_ADAPTERS defined here equals */
/* MAX_NUMBER_OF_ADAPTERS as defined in SYS_IRQ.ASM. */
/* */
#define MAX_NUMBER_OF_ADAPTERS 8
#define ISA_IO_LOCATIONS 4
#define MAX_ISA_ADAPATERS ISA_IO_LOCATIONS
#define MC_IO_LOCATIONS 8
#define MAX_MC_ADAPATERS MC_IO_LOCATIONS
#define MC32_IO_LOCATIONS 8
#define MAX_MC32_ADAPATERS MC32_IO_LOCATIONS
/****************************************************************************/
/* */
/* Varaibles : adapter_record array */
/* */
/* The FTK maintains an array of pointers to the adapter structures used to */
/* maintain information on the different adapters being used. This array is */
/* exported by DRV_INIT.C. */
/* */
extern ADAPTER * adapter_record[MAX_NUMBER_OF_ADAPTERS];
/****************************************************************************/
/* */
/* Macro: FTK_ADAPTER_USER_INFORMATION */
/* */
/* A macro to let FTK users get at their private adapter information from */
/* an adapter handle. */
/* */
#define FTK_ADAPTER_USER_INFORMATION(adapter_handle) \
(adapter_record[(adapter_handle)]->user_information)
/* */
/* */
/************** End of FTK_ADAP.H file **************************************/
/* */
/* */
|