Annotation of Net2/arch/i386/netboot/ether.h, revision 1.1

1.1     ! root        1: /* netboot
        !             2:  *
        !             3:  * ether.h,v
        !             4:  * Revision 1.1  1993/07/08  16:03:57  brezak
        !             5:  * Diskless boot prom code from Jim McKim ([email protected])
        !             6:  *
        !             7:  * Revision 1.1.1.1  1993/05/28  11:41:07  mckim
        !             8:  * Initial version.
        !             9:  *
        !            10:  *
        !            11:  * source in this file came from
        !            12:  * the Mach ethernet boot written by Leendert van Doorn.
        !            13:  *
        !            14:  * Ethernet definitions
        !            15:  */
        !            16: 
        !            17: #define        ETH_ADDRSIZE    6               /* address size */
        !            18: 
        !            19: /*
        !            20:  * Structure of an ethernet header
        !            21:  */
        !            22: typedef struct {
        !            23:   u_char eth_dst[ETH_ADDRSIZE];        /* destination address */
        !            24:   u_char eth_src[ETH_ADDRSIZE];        /* source address */
        !            25:   u_short eth_proto;                   /* protocol type */
        !            26: } ethhdr_t;
        !            27: 
        !            28: /* protocol types */
        !            29: #define        ETHTYPE_IP      0x0800          /* IP protocol */
        !            30: #define        ETHTYPE_ARP     0x0806          /* ARP protocol */
        !            31: #define        ETHTYPE_RARP    0x8035          /* Reverse ARP protocol */
        !            32: 
        !            33: extern u_char eth_myaddr[];
        !            34: 
        !            35: int EtherInit(void);
        !            36: void EtherReset(void);
        !            37: void EtherStop(void);
        !            38: void EtherSend(packet_t *pkt, u_short proto, u_char *dest);
        !            39: packet_t *EtherReceive(void);
        !            40: void EtherPrintAddr(u_char *addr);
        !            41: 
        !            42: /* TBD - move these elsewhere? */
        !            43: 
        !            44: static inline u_short
        !            45: htons(u_short x) {
        !            46:   return ((x >> 8) & 0xff)
        !            47:     | ((x & 0xff) << 8);
        !            48: }
        !            49: 
        !            50: #if 0
        !            51: static inline u_short
        !            52: ntohs(u_short x) {
        !            53:   return x >> 8 & 0xff
        !            54:     | (x & 0xff) << 8;
        !            55: }
        !            56: #else
        !            57: static inline u_short
        !            58: ntohs(u_short x) {
        !            59:   return htons(x);
        !            60: }
        !            61: #endif
        !            62: 
        !            63: static inline u_long
        !            64: htonl(u_long x) {
        !            65:   return (x >> 24 & 0xffL)
        !            66:     | (x >> 8 & 0xff00L)
        !            67:       | (x << 8 & 0xff0000L)
        !            68:        | (x << 24 & 0xff000000L);
        !            69: }
        !            70: 
        !            71: #if 0
        !            72: static inline u_long
        !            73: ntohl(u_long x) {
        !            74:   return x >> 24 & 0xffL
        !            75:     | x >> 8 & 0xff00L
        !            76:       | x << 8 & 0xff0000L
        !            77:        | x << 24 & 0xff000000L;
        !            78: }
        !            79: #else
        !            80: static inline u_long
        !            81: ntohl(u_long x) {
        !            82:   return htonl(x);
        !            83: }
        !            84: #endif

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.