nginx-0.0.1-2003-02-26-23:21:43 import
diff --git a/src/event/modules/ngx_aio_module.c b/src/event/modules/ngx_aio_module.c
index b18d492..f2d0e83 100644
--- a/src/event/modules/ngx_aio_module.c
+++ b/src/event/modules/ngx_aio_module.c
@@ -1,4 +1,39 @@
 
+#include <ngx_config.h>
+
+#include <ngx_core.h>
+#include <ngx_types.h>
+#include <ngx_log.h>
+#include <ngx_connection.h>
+#include <ngx_event.h>
+#include <ngx_event_timer.h>
+
+#if (HAVE_KQUEUE)
+#include <ngx_kqueue_module.h>
+#endif
+
+
+int ngx_aio_init(int max_connections, ngx_log_t *log)
+{
+#if (HAVE_KQUEUE)
+
+    int  rc;
+
+    rc = ngx_kqueue_init(max_connections, log);
+
+    ngx_event_flags = NGX_HAVE_AIO_EVENT;
+    ngx_write_chain_proc = ngx_aio_write_chain;
+
+    return rc;
+
+#endif
+}
+
+
+
+
+
+#if 0
 /* 1 */
 int ngx_posix_aio_process_events(ngx_log_t *log)
 {
@@ -47,4 +82,4 @@
 {
     push siginfo->si_value.sival_ptr
 }
-
+#endif
diff --git a/src/event/modules/ngx_aio_module.h b/src/event/modules/ngx_aio_module.h
new file mode 100644
index 0000000..71eb9e4
--- /dev/null
+++ b/src/event/modules/ngx_aio_module.h
@@ -0,0 +1,14 @@
+#ifndef _NGX_AIO_MODULE_H_INCLUDED_
+#define _NGX_AIO_MODULE_H_INCLUDED_
+
+
+#include <ngx_types.h>
+#include <ngx_log.h>
+#include <ngx_event.h>
+
+
+int ngx_aio_init(int max_connections, ngx_log_t *log);
+int ngx_aio_process_events(ngx_log_t *log);
+
+
+#endif /* _NGX_AIO_MODULE_H_INCLUDED_ */
diff --git a/src/event/modules/ngx_kqueue_module.c b/src/event/modules/ngx_kqueue_module.c
index 501b496..fc0e34f 100644
--- a/src/event/modules/ngx_kqueue_module.c
+++ b/src/event/modules/ngx_kqueue_module.c
@@ -79,6 +79,8 @@
 #endif
                      |NGX_HAVE_KQUEUE_EVENT;
 
+    ngx_write_chain_proc = ngx_freebsd_write_chain;
+
 #endif
 
 #endif
diff --git a/src/event/ngx_event.c b/src/event/ngx_event.c
index 84e5e29..1310f34 100644
--- a/src/event/ngx_event.c
+++ b/src/event/ngx_event.c
@@ -25,6 +25,10 @@
 #include <ngx_kqueue_module.h>
 #endif
 
+#if (HAVE_AIO)
+#include <ngx_aio_module.h>
+#endif
+
 #if (HAVE_IOCP)
 #include <ngx_event_acceptex.h>
 #include <ngx_iocp_module.h>
@@ -54,6 +58,9 @@
 #if (HAVE_KQUEUE)
     ngx_kqueue_init,
 #endif
+#if (HAVE_AIO)
+    ngx_aio_init,
+#endif
 #if (HAVE_IOCP)
     ngx_iocp_init
 #endif
@@ -83,6 +90,9 @@
     ngx_event_type = NGX_DEVPOLL_EVENT_N;
 #endif
 #if 0
+    ngx_event_type = NGX_AIO_EVENT_N;
+#endif
+#if 0
     ngx_event_type = NGX_IOCP_EVENT_N;
 #endif
 
diff --git a/src/event/ngx_event.h b/src/event/ngx_event.h
index 450fbe2..6af76ff 100644
--- a/src/event/ngx_event.h
+++ b/src/event/ngx_event.h
@@ -116,6 +116,9 @@
 #if (HAVE_KQUEUE)
     NGX_KQUEUE_EVENT_N,
 #endif
+#if (HAVE_AIO)
+    NGX_AIO_EVENT_N,
+#endif
 #if (HAVE_IOCP)
     NGX_IOCP_EVENT_N,
 #endif
diff --git a/src/event/ngx_event_accept.c b/src/event/ngx_event_accept.c
index 941f57c..65d99da 100644
--- a/src/event/ngx_event_accept.c
+++ b/src/event/ngx_event_accept.c
@@ -156,6 +156,9 @@
 
 #elif (HAVE_KQUEUE)
 
+/*
+        if (ngx_event_type == NGX_HAVE_AIO_EVENT  or NGX_HAVE_KQUEUE_EVENT) {
+*/
         if (ngx_event_type == NGX_HAVE_KQUEUE_EVENT) {
             ev->available--;
         }
diff --git a/src/event/ngx_event_aio_write.c b/src/event/ngx_event_aio_write.c
index 00da4f4..72d35c4 100644
--- a/src/event/ngx_event_aio_write.c
+++ b/src/event/ngx_event_aio_write.c
@@ -5,6 +5,7 @@
 #include <ngx_log.h>
 #include <ngx_recv.h>
 #include <ngx_connection.h>
+#include <ngx_event.h>
 
 #if (HAVE_KQUEUE)
 #include <ngx_kqueue_module.h>