Avoids nehalem keyboard issues, better monitors
[akaros.git] / kern / arch / i686 / ne2k.h
1 #ifndef ROS_INC_NE2K_H
2 #define ROS_INC_NE2K_H
3
4 #include <ros/common.h>
5 #include <trap.h>
6 #include <pmap.h>
7 #include <arch/pci.h>
8 #include <arch/nic_common.h>
9
10 #define ne2k_debug(...)  //cprintf(__VA_ARGS__)  
11 #define ne2k_interrupt_debug(...) //cprintf(__VA_ARGS__)  
12 #define ne2k_frame_debug(...) //cprintf(__VA_ARGS__)  
13
14 #define NIC_IRQ_CPU                     5
15
16 #define NE2K_VENDOR_ID 0x10EC
17 #define NE2K_DEV_ID 0x8029
18
19 void ne2k_init();
20 int ne2k_scan_pci();
21 void ne2k_configure_nic();
22 void ne2k_setup_interrupts();
23 void ne2k_interrupt_handler(trapframe_t *tf, void* data);
24 void ne2k_mem_alloc();
25 void ne2k_read_mac();
26 void ne2k_test_interrupts();
27 void ne2k_handle_rx_packet();
28 int ne2k_send_frame(const char *CT(len) data, size_t len);
29 char *CT(PACKET_HEADER_SIZE + len) ne2k_packet_wrap(const char *CT(len) data, size_t len);
30
31 #endif /* !ROS_INC_NE2K_H */