blob: 79154280f03fb84b01033c5e2074e08a848d9320 [file] [log] [blame]
#ifndef ROS_INC_NE2K_H
#define ROS_INC_NE2K_H
#include <ros/common.h>
#include <trap.h>
#include <pmap.h>
#include <arch/pci.h>
#include <net/nic_common.h>
#define ne2k_debug(...) //cprintf(__VA_ARGS__)
#define ne2k_interrupt_debug(...) //cprintf(__VA_ARGS__)
#define ne2k_frame_debug(...) //cprintf(__VA_ARGS__)
#define NIC_IRQ_CPU 5
#define NE2K_VENDOR_ID 0x10EC
#define NE2K_DEV_ID 0x8029
void ne2k_init();
int ne2k_scan_pci();
void ne2k_configure_nic();
void ne2k_setup_interrupts();
void ne2k_interrupt_handler(struct hw_trapframe *hw_tf, void *data);
void ne2k_mem_alloc();
void ne2k_read_mac();
void ne2k_test_interrupts();
void ne2k_handle_rx_packet();
int ne2k_send_frame(const char *CT(len) data, size_t len);
char *CT(PACKET_HEADER_SIZE + len) ne2k_packet_wrap(const char *CT(len) data, size_t len);
#endif /* !ROS_INC_NE2K_H */