DP8390 network interface core implementation. More...
#include <assert.h>#include <errno.h>#include "../../include/byteorder.h"#include "../../structures/packet/packet.h"#include "../../structures/packet/packet_client.h"#include "../netif.h"#include "dp8390_drv.h"#include "dp8390_port.h"#include "local.h"#include "dp8390.h"
Defines | |
| #define | wdeth_probe(dep) (0) |
| #define | ne_probe(dep) (0) |
| #define | el2_probe(dep) (0) |
| #define | CR_EXTRA CR_STA |
Functions | |
| int | queue_packet (dpeth_t *dep, packet_t packet) |
| Queues the outgoing packet. | |
| static void | outsb (port_t port, void *buf, size_t size) |
| Reads a memory block byte by byte. | |
| static void | outsw (port_t port, void *buf, size_t size) |
| Reads a memory block word by word. | |
| _PROTOTYPE (static void dp_init,(dpeth_t *dep)) | |
| _PROTOTYPE (static void dp_getblock,(dpeth_t *dep, int page, size_t offset, size_t size, void *dst)) | |
| _PROTOTYPE (static int dp_pkt2user,(dpeth_t *dep, int page, int length)) | |
| _PROTOTYPE (static void dp_user2nic,(dpeth_t *dep, iovec_dat_t *iovp, vir_bytes offset, int nic_addr, vir_bytes count)) | |
| _PROTOTYPE (static void dp_nic2user,(dpeth_t *dep, int nic_addr, iovec_dat_t *iovp, vir_bytes offset, vir_bytes count)) | |
| _PROTOTYPE (static void dp_next_iovec,(iovec_dat_t *iovp)) | |
| _PROTOTYPE (static void reply,(dpeth_t *dep, int err, int may_block)) | |
| _PROTOTYPE (static void get_userdata,(int user_proc, vir_bytes user_addr, vir_bytes count, void *loc_addr)) | |
| _PROTOTYPE (static void insb,(port_t port, void *buf, size_t size)) | |
| int | do_probe (dpeth_t *dep) |
| Probes and initializes the network interface. | |
| void | dp8390_dump (dpeth_t *dep) |
| Prints out network interface information. | |
| int | do_init (dpeth_t *dep, int mode) |
| Initializes and/or starts the network interface. | |
| void | do_stop (dpeth_t *dep) |
| Stops the network interface. | |
| int | do_pwrite (dpeth_t *dep, packet_t packet, int from_int) |
| Sends a packet. | |
| void | dp_init (dpeth_t *dep) |
| static void | dp_reinit (dpeth_t *dep) |
| static void | dp_reset (dpeth_t *dep) |
| void | dp_check_ints (dpeth_t *dep, int isr) |
| Processes the interrupt. | |
| static void | dp_recv (dpeth_t *dep) |
| static void | dp_send (dpeth_t *dep) |
| static void | dp_getblock (dpeth_t *dep, int page, size_t offset, size_t size, void *dst) |
| static void | dp_pio8_getblock (dpeth_t *dep, int page, size_t offset, size_t size, void *dst) |
| static void | dp_pio16_getblock (dpeth_t *dep, int page, size_t offset, size_t size, void *dst) |
| static int | dp_pkt2user (dpeth_t *dep, int page, int length) |
| static void | dp_user2nic (dpeth_t *dep, iovec_dat_t *iovp, vir_bytes offset, int nic_addr, vir_bytes count) |
| static void | dp_pio8_user2nic (dpeth_t *dep, iovec_dat_t *iovp, vir_bytes offset, int nic_addr, vir_bytes count) |
| static void | dp_pio16_user2nic (dpeth_t *dep, iovec_dat_t *iovp, vir_bytes offset, int nic_addr, vir_bytes count) |
| static void | dp_nic2user (dpeth_t *dep, int nic_addr, iovec_dat_t *iovp, vir_bytes offset, vir_bytes count) |
| static void | dp_pio8_nic2user (dpeth_t *dep, int nic_addr, iovec_dat_t *iovp, vir_bytes offset, vir_bytes count) |
| static void | dp_pio16_nic2user (dpeth_t *dep, int nic_addr, iovec_dat_t *iovp, vir_bytes offset, vir_bytes count) |
| static void | dp_next_iovec (iovec_dat_t *iovp) |
| static void | conf_hw (dpeth_t *dep) |
| static void | map_hw_buffer (dpeth_t *dep) |
| static void | reply (dpeth_t *dep, int err, int may_block) |
| static void | get_userdata (int user_proc, vir_bytes user_addr, vir_bytes count, void *loc_addr) |
| static void | insb (port_t port, void *buf, size_t size) |
| static void | insw (port_t port, void *buf, size_t size) |
DP8390 network interface core implementation.
1.6.1