summaryrefslogtreecommitdiff
path: root/windhoek/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'windhoek/main.c')
-rw-r--r--windhoek/main.c88
1 files changed, 88 insertions, 0 deletions
diff --git a/windhoek/main.c b/windhoek/main.c
new file mode 100644
index 00000000..58786479
--- /dev/null
+++ b/windhoek/main.c
@@ -0,0 +1,88 @@
+/**
+ * \file windhoek/server/src/main.c
+ * \brief Windhoek main function
+ *
+ * \date 2008-01-29
+ * \author Bjoern Doebel <doebel@tudos.org>
+ *
+ * (c) 2008 Technische Universitaet Dresden
+ * This file is part of DROPS, which is distributed under the terms of the
+ * GNU General Public License 2. Please see the COPYING file for details.
+ */
+#include <asm/current.h>
+
+#include <linux/kernel.h>
+#include <linux/completion.h>
+#include <linux/init.h>
+#include <linux/delay.h>
+#include <linux/wait.h>
+#include <linux/sched.h>
+#include <linux/workqueue.h>
+#include <linux/interrupt.h>
+#include <linux/fs.h>
+#include <linux/genhd.h>
+#include <linux/bio.h>
+#include <linux/hdreg.h>
+#include <linux/list.h>
+#include <linux/buffer_head.h>
+
+#include <l4/dde/dde.h>
+#include <l4/dde/ddekit/initcall.h>
+#include <l4/dde/ddekit/assert.h>
+#include <l4/dde/linux26/dde26.h>
+
+#include <l4/util/parse_cmd.h>
+#include <l4/util/util.h>
+#include <l4/log/l4log.h>
+#include <l4/names/libnames.h>
+
+#include "windhoek_local.h"
+#include <l4/windhoek/server-internal-server.h>
+
+extern int bdev_cache_init(void);
+extern int ide_generic_init(void);
+extern int ide_cdrom_init(void);
+extern int genhd_device_init(void);
+
+l4_threadid_t main_thread = L4_INVALID_ID;
+
+int main(int argc, const char **argv)
+{
+ int err;
+
+ l4dde26_init();
+ l4dde26_process_init();
+ l4dde26_init_timers();
+ l4dde26_softirq_init();
+ printk("DDE base system initialized.\n");
+ err = bdev_cache_init();
+ printk("Initialized blockdev caches. (%x)\n", err);
+
+ gendisk_init();
+ client_state_init();
+ l4dde26_do_initcalls();
+
+ /* no generic driver, we use a dedicated one
+ * XXX: make this a fallback if no other driver is found */
+#if 0
+ err = ide_generic_init();
+ printk("Initialized generic IDE driver. (%x)\n", err);
+#endif
+
+
+ err = names_register("windhoek");
+ printk("registered at names. \n", err);
+
+ main_thread = l4_myself();
+
+ printk("+----------------------------------------+\n");
+ printk("| Windhoek block server |\n");
+ printk("| ready to rumble.... |\n");
+ printk("+----------------------------------------+\n");
+
+ windhoek_server_server_loop(NULL);
+
+ l4_sleep_forever();
+
+ return 0;
+}