unsigned char buffer [TUN_BUFFER_SIZE];
unsigned long read_size;
struct tun_buffer_s* next;
-} a_tun_buffer;
+} tun_buffer_t;
typedef struct tap_win32_overlapped {
HANDLE handle;
CRITICAL_SECTION free_list_cs;
OVERLAPPED read_overlapped;
OVERLAPPED write_overlapped;
- a_tun_buffer buffers[TUN_MAX_BUFFER_COUNT];
- a_tun_buffer* free_list;
- a_tun_buffer* output_queue_front;
- a_tun_buffer* output_queue_back;
-} a_tap_win32_overlapped;
+ tun_buffer_t buffers[TUN_MAX_BUFFER_COUNT];
+ tun_buffer_t* free_list;
+ tun_buffer_t* output_queue_front;
+ tun_buffer_t* output_queue_back;
+} tap_win32_overlapped_t;
-static a_tap_win32_overlapped tap_overlapped;
+static tap_win32_overlapped_t tap_overlapped;
-static a_tun_buffer* get_buffer_from_free_list(a_tap_win32_overlapped* const overlapped)
+static tun_buffer_t* get_buffer_from_free_list(tap_win32_overlapped_t* const overlapped)
{
- a_tun_buffer* buffer = NULL;
+ tun_buffer_t* buffer = NULL;
WaitForSingleObject(overlapped->free_list_semaphore, INFINITE);
EnterCriticalSection(&overlapped->free_list_cs);
buffer = overlapped->free_list;
return buffer;
}
-static void put_buffer_on_free_list(a_tap_win32_overlapped* const overlapped, a_tun_buffer* const buffer)
+static void put_buffer_on_free_list(tap_win32_overlapped_t* const overlapped, tun_buffer_t* const buffer)
{
EnterCriticalSection(&overlapped->free_list_cs);
buffer->next = overlapped->free_list;
ReleaseSemaphore(overlapped->free_list_semaphore, 1, NULL);
}
-static a_tun_buffer* get_buffer_from_output_queue(a_tap_win32_overlapped* const overlapped, const int block)
+static tun_buffer_t* get_buffer_from_output_queue(tap_win32_overlapped_t* const overlapped, const int block)
{
- a_tun_buffer* buffer = NULL;
+ tun_buffer_t* buffer = NULL;
DWORD result, timeout = block ? INFINITE : 0L;
// Non-blocking call
return buffer;
}
-static a_tun_buffer* get_buffer_from_output_queue_immediate (a_tap_win32_overlapped* const overlapped)
+static tun_buffer_t* get_buffer_from_output_queue_immediate (tap_win32_overlapped_t* const overlapped)
{
return get_buffer_from_output_queue(overlapped, 0);
}
-static void put_buffer_on_output_queue(a_tap_win32_overlapped* const overlapped, a_tun_buffer* const buffer)
+static void put_buffer_on_output_queue(tap_win32_overlapped_t* const overlapped, tun_buffer_t* const buffer)
{
EnterCriticalSection(&overlapped->output_queue_cs);
&status, sizeof (status), &len, NULL);
}
-static void tap_win32_overlapped_init(a_tap_win32_overlapped* const overlapped, const HANDLE handle)
+static void tap_win32_overlapped_init(tap_win32_overlapped_t* const overlapped, const HANDLE handle)
{
overlapped->handle = handle;
{
unsigned index;
for(index = 0; index < TUN_MAX_BUFFER_COUNT; index++) {
- a_tun_buffer* element = &overlapped->buffers[index];
+ tun_buffer_t* element = &overlapped->buffers[index];
element->next = overlapped->free_list;
overlapped->free_list = element;
}
fprintf(stderr, "error creating tap_semaphore.\n");
}
-static int tap_win32_write(a_tap_win32_overlapped *overlapped,
+static int tap_win32_write(tap_win32_overlapped_t *overlapped,
const void *buffer, unsigned long size)
{
unsigned long write_size;
static DWORD WINAPI tap_win32_thread_entry(LPVOID param)
{
- a_tap_win32_overlapped *overlapped = (a_tap_win32_overlapped*)param;
+ tap_win32_overlapped_t *overlapped = (tap_win32_overlapped_t*)param;
unsigned long read_size;
BOOL result;
DWORD dwError;
- a_tun_buffer* buffer = get_buffer_from_free_list(overlapped);
+ tun_buffer_t* buffer = get_buffer_from_free_list(overlapped);
for (;;) {
return 0;
}
-static int tap_win32_read(a_tap_win32_overlapped *overlapped,
+static int tap_win32_read(tap_win32_overlapped_t *overlapped,
uint8_t **pbuf, int max_size)
{
int size = 0;
- a_tun_buffer* buffer = get_buffer_from_output_queue_immediate(overlapped);
+ tun_buffer_t* buffer = get_buffer_from_output_queue_immediate(overlapped);
if(buffer != NULL) {
*pbuf = buffer->buffer;
return size;
}
-static void tap_win32_free_buffer(a_tap_win32_overlapped *overlapped,
+static void tap_win32_free_buffer(tap_win32_overlapped_t *overlapped,
uint8_t *pbuf)
{
- a_tun_buffer* buffer = (a_tun_buffer*)pbuf;
+ tun_buffer_t* buffer = (tun_buffer_t*)pbuf;
put_buffer_on_free_list(overlapped, buffer);
}
-static int tap_win32_open(a_tap_win32_overlapped **phandle,
+static int tap_win32_open(tap_win32_overlapped_t **phandle,
const char *prefered_name)
{
char device_path[256];
typedef struct TAPState {
VLANClientState *vc;
- a_tap_win32_overlapped *handle;
+ tap_win32_overlapped_t *handle;
} TAPState;
static void tap_cleanup(VLANClientState *vc)