Subversion Repositories HelenOS

Compare Revisions

Ignore whitespace Rev 4755 → Rev 4756

/branches/network/uspace/srv/net/netif/dp8390/dp8390.h
21,7 → 21,7
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* Changes:
* 2009 Lukas Mejdrech ported to HelenOS
* 2009 ported to HelenOS, Lukas Mejdrech
*/
 
/** @addtogroup dp8390
29,7 → 29,7
*/
 
/** @file
* \todo
* DP8390 network interface definitions.
*/
 
#ifndef __NET_NETIF_DP8390_H__
40,6 → 40,8
#include "dp8390_port.h"
#include "local.h"
 
/** Input/output size.
*/
#define DP8390_IO_SIZE 0x01f
 
/*
196,21 → 198,55
#define RSR_DIS 0x40 /* Receiver Disabled */
#define RSR_DFR 0x80 /* In later manuals: Deferring */
 
 
/** Type definition of the receive header.
*/
typedef struct dp_rcvhdr
{
u8_t dr_status; /* Copy of rsr */
u8_t dr_next; /* Pointer to next packet */
u8_t dr_rbcl; /* Receive Byte Count Low */
u8_t dr_rbch; /* Receive Byte Count High */
/** Copy of rsr.
*/
u8_t dr_status;
/** Pointer to next packet.
*/
u8_t dr_next;
/** Receive Byte Count Low.
*/
u8_t dr_rbcl;
/** Receive Byte Count High.
*/
u8_t dr_rbch;
} dp_rcvhdr_t;
 
/** Page size.
*/
#define DP_PAGESIZE 256
 
/* Some macros to simplify accessing the dp8390 */
/** Reads 1 byte from the zero page register.
* @param[in] dep The network interface structure.
* @param[in] reg The register offset.
* @returns The read value.
*/
#define inb_reg0(dep, reg) (inb(dep->de_dp8390_port+reg))
 
/** Writes 1 byte zero page register.
* @param[in] dep The network interface structure.
* @param[in] reg The register offset.
* @param[in] data The value to be written.
*/
#define outb_reg0(dep, reg, data) (outb(dep->de_dp8390_port+reg, data))
 
/** Reads 1 byte from the first page register.
* @param[in] dep The network interface structure.
* @param[in] reg The register offset.
* @returns The read value.
*/
#define inb_reg1(dep, reg) (inb(dep->de_dp8390_port+reg))
 
/** Writes 1 byte first page register.
* @param[in] dep The network interface structure.
* @param[in] reg The register offset.
* @param[in] data The value to be written.
*/
#define outb_reg1(dep, reg, data) (outb(dep->de_dp8390_port+reg, data))
 
/* Software interface to the dp8390 driver */
274,14 → 310,18
 
typedef struct dpeth
{
/* Packet send queue.
*/
/** Outgoing packets queue.
*/
packet_t packet_queue;
/** Outgoing packets count.
*/
int packet_count;
 
/* Packet receive queue.
*/
/** Received packets queue.
*/
packet_t received_queue;
/** Received packets count.
*/
int received_count;
 
/* The de_base_port field is the starting point of the probe.