Rewrote most of newlib_backend to be more "robust". Added sycall server to tree
[akaros.git] / kern / include / ne2k.h
1 #ifndef ROS_INC_NE2K_H
2 #define ROS_INC_NE2K_H
3
4 #include <arch/types.h>
5 #include <trap.h>
6 #include <pmap.h>
7
8 #define ne2k_debug(...)  cprintf(__VA_ARGS__)  
9 #define ne2k_interrupt_debug(...) //cprintf(__VA_ARGS__)  
10 #define ne2k_frame_debug(...)  cprintf(__VA_ARGS__)  
11
12 #define NIC_IRQ_CPU                     5
13
14 // Macro for formatting PCI Configuration Address queries
15 #define MK_CONFIG_ADDR(BUS, DEV, FUNC, REG) (unsigned long)( (BUS << 16) | (DEV << 11) | \
16                                                              (FUNC << 8) | REG  | \
17                                                              ((uint32_t)0x80000000))
18 #define NE2K_VENDOR_ID 0x10EC
19 #define NE2K_DEV_ID 0x8029
20
21 void ne2k_init();
22 int ne2k_scan_pci();
23 void ne2k_configure_nic();
24 void ne2k_setup_interrupts();
25 void ne2k_interrupt_handler(trapframe_t *tf, void* data);
26
27
28
29 #endif /* !ROS_INC_NE2K_H */