Annotation of qemu/roms/SLOF/clients/net-snk/app/netlib/ethernet.h, revision 1.1.1.2

1.1       root        1: /******************************************************************************
                      2:  * Copyright (c) 2004, 2008 IBM Corporation
                      3:  * All rights reserved.
                      4:  * This program and the accompanying materials
                      5:  * are made available under the terms of the BSD License
                      6:  * which accompanies this distribution, and is available at
                      7:  * http://www.opensource.org/licenses/bsd-license.php
                      8:  *
                      9:  * Contributors:
                     10:  *     IBM Corporation - initial implementation
                     11:  *****************************************************************************/
                     12: 
                     13: #ifndef _ETHERNET_H
                     14: #define _ETHERNET_H
                     15: 
1.1.1.2 ! root       16: #include <stdint.h>
1.1       root       17: 
                     18: #define ETH_MTU_SIZE     1518   /**< Maximum Transfer Unit         */
                     19: #define ETH_ALEN            6   /**< HW address length             */
                     20: #define ETHERTYPE_IP   0x0800
                     21: #define ETHERTYPE_IPv6 0x86DD
                     22: #define ETHERTYPE_ARP  0x0806
                     23: 
                     24: /** \struct ethhdr
                     25:  *  A header for Ethernet-packets.
                     26:  */
                     27: struct ethhdr {
                     28:        uint8_t dest_mac[ETH_ALEN];   /**< Destination HW address        */
                     29:        uint8_t src_mac[ETH_ALEN];    /**< Source HW address             */
                     30:        uint16_t type;                /**< Next level protocol type      */
                     31: };
                     32: 
                     33: /* Initializes ethernet layer */
                     34: extern void set_mac_address(const uint8_t * own_mac);
                     35: extern const uint8_t * get_mac_address(void);
                     36: 
                     37: /* Receives and handles packets, according to Receive-handle diagram */
                     38: extern int32_t receive_ether(void);
                     39: 
                     40: /* Sends an ethernet frame. */
                     41: extern int send_ether(void* buffer, int len);
                     42: 
                     43: /* fills ethernet header */
                     44: extern void fill_ethhdr(uint8_t * packet, uint16_t eth_type,
                     45:                         const uint8_t * src_mac, const uint8_t * dest_mac);
                     46: 
                     47: #endif

unix.superglobalmegacorp.com

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