| Line No. | Rev | Author | Line | 
|---|---|---|---|
| 1 | 6 | kaklik | /*! \file nic.h \brief Network Interface Card (NIC) software definition. */ | 
         
| 2 | //***************************************************************************** | 
         ||
| 3 | // | 
         ||
| 4 | // File Name	: 'nic.h' | 
         ||
| 5 | // Title		: Network Interface Card (NIC) software definition | 
         ||
| 6 | // Author		: Pascal Stang | 
         ||
| 7 | // Created		: 8/22/2004 | 
         ||
| 8 | // Revised		: 7/3/2005 | 
         ||
| 9 | // Version		: 0.1 | 
         ||
| 10 | // Target MCU	: Atmel AVR series | 
         ||
| 11 | // Editor Tabs	: 4 | 
         ||
| 12 | // | 
         ||
| 13 | ///	\ingroup network | 
         ||
| 14 | /// \defgroup nic Network Interface Card (NIC) software definition (nic.h) | 
         ||
| 15 | ///	\code #include "net/nic.h" \endcode | 
         ||
| 16 | ///	\par Description | 
         ||
| 17 | ///		This is the software interface standard for network interface hardware | 
         ||
| 18 | ///		as used by AVRlib.  Drivers for network hardware must implement these | 
         ||
| 19 | ///		functions to allow upper network layers to initialize the interface, | 
         ||
| 20 | ///		and send and receive net traffic. | 
         ||
| 21 | // | 
         ||
| 22 | //	This code is distributed under the GNU Public License | 
         ||
| 23 | //		which can be found at http://www.gnu.org/licenses/gpl.txt | 
         ||
| 24 | //***************************************************************************** | 
         ||
| 25 | //@{ | 
         ||
| 26 | |||
| 27 | #ifndef NIC_H | 
         ||
| 28 | #define NIC_H | 
         ||
| 29 | |||
| 30 | #include <inttypes.h> | 
         ||
| 31 | |||
| 32 | //! Initialize network interface hardware. | 
         ||
| 33 | /// Reset and bring up network interface hardware. This function should leave | 
         ||
| 34 | /// the network interface ready to handle \c nicSend() and \c nicPoll() requests. | 
         ||
| 35 | /// \note For some hardware, this command will take a non-negligible amount of | 
         ||
| 36 | /// time (1-2 seconds). | 
         ||
| 37 | void nicInit(void); | 
         ||
| 38 | |||
| 39 | //! Send packet on network interface. | 
         ||
| 40 | /// Function accepts the length (in bytes) of the data to be sent, and a pointer | 
         ||
| 41 | ///	to the data.  This send command may assume an ethernet-like 802.3 header is at the | 
         ||
| 42 | /// beginning of the packet, and contains the packet addressing information. | 
         ||
| 43 | ///	See net.h documentation for ethernet header format. | 
         ||
| 44 | void nicSend(unsigned int len, unsigned char* packet); | 
         ||
| 45 | |||
| 46 | //! Check network interface; return next received packet if avaialable. | 
         ||
| 47 | /// Function accepts the maximum allowable packet length (in bytes), and a | 
         ||
| 48 | ///	pointer to the received packet buffer.  Return value is the length | 
         ||
| 49 | ///	(in bytes) of the packet recevied, or zero if no packet is available. | 
         ||
| 50 | /// Upper network layers may assume that an ethernet-like 802.3 header is at | 
         ||
| 51 | /// the beginning of the packet, and contains the packet addressing information. | 
         ||
| 52 | /// See net.h documentation for ethernet header format. | 
         ||
| 53 | unsigned int nicPoll(unsigned int maxlen, unsigned char* packet); | 
         ||
| 54 | |||
| 55 | //! Return the 48-bit hardware node (MAC) address of this network interface. | 
         ||
| 56 | ///	This function can return a MAC address read from the NIC hardware, if available. | 
         ||
| 57 | ///	If the hardware does not provide a MAC address, a software-defined address may be | 
         ||
| 58 | ///	returned.  It may be acceptable to return an address that is less than 48-bits. | 
         ||
| 59 | void nicGetMacAddress(uint8_t* macaddr); | 
         ||
| 60 | |||
| 61 | //! Set the 48-bit hardware node (MAC) address of this network interface. | 
         ||
| 62 | ///	This function may not be supported on all hardware. | 
         ||
| 63 | void nicSetMacAddress(uint8_t* macaddr); | 
         ||
| 64 | |||
| 65 | //! Print network interface hardware registers. | 
         ||
| 66 | /// Prints a formatted list of names and values of NIC registers for debugging | 
         ||
| 67 | /// purposes. | 
         ||
| 68 | inline void nicRegDump(void); | 
         ||
| 69 | |||
| 70 | #endif | 
         ||
| 71 | //@} | 
         
Powered by WebSVN v2.8.3