X-Git-Url: http://git.linex4red.de/pub/USBasp.git/blobdiff_plain/071e02c6b6b4837fa9cf0b6d4c749994e02638d7..77a9df36a77d2523dd2bc24fa17f9f04c6c175c5:/Demos/Device/LowLevel/RNDISEthernet/Lib/Ethernet.h diff --git a/Demos/Device/LowLevel/RNDISEthernet/Lib/Ethernet.h b/Demos/Device/LowLevel/RNDISEthernet/Lib/Ethernet.h index 4bae3c4df..3ce62128c 100644 --- a/Demos/Device/LowLevel/RNDISEthernet/Lib/Ethernet.h +++ b/Demos/Device/LowLevel/RNDISEthernet/Lib/Ethernet.h @@ -1,21 +1,21 @@ /* LUFA Library - Copyright (C) Dean Camera, 2010. - + Copyright (C) Dean Camera, 2011. + dean [at] fourwalledcubicle [dot] com - www.fourwalledcubicle.com + www.lufa-lib.org */ /* - Copyright 2010 Dean Camera (dean [at] fourwalledcubicle [dot] com) + Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com) - Permission to use, copy, modify, distribute, and sell this + Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted - without fee, provided that the above copyright notice appear in + without fee, provided that the above copyright notice appear in all copies and that both that the copyright notice and this - permission notice and warranty disclaimer appear in supporting - documentation, and that the name of the author not be used in - advertising or publicity pertaining to distribution of the + permission notice and warranty disclaimer appear in supporting + documentation, and that the name of the author not be used in + advertising or publicity pertaining to distribution of the software without specific, written prior permission. The author disclaim all warranties with regard to this @@ -32,7 +32,7 @@ * * Header file for Ethernet.c. */ - + #ifndef _ETHERNET_H_ #define _ETHERNET_H_ @@ -48,19 +48,19 @@ #include "DHCP.h" #include "ARP.h" #include "IP.h" - + /* Macros: */ - /** Physical MAC address of the USB RNDIS network adapter */ + /** Physical MAC address of the USB RNDIS network adapter. */ #define ADAPTER_MAC_ADDRESS {0x02, 0x00, 0x02, 0x00, 0x02, 0x00} - - /** Physical MAC address of the virtual server on the network */ - #define SERVER_MAC_ADDRESS {0x00, 0x01, 0x00, 0x01, 0x00, 0x01} - /** Physical MAC address of the network broadcast address */ + /** Physical MAC address of the virtual server on the network. */ + #define SERVER_MAC_ADDRESS {0x00, 0x01, 0x00, 0x01, 0x00, 0x01} + + /** Physical MAC address of the network broadcast address. */ #define BROADCAST_MAC_ADDRESS {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF} - + /** Performs a comparison between two MAC addresses, indicating if they are identical. - * + * * \param[in] MAC1 First MAC address * \param[in] MAC2 Second MAC address * @@ -68,40 +68,34 @@ */ #define MAC_COMPARE(MAC1, MAC2) (memcmp(MAC1, MAC2, sizeof(MAC_Address_t)) == 0) - /** Maximum size of an incoming or outgoing Ethernet frame in bytes */ + /** Maximum size of an incoming or outgoing Ethernet frame in bytes. */ #define ETHERNET_FRAME_SIZE_MAX 1500 - - /** Minimum size of an Ethernet packet in bytes, to conform to the Ethernet V2 packet standard */ + + /** Minimum size of an Ethernet packet in bytes, to conform to the Ethernet V2 packet standard. */ #define ETHERNET_VER2_MINSIZE 0x0600 - - /** Return value for all sub protocol handling routines, indicating that no response packet has been generated */ - #define NO_RESPONSE 0 - /** Return value for all sub protocol handling routines, indicating that the packet has not yet been handled */ + /** Return value for all sub protocol handling routines, indicating that no response packet has been generated. */ + #define NO_RESPONSE 0 + + /** Return value for all sub protocol handling routines, indicating that the packet has not yet been handled. */ #define NO_PROCESS -1 /* Type Defines: */ - /** Type define for an Ethernet frame buffer. */ + /** Type define for an Ethernet frame buffer data and information structure. */ typedef struct { - uint8_t FrameData[ETHERNET_FRAME_SIZE_MAX]; /**< Ethernet frame contents */ - uint16_t FrameLength; /**< Length in bytes of the Ethernet frame stored in the buffer */ - bool FrameInBuffer; /**< Indicates if a frame is currently stored in the buffer */ + uint8_t FrameData[ETHERNET_FRAME_SIZE_MAX]; /**< Ethernet frame contents. */ + uint16_t FrameLength; /**< Length in bytes of the Ethernet frame stored in the buffer. */ } Ethernet_Frame_Info_t; - /** Type define for an Ethernet frame header */ + /** Type define for an Ethernet frame header. */ typedef struct { MAC_Address_t Destination; /**< Physical MAC address of the packet recipient */ MAC_Address_t Source; /**< Physics MAC address of the packet source */ - - union - { - uint16_t EtherType; /**< Ethernet packet sub-protocol type, for Ethernet V2 packets */ - uint16_t Length; /**< Ethernet frame length, for Ethernet V1 packets */ - }; + uint16_t EtherType; /**< Ethernet packet sub-protocol type, for Ethernet V2 packets */ } Ethernet_Frame_Header_t; - + /* External Variables: */ extern Ethernet_Frame_Info_t FrameIN; extern Ethernet_Frame_Info_t FrameOUT; @@ -111,9 +105,11 @@ extern const MAC_Address_t BroadcastMACAddress; extern const IP_Address_t BroadcastIPAddress; extern const IP_Address_t ClientIPAddress; - + /* Function Prototypes: */ void Ethernet_ProcessPacket(void); - uint16_t Ethernet_Checksum16(void* Data, uint16_t Bytes); - + uint16_t Ethernet_Checksum16(void* Data, + uint16_t Bytes); + #endif +