summaryrefslogtreecommitdiffstats
path: root/sys/contrib/dev/oltr/trlld.h
diff options
context:
space:
mode:
Diffstat (limited to 'sys/contrib/dev/oltr/trlld.h')
-rw-r--r--sys/contrib/dev/oltr/trlld.h902
1 files changed, 902 insertions, 0 deletions
diff --git a/sys/contrib/dev/oltr/trlld.h b/sys/contrib/dev/oltr/trlld.h
new file mode 100644
index 0000000..988cf35
--- /dev/null
+++ b/sys/contrib/dev/oltr/trlld.h
@@ -0,0 +1,902 @@
+/*
+ ****************************** trlld.h ***********************************
+ *
+ * Copyright (c) 1997
+ * OLICOM A/S
+ * Denmark
+ *
+ * All Rights Reserved
+ *
+ * This source file is subject to the terms and conditions of the
+ * OLICOM Software License Agreement which restricts the manner
+ * in which it may be used.
+ *
+ *---------------------------------------------------------------------------
+ *
+ * Description: PowerMACH Works header file
+ * $FreeBSD$
+ *
+ *---------------------------------------------------------------------------
+ * $Log: J:/usr/project/trlld/libsrc/include/trlld.h_v $
+ *
+ * Rev 1.9 25 Jan 1999 09:56:28 EGS
+ * Added 3150
+ *
+ * Rev 1.8 10 Dec 1998 12:24:52 JHM
+ * version 1.2.0,prominfo structure with shorts.
+ *
+ * Rev 1.7 25 Nov 1998 16:18:48 JHM
+ * Bullseye mac, 100MBPS, mactype in config structure,
+ * 3540 adapter, TRlldTransmitFree, TRlldReceiveFree,
+ * TRlldAdapterName
+ *
+ * Rev 1.6 23 Oct 1998 16:00:36 JHM
+ * hawkeye adapter types
+ *
+ * Rev 1.5 11 Aug 1998 12:22:06 JHM
+ * split hawkeye types into PCI4,5,6
+ *
+ * Rev 1.4 10 Jul 1998 14:39:22 JHM
+ * OC_3140,OC_3250
+ *
+ * Rev 1.3 18 Jun 1998 11:32:20 JHM
+ * AddMemory,OC_3250
+ *
+ * Rev 1.2 18 Apr 1998 15:11:20 JHM
+ *
+ * Rev 1.1 09 Dec 1997 18:17:52 JHM
+ * rel111: TRlldDataPtr_t
+ *
+ * Rev 1.0 24 Nov 1997 11:08:58 JHM
+ * Initial revision.
+
+ Rev 1.5 18 Jun 1997 11:31:36 JHM
+ Checks for version
+
+ Rev 1.4 13 Jun 1997 13:47:34 JHM
+
+ Rev 1.3 13 Jun 1997 13:27:56 JHM
+ DTR support, version change
+
+ Rev 1.2 12 Jun 1997 11:43:20 JHM
+ TRLLD_INTERRUPT_TIMEOUT defined
+
+ Rev 1.1 11 Apr 1997 15:24:18 JHM
+ replaced tabs with spaces
+
+ Rev 1.0 11 Apr 1997 14:43:04 JHM
+ Initial revision.
+ *
+ ****************************************************************************
+*/
+
+#ifndef TRLLD_H
+#define TRLLD_H
+
+/* Data buffer pointers are always 32 bits.
+ For 16:16 it is segment:offset while it for 32:32 is a linear address. */
+
+#ifdef TRlldSmall
+#define TRlldDataPtr_t unsigned char far *
+#define TRlldWordDataPtr_t unsigned short far *
+#define TRlldDWordDataPtr_t unsigned long far *
+#else
+#define TRlldDataPtr_t unsigned char *
+#define TRlldWordDataPtr_t unsigned short *
+#define TRlldDWordDataPtr_t unsigned long *
+#endif
+
+#ifdef __WATCOMC__
+#define CDECL _cdecl
+#else
+#define CDECL
+#endif
+
+/*****************************************************************************/
+/* */
+/* Firmware */
+/* */
+/*****************************************************************************/
+
+extern unsigned char TRlldMacCode[]; /* 3115,17,18,29,33,36,37 */
+extern unsigned char TRlldHawkeyeMac[]; /* 3139,3140,3141,3250 */
+extern unsigned char TRlldBullseyeMac[]; /* 3150,3540 */
+
+/*****************************************************************************/
+/* */
+/* Maximal numbers of concurrent receive and transmit slots */
+/* */
+/*****************************************************************************/
+
+#define TRLLD_MAX_RECEIVE 32
+#define TRLLD_MAX_TRANSMIT 32
+
+/*****************************************************************************/
+/* */
+/* Maximal frame sizes */
+/* */
+/*****************************************************************************/
+
+#define TRLLD_MAXFRAME_100MBPS 18000
+#define TRLLD_MAXFRAME_16MBPS 18000
+#define TRLLD_MAXFRAME_4MBPS 4500
+
+/*****************************************************************************/
+/* */
+/* TRlldStatus contains the adapter status used in a DriverStatus call-back. */
+/* */
+/*****************************************************************************/
+
+struct OnWireInformation {
+ unsigned short RingStatus;
+ unsigned short Speed;
+ unsigned short AccessProtocol;
+ unsigned short Reserved;
+};
+
+typedef struct TRlldStatus {
+ unsigned short Type;
+ unsigned char Closed;
+ unsigned char AccessProtocol;
+ unsigned short MaxFrameSize;
+ unsigned short Reserved;
+ union {
+ unsigned short OnWireRingStatus; /* for compability */
+ unsigned short SelftestStatus;
+ unsigned short InitStatus;
+ unsigned short RingStatus;
+ unsigned short AdapterCheck[4];
+ unsigned short InternalError[4];
+ unsigned short PromRemovedCause;
+ unsigned short AdapterTimeout;
+ struct OnWireInformation OnWireInformation;
+ } Specification;
+} TRlldStatus_t;
+
+/* values of TRlldStatus.Type */
+
+#define TRLLD_STS_ON_WIRE 0
+#define TRLLD_STS_SELFTEST_STATUS 1
+#define TRLLD_STS_INIT_STATUS 2
+#define TRLLD_STS_RING_STATUS 3
+#define TRLLD_STS_ADAPTER_CHECK 4
+#define TRLLD_STS_PROMISCUOUS_STOPPED 5
+#define TRLLD_STS_LLD_ERROR 6
+#define TRLLD_STS_ADAPTER_TIMEOUT 7
+
+/* values of TRlldStatus.Closed */
+
+#define TRLLD_STS_STATUS_OK 0
+#define TRLLD_STS_STATUS_CLOSED 1
+
+/* values of TRlldStatus.AccessProtocol */
+
+#define TRLLD_ACCESS_UNKNOWN 0
+#define TRLLD_ACCESS_TKP 1
+#define TRLLD_ACCESS_TXI 2
+
+/* values of TRlldStatus.SelftestStatus */
+
+#define TRLLD_ST_OK 0
+#define TRLLD_ST_ERROR 0x0100 /* actual errors are 010x, where x is */
+ /* 0: Initial Test Error */
+ /* 1: Adapter Software Checksum Error */
+ /* 2: Adapter RAM Error */
+ /* 4: Instruction Test Error */
+ /* 5: Protocol Handler/RI Hw Error */
+ /* 6: System Interface Register Error */
+
+#define TRLLD_ST_TIMEOUT 0x0200 /* The adapter did not complete */
+ /* selftest after download */
+
+/* values of TRlldStatus.Specification.InitStatus */
+
+/* the most likely cause of an init error (whatever the code) is a wrong */
+/* physical or virtual address of the adapter block in TRlldAdapterInit */
+
+#define TRLLD_INIT_ERROR 0x100 /* actual errors are 010x, where x is */
+ /* 1: Invalid init block (LLD error) */
+ /* 2: Invalid options (LLD error) */
+ /* 3: Invalid rcv burst (LLD error) */
+ /* 4: Invalid xmt burst (LLD error) */
+ /* 5: Invalid DMA threshold (LLDerror)*/
+ /* 6: Invalid scb addr */
+ /* 7: Invalid ssb addr */
+ /* 8: DIO parity error (HW error) */
+ /* 9: DMA timeout (May be interrupt
+ failing if PIO mode or PCI2) */
+ /* A: DMA parity error (HW error) */
+ /* B: DMA bus error (HW error) */
+ /* C: DMA data error */
+ /* D: Adapter check */
+
+#define TRLLD_INIT_TIMEOUT 0x200 /* adapter init did not complete */
+#define TRLLD_INIT_DMA_ERROR 0x300 /* adapter cannot access sys memory */
+#define TRLLD_INIT_INTR_ERROR 0x400 /* adapter cannot interrupt */
+#define TRLLD_OPEN_TIMEOUT 0x500 /* adapter open did not complete */
+ /* within 30 seconds */
+
+#define TRLLD_OPEN_ERROR 0x600 /* actual errors are 06xx, where the */
+ /* bits in x mean: */
+ /* 01: Invalid open options (LLDerror)*/
+ /* 04: TxBuffer count error (LLDerror)*/
+ /* 10: Buffer size error (LLD error) */
+ /* 20: List size error (LLD error) */
+ /* 40: Node address error */
+
+#define TRLLD_OPEN_REPEAT 0x700 /* actual errors are 07xy, where */
+ /* x is the open phase: */
+ /* 1: Lobe media test */
+ /* 2: Physical Insertion */
+ /* 3: Address verification */
+ /* 4: Participation in ring poll */
+ /* 5: Request Initialization */
+ /* 9: Request registration (TXI) */
+ /* A: Lobe Media Test (TXI) */
+ /* B: Address verification (TXI) */
+ /* y is the type of error: */
+ /* 1: Function failure (No Cable ?) */
+ /* 2: Signal loss */
+ /* 5: Timeout */
+ /* 6: Ring failure (TKP) */
+ /* 6: Protocol error (TXI) */
+ /* 7: Ring beaconing */
+ /* 8: Duplicate Node Address (TKP) */
+ /* 8: Insert Denied (TXI) */
+ /* 9: Request Initialization (TKP) */
+ /* 9: Heart beat failure (TXI) */
+ /* A: Remove received */
+ /* B: C-port address changed (TXI) */
+ /* C: Wire Fault (TKP) */
+ /* D: Auto Speed, 1. on ring (TKP) */
+ /* E: Speed sense failed */
+
+/* When opening with FORCE_TXI and only classic token ring attachment is */
+/* possible, the error is Request Registration/Timeout or 0x795 */
+
+#define TRLLD_OPEN_1ST_ON_RING 0x800 /* Speed sense is active, but no other*/
+ /* station is present to set the speed*/
+
+
+/* values of TRlldStatus.Specification.RingStatus */
+
+#define TRLLD_RS_SIGNAL_LOSS 0x8000
+#define TRLLD_RS_HARD_ERROR 0x4000
+#define TRLLD_RS_SOFT_ERROR 0x2000
+#define TRLLD_RS_TRANSMIT_BEACON 0x1000
+#define TRLLD_RS_LOBE_WIRE_FAULT 0x0800
+#define TRLLD_RS_AUTO_REMOVAL_ERROR 0x0400
+#define TRLLD_RS_REMOVE_RECEIVED 0x0100
+#define TRLLD_RS_COUNTER_OVERFLOW 0x0080
+#define TRLLD_RS_SINGLE_STATION 0x0040
+#define TRLLD_RS_RING_RECOVERY 0x0020
+
+/* values of TRlldStatus.Specification.AdapterCheck */
+/* MISSING */
+
+/* values of TRlldStatus.Specification.PromRemovedCause */
+
+#define TRLLD_PROM_REMOVE_RECEIVED 1
+#define TRLLD_PROM_POLL_FAILURE 2
+#define TRLLD_PROM_BUFFER_SIZE 3
+
+/* values of TRlldStatus.Specification.InternalError */
+
+#define TRLLD_INTERNAL_PIO 1 /* A PIO transfer to or from adapter */
+ /* did not complete */
+#define TRLLD_INTERNAL_TX 2 /* Trouble with clean up of tx frames */
+#define TRLLD_INTERNAL_RX 3 /* Trouble with clean up of receive */
+ /* fragments */
+#define TRLLD_INTERNAL_CMD 4 /* error response from adapter */
+#define TRLLD_INTERNAL_STATE 5 /* event happened in unexpected state */
+
+/* values of TRlldStatus.Specification.AdapterTimeout */
+
+#define TRLLD_COMMAND_TIMEOUT 1
+#define TRLLD_TRANSMIT_TIMEOUT 2
+#define TRLLD_INTERRUPT_TIMEOUT 3
+
+
+/*****************************************************************************/
+/* */
+/* TRlldStatistics contains the adapter statistics returned to Driver */
+/* in TRlldStatistics calls and DriverStatistics call-backs */
+/* */
+/*****************************************************************************/
+
+typedef struct TRlldStatistics {
+ unsigned long LineErrors;
+ unsigned long InternalErrors; /* Not maintained by TMS based boards */
+ unsigned long BurstErrors;
+ unsigned long ARIFCIErrors;
+ unsigned long AbortDelimiters; /* Not maintained by TMS based boards */
+ unsigned long LostFrames;
+ unsigned long CongestionErrors;
+ unsigned long FrameCopiedErrors;
+ unsigned long FrequencyErrors; /* Not maintained by TMS based boards */
+ unsigned long TokenErrors;
+ unsigned long DMABusErrors; /* Not maintained by 3139 */
+ unsigned long DMAParityErrors; /* Not maintained by 3139 */
+ unsigned long ReceiveLongFrame; /* Not maintained by TMS based boards */
+ unsigned long ReceiveCRCErrors; /* Not maintained by TMS based boards */
+ unsigned long ReceiveOverflow; /* Not maintained by TMS based boards */
+ unsigned long TransmitUnderrun; /* Not maintained by TMS based boards */
+ unsigned long UnderrunLock; /* Not maintained by TMS based boards */
+ unsigned long OverflowReset;
+ unsigned char UpstreamNeighbour[6];
+ unsigned short RingNumber;
+ unsigned char BeaconingUpstreamNeighbour[6];
+ unsigned short padding;
+} TRlldStatistics_t;
+
+
+/*****************************************************************************/
+/* */
+/* TRlldDriver contains the Driver call-backs */
+/* */
+/*****************************************************************************/
+
+typedef struct TRlldDriver {
+ unsigned long TRlldVersion;
+#ifndef TRlldInlineIO
+ void (CDECL * DriverOutByte)(unsigned short IOAddress,
+ unsigned char Value);
+ void (CDECL * DriverOutWord)(unsigned short IOAddress,
+ unsigned short Value);
+ void (CDECL * DriverOutDWord)(unsigned short IOAddress,
+ unsigned long Value);
+ void (CDECL * DriverRepOutByte)(unsigned short IOAddress,
+ TRlldDataPtr_t DataPointer,
+ int ByteCount);
+ void (CDECL * DriverRepOutWord)(unsigned short IOAddress,
+ TRlldWordDataPtr_t DataPointer,
+ int WordCount);
+ void (CDECL * DriverRepOutDWord)(unsigned short IOAddress,
+ TRlldDWordDataPtr_t DataPointer,
+ int DWordCount);
+ unsigned char (CDECL * DriverInByte)(unsigned short IOAddress);
+ unsigned short (CDECL * DriverInWord)(unsigned short IOAddress);
+ unsigned long (CDECL * DriverInDWord)(unsigned short IOAddress);
+ void (CDECL * DriverRepInByte)(unsigned short IOAddress,
+ TRlldDataPtr_t DataPointer,
+ int ByteCount);
+ void (CDECL * DriverRepInWord)(unsigned short IOAddress,
+ TRlldWordDataPtr_t DataPointer,
+ int WordCount);
+ void (CDECL * DriverRepInDWord)(unsigned short IOAddress,
+ TRlldDWordDataPtr_t DataPointer,
+ int DWordCount);
+#endif
+ void (CDECL * DriverSuspend)(unsigned short MicroSeconds);
+ void (CDECL * DriverStatus)(void * DriverHandle,
+ TRlldStatus_t * Status);
+ void (CDECL * DriverCloseCmpltd)(void * DriverHandle);
+ void (CDECL * DriverStatistics)(void * DriverHandle,
+ TRlldStatistics_t * Statistics);
+ void (CDECL * DriverTxFrameCmpltd)(void * DriverHandle,
+ void * FrameHandle,
+ int TxStatus);
+ void (CDECL * DriverRcvFrameCmpltd)(void * DriverHandle,
+ int ByteCount,
+ int FragmentCount,
+ void * FragmentHandle,
+ int RcvStatus);
+} TRlldDriver_t;
+
+/* Version and model control */
+
+#define TRLLD_VERSION_INLINEIO 0x8000
+#define TRLLD_VERSION_SMALL 0x4000
+#ifdef TRlldInlineIO
+#ifdef TRlldSmall
+#define TRLLD_VERSION 0x4120
+#else
+#define TRLLD_VERSION 0x0120
+#endif
+#else
+#ifdef TRlldSmall
+#define TRLLD_VERSION 0xC120
+#else
+#define TRLLD_VERSION 0x8120
+#endif
+#endif
+
+
+/*****************************************************************************/
+/* */
+/* TRlldAdapterConfig contains the properties found for an adapter */
+/* used when finding and defining adapters to use */
+/* */
+/*****************************************************************************/
+
+
+struct pnp_id {
+ unsigned short vendor;
+ unsigned short device;
+};
+
+struct pci_id {
+ unsigned short vendor;
+ unsigned short device;
+ unsigned char revision;
+ unsigned char reserved_byte;
+ unsigned short reserved_word;
+};
+
+struct pcmcia_id {
+ /* unknown as yet */
+ unsigned char x;
+};
+
+struct pci_slot {
+ unsigned short bus_no;
+ unsigned short device_no;
+};
+
+struct pcmcia_socket {
+ /* unknown as yet */
+ unsigned char x;
+};
+
+typedef struct TRlldAdapterConfig {
+ unsigned char type;
+ unsigned char bus;
+ unsigned short magic;
+ union {
+ struct pnp_id pnp;
+ unsigned long eisa;
+ unsigned short mca;
+ struct pci_id pci;
+ struct pcmcia_id pcmcia;
+ } id;
+ union {
+ unsigned short csn;
+ unsigned short eisa;
+ unsigned short mca;
+ struct pci_slot pci;
+ struct pcmcia_socket pcmcia;
+ } slot;
+ unsigned short iobase0;
+ unsigned short iolength0;
+ unsigned short iobase1;
+ unsigned short iolength1;
+ unsigned long memorybase;
+ unsigned short memorylength;
+ unsigned char mode;
+ unsigned char xmode;
+ unsigned char interruptlevel;
+ unsigned char dmalevel;
+ unsigned char macaddress[6];
+ unsigned long prombase;
+ unsigned char speed;
+ unsigned char cachelinesize;
+ unsigned short pcicommand;
+ unsigned char mactype;
+ unsigned char reserved[3];
+} TRlldAdapterConfig_t;
+
+/* values of TRlldAdapterConfig.Type */
+
+#define TRLLD_ADAPTER_XT 0 /* not supported */
+#define TRLLD_ADAPTER_ISA1 1 /* OC-3115 */
+#define TRLLD_ADAPTER_ISA2 2 /* OC-3117 */
+#define TRLLD_ADAPTER_ISA3 3 /* OC-3118 */
+#define TRLLD_ADAPTER_MCA1 4 /* OC-3129 id A84 */
+#define TRLLD_ADAPTER_MCA2 5 /* OC-3129 id A85 */
+#define TRLLD_ADAPTER_MCA3 6 /* OC-3129 id A86 */
+#define TRLLD_ADAPTER_EISA1 7 /* OC-3133 id 0109833D */
+#define TRLLD_ADAPTER_EISA2 8 /* OC-3133 id 0209833D */
+#define TRLLD_ADAPTER_EISA3 9 /* OC-3135 not supported */
+#define TRLLD_ADAPTER_PCI1 10 /* OC-3136 id 108d0001 rev 1 */
+#define TRLLD_ADAPTER_PCI2 11 /* OC-3136 id 108d0001 rev 2 */
+#define TRLLD_ADAPTER_PCI3 12 /* OC-3137 id 108d0001 rev 3 */
+#define TRLLD_ADAPTER_PCI4 13 /* OC-3139 id 108d0004 rev 2 */
+#define TRLLD_ADAPTER_PCI5 14 /* OC-3140 id 108d0004 rev 3 */
+#define TRLLD_ADAPTER_PCI6 15 /* OC-3141 id 108d0007 rev 1 */
+#define TRLLD_ADAPTER_PCI7 19 /* OC-3540 id 108d0008 rev 1 */
+#define TRLLD_ADAPTER_PCI8 20 /* OC-3150 id 108d000a rev 1 */
+#ifdef PCMCIA
+#define TRLLD_ADAPTER_PCCARD1 16 /* OC-3220 */
+#define TRLLD_ADAPTER_PCCARD2 17 /* OC-3221,OC-3230,OC-3232 */
+#endif
+#define TRLLD_ADAPTER_PCCARD3 18 /* OC-3250 id 108d0005 rev 1 */
+
+/* values of TRlldAdapterConfig.Bus */
+
+#define TRLLD_BUS_ISA 1
+#define TRLLD_BUS_EISA 2
+#define TRLLD_BUS_MCA 3
+#define TRLLD_BUS_PCI 4
+#define TRLLD_BUS_PCMCIA 5
+
+/* values of TRlldAdapterConfig.mode */
+
+#define TRLLD_MODE_16M 0x01 /* needs data buffers below 16 M */
+#define TRLLD_MODE_PHYSICAL 0x02 /* needs valid physical addresses */
+#define TRLLD_MODE_FIXED_CFG 0x04 /* cannot be reconfigured */
+#define TRLLD_MODE_SHORT_SLOT 0x08 /* in short ISA slot, cannot use DMA */
+#define TRLLD_MODE_CANNOT_DISABLE 0x10 /* can not disable interrupt */
+#define TRLLD_MODE_SHARE_INTERRUPT 0x20 /* may share interrupt */
+#define TRLLD_MODE_MEMORY 0x40 /* is configured with a memory window*/
+
+/* values of TRlldAdapterConfig.dma */
+
+#define TRLLD_DMA_PIO 4 /* other values signifies the DMA channel */
+#define TRLLD_DMA_MASTER 0xff /* to use */
+
+/* values of TRlldAdapterConfig.mactype */
+
+ /* download with: */
+#define TRLLD_MAC_TMS 1 /* TRlldMACCode */
+#define TRLLD_MAC_HAWKEYE 2 /* TRlldHawkeyeMAC */
+#define TRLLD_MAC_BULLSEYE 3 /* TRlldBullseyeMAC */
+
+
+typedef void * TRlldAdapter_t;
+typedef void * TRlldAdapterType_t;
+
+#ifndef MAX_FRAGMENTS
+#define MAX_FRAGMENTS 32
+#endif
+
+typedef struct TRlldTransmit {
+ unsigned short FragmentCount;
+ unsigned short TRlldTransmitReserved;
+ struct TRlldTransmitFragment {
+ unsigned long PhysicalAddress;
+ TRlldDataPtr_t VirtualAddress;
+ unsigned short count;
+ unsigned short TRlldTransmitFragmentReserved;
+ } TransmitFragment[MAX_FRAGMENTS];
+} TRlldTransmit_t;
+
+int CDECL TRlldAdapterSize(void);
+
+int CDECL TRlldInit(int TypeCount,
+ TRlldAdapterType_t * AdapterTypeTable);
+
+extern TRlldAdapterType_t CDECL TRlld3115; /* ISA adapters */
+extern TRlldAdapterType_t CDECL TRlld3117;
+extern TRlldAdapterType_t CDECL TRlld3118;
+extern TRlldAdapterType_t CDECL TRlld3129; /* MCA adapters */
+extern TRlldAdapterType_t CDECL TRlld3133; /* EISA adapters */
+extern TRlldAdapterType_t CDECL TRlld3136; /* PCI adapters */
+extern TRlldAdapterType_t CDECL TRlld3137;
+extern TRlldAdapterType_t CDECL TRlld3139; /* Hawkeye adapters */
+extern TRlldAdapterType_t CDECL TRlld3540; /* Bullseye adapters */
+
+#define T3115 &TRlld3115
+#define T3117 &TRlld3117
+#define T3118 &TRlld3118
+#define T3129 &TRlld3129
+#define T3133 &TRlld3133
+#define T3136 &TRlld3136
+#define T3137 &TRlld3137
+#define T3139 &TRlld3139
+#define T3540 &TRlld3540
+
+/* Only for Boot Prom Page Zero code */
+
+extern TRlldAdapterType_t CDECL TRlld3115Boot; /* ISA adapters */
+extern TRlldAdapterType_t CDECL TRlld3117Boot;
+extern TRlldAdapterType_t CDECL TRlld3118Boot;
+extern TRlldAdapterType_t CDECL TRlld3129Boot; /* MCA adapters */
+extern TRlldAdapterType_t CDECL TRlld3133Boot; /* EISA adapters */
+extern TRlldAdapterType_t CDECL TRlld3136Boot; /* PCI adapters */
+extern TRlldAdapterType_t CDECL TRlld3137Boot;
+extern TRlldAdapterType_t CDECL TRlld3139Boot; /* Hawkeye adapters */
+extern TRlldAdapterType_t CDECL TRlld3150Boot;
+extern TRlldAdapterType_t CDECL TRlld3250Boot;
+extern TRlldAdapterType_t CDECL TRlld3540Boot; /* Bullseye adapter */
+
+#define B3115 &TRlld3115Boot
+#define B3117 &TRlld3117Boot
+#define B3118 &TRlld3118Boot
+#define B3129 &TRlld3129Boot
+#define B3133 &TRlld3133Boot
+#define B3136 &TRlld3136Boot
+#define B3137 &TRlld3137Boot
+#define B3139 &TRlld3139Boot
+#define B3150 &TRlld3150Boot
+#define B3250 &TRlld3250Boot
+#define B3540 &TRlld3540Boot
+
+#define TRLLD_INIT_OK 0
+#define TRLLD_INIT_UNKNOWN 5
+
+int CDECL TRlldAdapterInit(TRlldDriver_t * DriverDefinition,
+ TRlldAdapter_t * TRlldAdapter,
+ unsigned long TRlldAdapterPhysical,
+ void * DriverHandle,
+ TRlldAdapterConfig_t * config);
+
+#define TRLLD_INIT_OK 0
+#define TRLLD_INIT_NOT_FOUND 1
+#define TRLLD_INIT_UNSUPPORTED 2
+#define TRLLD_INIT_PHYS16 3
+#define TRLLD_INIT_VERSION 4
+
+int CDECL TRlldSetSpeed(TRlldAdapter_t * adapter,
+ unsigned char speed);
+
+#define TRLLD_SPEED_4MBPS 4
+#define TRLLD_SPEED_16MBPS 16
+#define TRLLD_SPEED_100MBPS 100
+
+int CDECL TRlldSetInterrupt(TRlldAdapter_t * adapter,
+ unsigned char interruptlevel);
+
+int CDECL TRlldSetDMA(TRlldAdapter_t * adapter,
+ unsigned char dma, unsigned char * mode);
+
+#define TRLLD_CONFIG_OK 0
+#define TRLLD_CONFIG_STATE 1
+#define TRLLD_CONFIG_ILLEGAL 2
+#define TRLLD_CONFIG_FAILED 3
+
+int CDECL TRlldSetSpecial(TRlldAdapter_t * adapter,
+ unsigned short param1, unsigned short param2,
+ unsigned short param3, unsigned short param4);
+
+int CDECL TRlldAddMemory(TRlldAdapter_t * adapter,
+ TRlldDataPtr_t virtual,
+ unsigned long physical,
+ long size);
+
+int CDECL TRlldDisable(TRlldAdapter_t * adapter);
+
+#define TRLLD_OK 0
+#define TRLLD_NOT_SUPPORTED 1
+
+void CDECL TRlldEnable(TRlldAdapter_t * adapter);
+
+int CDECL TRlldInterruptPresent(TRlldAdapter_t * adapter);
+
+#define TRLLD_NO_INTERRUPT 0
+#define TRLLD_INTERRUPT 1
+
+int CDECL TRlldInterruptService(TRlldAdapter_t * adapter);
+
+int CDECL TRlldInterruptPreService(TRlldAdapter_t * adapter);
+
+void CDECL TRlldInterruptPostService(TRlldAdapter_t * adapter);
+
+
+int CDECL TRlldPoll(TRlldAdapter_t * adapter);
+
+int CDECL TRlldDownload(TRlldAdapter_t * adapter,
+ char * DownLoadCode);
+
+#define TRLLD_DOWNLOAD_OK 0
+#define TRLLD_DOWNLOAD_ERROR 1
+#define TRLLD_STATE 2
+
+typedef int (CDECL * GetCode_t)(void * handle, unsigned char * maccodebyte);
+
+int CDECL TRlldStreamDownload(TRlldAdapter_t * adapter,
+ GetCode_t procedure, void * handle);
+
+int CDECL TRlldOpen(TRlldAdapter_t * adapter,
+ unsigned char * MACAddress,
+ unsigned long GroupAddress,
+ unsigned long FunctionalAddress,
+ unsigned short MaxFrameSize,
+ unsigned short OpenModes);
+
+#define TRLLD_OPEN_OK 0
+#define TRLLD_OPEN_STATE 1
+#define TRLLD_OPEN_ADDRESS_ERROR 2
+#define TRLLD_OPEN_MODE_ERROR 3
+#define TRLLD_OPEN_MEMORY 4
+
+#define TRLLD_MODE_TX_STATUS 0x01
+#define TRLLD_MODE_RX_SINGLE 0x02
+#define TRLLD_MODE_FORCE_TKP 0x04
+#define TRLLD_MODE_FORCE_TXI 0x08
+#define TRLLD_MODE_TX_CRC 0x10
+
+void CDECL TRlldClose(TRlldAdapter_t * adapter, int immediate);
+
+void CDECL TRlldSetGroupAddress(TRlldAdapter_t * adapter,
+ unsigned long GroupAddress);
+
+void CDECL TRlldSetFunctionalAddress(TRlldAdapter_t * adapter,
+ unsigned long FunctionalAddress);
+
+void CDECL TRlldSetPromiscuousMode(TRlldAdapter_t * adapter,
+ unsigned char mode);
+
+/* mode bits */
+
+#define TRLLD_PROM_LLC 1
+#define TRLLD_PROM_MAC 2
+#define TRLLD_PROM_ERRORFRAMES 4
+
+int CDECL TRlldGetStatistics(TRlldAdapter_t * adapter,
+ TRlldStatistics_t * statistics,
+ int immediate);
+
+#define TRLLD_IMMEDIATE_STATISTICS 1
+
+#define TRLLD_STATISTICS_RETRIEVED 0
+#define TRLLD_STATISTICS_PENDING 1
+
+int CDECL TRlldTransmitFrame(TRlldAdapter_t * adapter,
+ TRlldTransmit_t * TransmitFrame,
+ void * FrameHandle);
+
+#define TRLLD_TRANSMIT_OK 0
+#define TRLLD_TRANSMIT_NOT_OPEN 1
+#define TRLLD_TRANSMIT_TOO_MANY 2
+#define TRLLD_TRANSMIT_MAX16 3
+#define TRLLD_TRANSMIT_SIZE 4
+#define TRLLD_TRANSMIT_EMPTY 5
+
+/* completion flags */
+
+#define TRLLD_TX_OK 0
+#define TRLLD_TX_NOT_PROCESSED 1
+#define TRLLD_TX_NOT_RECOGNIZED 2
+#define TRLLD_TX_NOT_COPIED 3
+
+/* number of free transmit fragments */
+
+int CDECL TRlldTransmitFree(TRlldAdapter_t * adapter);
+
+int CDECL TRlldReceiveFragment(TRlldAdapter_t * adapter,
+ TRlldDataPtr_t FragmentStart,
+ unsigned long FragmentPhysical,
+ int count,
+ void * FragmentHandle);
+
+#define TRLLD_RECEIVE_OK 0
+#define TRLLD_RECEIVE_NOT_OPEN 1
+#define TRLLD_RECEIVE_TOO_MANY 2
+#define TRLLD_RECEIVE_SIZE 3
+#define TRLLD_RECEIVE_MAX16 4
+
+/* completion flags */
+
+#define TRLLD_RCV_OK 0
+#define TRLLD_RCV_NO_DATA 1
+#define TRLLD_RCV_ERROR 2 /* Only when TRLLD_PROM_ERRORFRAMES */
+#define TRLLD_RCV_LONG 3
+
+/* number of free receive fragments */
+
+int CDECL TRlldReceiveFree(TRlldAdapter_t * adapter);
+
+int CDECL TRlldFind(TRlldDriver_t * driver,
+ TRlldAdapterConfig_t * config_table,
+ unsigned long type_mask,
+ int max);
+
+/* type mask bits */
+
+#define OC_3115 0x0001
+#define OC_3117 0x0002
+#define OC_3118 0x0004
+#define OC_3129 0x0008
+#define OC_3133 0x0010
+#define OC_3136 0x0040
+#define OC_3137 0x0080
+#define OC_3139 0x0100
+#define OC_3140 0x0200
+#define OC_3141 0x0400
+#define OC_3540 0x0800
+#define OC_3150 0x1000
+
+#ifdef PCMCIA
+#define OC_3220 0x0800
+#define OC_3221 0x1000
+#define OC_3230 0x2000
+#define OC_3232 0x4000
+#endif
+
+#define OC_3250 0x8000
+
+int CDECL TRlldIOAddressConfig(TRlldDriver_t * driver,
+ TRlldAdapterConfig_t * config,
+ unsigned short address);
+
+
+#define TRLLD_FIND_OK 1
+#define TRLLD_FIND_ERROR 0
+#define TRLLD_FIND_VERSION -1
+
+int CDECL TRlldEISASlotConfig(TRlldDriver_t * driver,
+ TRlldAdapterConfig_t * config,
+ int slot);
+
+int CDECL TRlldMCASlotConfig(TRlldDriver_t * driver,
+ TRlldAdapterConfig_t * config,
+ int slot);
+
+int CDECL TRlldPCIConfig(TRlldDriver_t * driver,
+ TRlldAdapterConfig_t * config,
+ char * PCIConfigurationSpace);
+
+#define TRLLD_PCICONFIG_OK 0
+#define TRLLD_PCICONFIG_FAIL 1
+#define TRLLD_PCICONFIG_SET_COMMAND 2
+#define TRLLD_PCICONFIG_VERSION 3
+
+
+int CDECL TRlldFindPCI(TRlldDriver_t * driver,
+ TRlldAdapterConfig_t * config_table,
+ unsigned long type_mask,
+ int max);
+
+#ifdef PCMCIA
+typedef void * PCCardHandle_t;
+
+typedef int (CDECL * GetTupleData_t)(PCCardHandle_t handle,
+ unsigned short TupleIdent,
+ char * TupleData,
+ int length);
+
+int CDECL TRlldPCCardConfig(TRlldDriver_t * driver,
+ TRlldAdapterConfig_t * config,
+ unsigned short address,
+ int irq,
+ GetTupleData_t GetTuple,
+ PCCardHandle_t handle);
+
+#define TRLLD_PCCARD_CONFIG_OK 0
+#define TRLLD_PCCARD_CONFIG_FAIL 1
+#endif
+
+/* Boot Prom Support */
+
+typedef struct TRlldPromInfo {
+ unsigned short PromIdent;
+ short PromPages;
+ short PromPageSize;
+} TRlldPromInfo_t;
+
+int CDECL TRlldMapBootProm(TRlldAdapter_t * adapter,
+ TRlldDataPtr_t prompointer);
+
+#define TRLLD_PROM_OK 0
+#define TRLLD_PROM_FAILED 3
+
+int CDECL TRlldGetPromInfo(TRlldAdapter_t * adapter, TRlldPromInfo_t * info);
+
+#define TRLLD_PROM_OK 0
+#define TRLLD_PROM_NOT_MOUNTED 1
+#define TRLLD_PROM_NOT_MAPPED 2
+
+void CDECL TRlldSetPromPage(TRlldAdapter_t * adapter, int page);
+
+int CDECL TRlldSetMemoryUse(TRlldAdapter_t * adapter, int use);
+
+#define TRLLD_PROM_TO_MEMORY 0
+#define TRLLD_REGISTERS_TO_MEMORY 1
+
+#define TRLLD_MEMORY_USE_OK 0
+#define TRLLD_MEMORY_USE_NO_MEMORY 1
+#define TRLLD_MEMORY_USE_STATE 2
+#define TRLLD_MEMORY_USE_ILLEGAL 3
+
+int CDECL TRlldPromErase(TRlldAdapter_t * adapter,
+ void (CDECL * delay)(int milliseconds));
+
+#define TRLLD_PROM_OK 0
+#define TRLLD_PROM_NOT_MOUNTED 1
+#define TRLLD_PROM_NOT_MAPPED 2
+#define TRLLD_PROM_FAILED 3
+
+int CDECL TRlldPromWrite(TRlldAdapter_t * adapter, char * data,
+ int offset, int count);
+
+#define TRLLD_PROM_OK 0
+#define TRLLD_PROM_NOT_MOUNTED 1
+#define TRLLD_PROM_NOT_MAPPED 2
+#define TRLLD_PROM_FAILED 3
+#define TRLLD_PROM_ILLEGAL 4
+
+void CDECL TRlldEmergency(TRlldAdapter_t * adapter);
+
+/* Convert from TRlldAdapterConfig.type to name string */
+char * CDECL TRlldAdapterName(int type);
+#endif
OpenPOWER on IntegriCloud