|
|
DataMuseum.dkPresents historical artifacts from the history of: Regnecentalen RC-900 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Regnecentalen RC-900 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T U e
Length: 4100 (0x1004)
Types: TextFile
Notes: UNIX file
Names: »ec.h«
└─⟦8c4f54e61⟧ Bits:30004068/disk2.imd Interactive TCP/IP v.1.2
└─⟦8c4f54e61⟧ UNIX Filesystem
└─⟦this⟧ »hb/new/usr/include/sys/ec.h«
/*
* definitions and declarations for the 3COM ethernet driver
*
* Copyrighted as an unpublished work.
* (c) Copyright 1988 INTERACTIVE Systems Corporation
* All rights reserved.
*
* RESTRICTED RIGHTS:
*
* These programs are supplied under a license. They may be used,
* disclosed, and/or copied only as permitted under such license
* agreement. Any copy must contain the above copyright notice and
* this restricted rights notice. Use, copying, and/or disclosure
* of the programs is strictly prohibited unless otherwise provided
* in the license agreement.
*/
#ident "@(#)ec.h 1.6 - 89/01/20"
#define EA3COM0 0x02 /* first byte of 3COM ethernet addresses */
#define EA3COM1 0x60 /* second byte */
#define EA3COM2 0x8c /* third byte */
#define DMAIN 0x45 /* dma from IE buffer, single mode */
#define DMAOUT 0x49 /* dma to IE buffer, single mode */
/* bits in IE Control and Status Register */
#define IERST 0x80 /* reset (write only) */
#define IERIDE 0x40 /* request interrupt & dma enable */
#define IEDMAR 0x20 /* dma request */
#define IEDMAD 0x10 /* dma done */
#define IEECR 0x08 /* buffer to EDLC receive */
#define IEECX 0x04 /* buffer to EDLC transmit */
#define IEIRE 0x01 /* interrupt request enable */
#define IESYS 0x00 /* buffer to system bus */
#define XBUSY 0x80 /* transmit busy (still sending) */
#define RBUSY 0x01 /* receive busy (packet arriving) */
/* bits in EDLC Transmit Register */
#define IEXEOF 0x08 /* end-of-frame interrupt */
#define IEJ16 0x04 /* jam 16 interrupt */
#define IEJAM 0x02 /* jam interrupt */
#define IEUNDER 0x01 /* underflow interrupt */
/* bits in EDLC Receive Register */
#define IESTALE 0x80 /* stale receive status (read only) */
#define MULTI 0xc0 /* station address plus multicast */
#define OWN 0x80 /* station address plus broadcast */
#define ALL 0x40 /* all addresses */
#define RGOOD 0x20 /* receive good packets only */
#define RNOOF 0x10 /* receive any packet without overflow */
#define SHORTP 0x08 /* short packet */
#define ALIGN 0x04 /* allignment error */
#define FCS 0x02 /* frame check sequence error (CRC) */
#define OVER 0x01 /* overflow error */
#define NONE 0x00 /* disable receive mode */
#define RCVOK 0x1f /* mask to start looking for valid packet */
#define RWFP 0x10 /* got a well formed packet */
/* IE register offsets - add IE base address (ecbase) to each offset */
#define IESADR 0x00 /* ethernet station address */
#define ECRCV 0x06 /* EDLC receive register */
#define ECXMT 0x07 /* EDLC transmit register */
#define IEGBP 0x08 /* general purpose buffer pointer */
#define IERBP 0x0a /* receive buffer pointer */
#define IEPADR 0x0c /* my ethernet address PROM */
#define IECSR 0x0e /* control and status register */
#define IEMEM 0x0f /* buffer access register */
/*
* streams related definitions
*/
#define ECVPKTSZ (3*256)
#define ECHIWAT (16*ECVPKTSZ)
#define ECLOWAT (8*ECVPKTSZ)
#define ECMAXPKT 1500
#define ECMAXPKTLLC 1497 /* max packet when using LLC1 */
#define ECMINSEND 60 /* 64 - 4 bytes CRC */
/*
* debug bits
*/
#define ECTRACE 0x01
#define ECRECV 0x02
#define ECSEND 0x04
#define ECERRS 0x10
#define ECINT 0x20
#ifdef DEBUG
#define ECDEBUG
#endif
/*
* board state
*/
#define ECB_IDLE 0
#define ECB_WAITRCV 1
#define ECB_XMTBUSY 2
#define ECB_ERROR 3
/*
* 3COM board statistics
*/
#define EC_NSTATS 16
struct ecstats {
/* non-hardware */
struct llcstats ecs_llcs; /* 0-3 */
/* transmit */
ulong ecs_xpkts; /* 4 */
ulong ecs_xbytes; /* 5 */
ulong ecs_excoll; /* 6 */
ulong ecs_coll; /* 7 */
ulong ecs_under; /* 8 */
ulong ecs_carrier; /* 9 */
/* receive */
ulong ecs_rpkts; /* 10 */
ulong ecs_rbytes; /* 11 */
ulong ecs_fcs; /* 12 */
ulong ecs_align; /* 13 */
ulong ecs_overflow; /* 14 */
ulong ecs_short; /* 15 */
};
/*
* 3COM 3C501 board dependent variables.
* In a structure to use multiple boards.
*/
struct ecvar {
int ec_begaddr; /* start address for transmit */
int ec_chprom; /* flag for changing promiscuous mode */
};