OpenCores
URL https://opencores.org/ocsvn/igor/igor/trunk

Subversion Repositories igor

[/] [igor/] [trunk/] [avr/] [eth-test/] [dev/] [nic.h] - Blame information for rev 4

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 4 atypic
/*! \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 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.