Merge origin/netpush (networking code) (XCC)
[akaros.git] / kern / arch / i686 / nic_common.c
1 /** @file
2  * @brief Common Nic Variables
3  *
4  * See Info below 
5  *
6  * @author Paul Pearce <pearce@eecs.berkeley.edu>
7  *
8  */
9
10 #ifdef __SHARC__
11 #pragma nosharc
12 #endif
13
14 #include <arch/nic_common.h>
15 #include <kmalloc.h>
16 #include <stdio.h>
17
18 // Global send_frame function pointer
19 // Means we can only have one network card per system right now...
20 int (*send_frame)(const char *data, size_t len);
21 int (*send_pbuf)(struct pbuf *p);
22 struct pbuf*  (*recv_pbuf)(void);
23
24
25 // Global variables for managing ethernet packets over a nic
26 // Again, since these are global for all network cards we are 
27 // limited to only one for now
28 unsigned char device_mac[6];
29 uint8_t eth_up = 0; 
30 uint32_t num_packet_buffers = 0;
31 char* packet_buffers[MAX_PACKET_BUFFERS];
32 uint32_t packet_buffers_sizes[MAX_PACKET_BUFFERS];
33 uint32_t packet_buffers_head = 0;
34 uint32_t packet_buffers_tail = 0;
35 spinlock_t packet_buffers_lock = SPINLOCK_INITIALIZER_IRQSAVE;
36