Main Page | Directories | File List | Globals

init.c

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2003-2004 Lukasz Dembinski <dembol@nasa.com.pl>
00003  * All Rights Reserved
00004  * 
00005  * Date:        2004/01
00006  * Author:      Lukasz Dembinski
00007  * Info:        init.c file
00008  * Contact:     mailto: <dembol@nasa.com.pl>
00009  *
00010  */
00011 
00012 
00013 #include <agnix/agnix.h>
00014 #include <asm/core.h>
00015 #include <agnix/config.h>
00016 #include <agnix/sched.h>
00017 #include <agnix/console.h>
00018 #include <agnix/ioport.h>
00019 #include <agnix/adi/adi.h>
00020 #include <agnix/net/net.h>
00021 #include <agnix/crypt.h>
00022 #include <agnix/syscalls.h>
00023 #include <agnix/threads.h>
00024 #include <agnix/tasks.h>
00025 #include <agnix/queues.h>
00026 #include <agnix/memory.h>
00027 #include <agnix/resources.h>
00028 #include <agnix/data_structures.h>
00029 #include <asm/memtests.h>
00030 #include <agnix/counters.h>
00031 #include <agnix/timers.h>
00032 #include <agnix/terminal.h>
00033 #include <agnix/pm.h>
00034 #include <agnix/fastirq.h>
00035 #include <agnix/agnix_console.h>
00036 
00037 int errno;
00038 extern char *agnix_banner;
00039 extern char *agnix_version;
00040 extern char *agnix_license;
00041 extern char _text;
00042 extern char _end;
00043 
00044 void init_thread(void *data)
00045 {
00046     /* TODO */
00047 }
00048 
00049 void init_start(void)
00050 {
00051 //    create_kernel_thread("init", init_thread, (void *)2);
00052 }
00053 
00054 int clean_kernel(void)
00055 {
00056     printk("Cleaning kernel ...\n");
00057     
00058     bootmem_free_init();
00059 
00060     return 0;
00061 }
00062 
00063 void start_kernel(void)
00064 {
00065     terminals_init();
00066 
00067 #if CONFIG_DRIVERS_CHAR
00068     adi_console_init();
00069 #endif
00070 
00071     memalloc_init();
00072     resources_init();
00073     counters_init();
00074     data_structures_init();
00075     queues_init();
00076     adi_chips_init();
00077         
00078     i386_init();
00079 #if CONFIG_MEMTESTS
00080 //    do_memtests();
00081 #endif
00082     network_init();
00083     adi_drivers_init();
00084     fork_init();
00085     tasks_init();
00086     scheduler_init();
00087 
00088     __sti();
00089     cpu_calibrate_delay();
00090     __cli();
00091 
00092     fastirq_init();
00093     timers_init();
00094     crypt_init();
00095 
00096     init_start();
00097     pm_init();
00098     clean_kernel();
00099 
00100     printk(NEW_LINE);
00101     printk(agnix_banner);
00102     printk(agnix_version);
00103     printk(agnix_license);
00104     printk(NEW_LINE);
00105 
00106     agnix_console_start();
00107 
00108     __sti();
00109 
00110     for(;;);
00111 }
Dokumentacje wygenerowano programem Doxygen 1.4.2 dla projektu Agnix