DataMuseum.dk

Presents historical artifacts from the history of:

Regnecentalen RC-900

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Regnecentalen RC-900

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download

⟦72089d480⟧ TextFile

    Length: 4100 (0x1004)
    Types: TextFile
    Notes: UNIX file
    Names: »ec.h«

Derivation

└─⟦8c4f54e61⟧ Bits:30004068/disk2.imd Interactive TCP/IP v.1.2
└─⟦8c4f54e61⟧ UNIX Filesystem
    └─⟦this⟧ »hb/new/usr/include/sys/ec.h« 

TextFile

/*
 *	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 */
};