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. |