|
|
1.1 ! root 1: /* ether.h */ ! 2: ! 3: /* Ethernet definitions and constants */ ! 4: ! 5: #define EMINPAK 64 /* minimum packet length */ ! 6: #define EMAXPAK 1536 /* maximum packet length */ ! 7: #define EHLEN 14 /* size of Ethernet packet header */ ! 8: #define EDLEN EMAXPAK-EHLEN /* length of data field in ether packet */ ! 9: #define EPADLEN 6 /* number of octets in physical address */ ! 10: typedef char Eaddr[EPADLEN]; /* length of physical address (48 bits) */ ! 11: #define EXRETRY 3 /* number of times to retry xmit errors */ ! 12: #define EBCAST "\377\377\377\377\377\377"/* Ethernet broadcast address */ ! 13: ! 14: struct eheader { /* format of header in Ethernet packet */ ! 15: Eaddr e_dest; /* destination host address */ ! 16: Eaddr e_src; /* source host address */ ! 17: short e_ptype; /* Ethernet packet type (see below) */ ! 18: }; ! 19: ! 20: #define EP_LOOP 0x0060 /* packet type: Loopback */ ! 21: #define EP_ECHO 0x0200 /* packet type: Echo */ ! 22: #define EP_PUP 0x0400 /* packet type: Xerox PUP protocol */ ! 23: #define EP_IP 0x0800 /* packet type: DARPA Internet protocol */ ! 24: #define EP_ARP 0x0806 /* packet type: Address resolution " */ ! 25: #define EP_RARP 0x8035 /* packet type: reverse " " " */ ! 26: ! 27: struct epacket { /* complete structure of Ethernet packet*/ ! 28: struct eheader ep_hdr; /* packet header */ ! 29: char ep_data[EDLEN]; /* data in the packet */ ! 30: }; ! 31: ! 32: /* Ethernet control block descriptions */ ! 33: ! 34: struct etblk { ! 35: struct dqregs *eioaddr;/* address of device csr */ ! 36: struct devsw *etdev; /* Address of device switch table entry */ ! 37: Eaddr etpaddr; /* Ethernet physical device address */ ! 38: int etrpid; /* id of process reading from ethernet */ ! 39: int etrsem; /* mutex for reading from the ethernet */ ! 40: int etwsem; /* mutex for writing to the ethernet */ ! 41: int etsetup; /* DC_NORM or DC_SETUP for normal/setup */ ! 42: int etlen; /* length of packet being written or 0 */ ! 43: int etwtry; /* num. of times to retry xmit errors */ ! 44: struct dcmd ercmd[2]; /* deqna read command descriptor plus */ ! 45: /* end-of-list */ ! 46: struct dcmd ewcmd[2]; /* deqna write command descriptor plus */ ! 47: /* end-of-list */ ! 48: }; ! 49: ! 50: extern struct etblk eth[];
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.