Main Page | Directories | File List | Globals

alloc.c

Go to the documentation of this file.
00001 /*
00002  * kernel_super/memory/alloc.c
00003  *
00004  * Copyright (c) 2003-2004 Lukasz Dembinski <dembol@nasa.com.pl>
00005  * All Rights Reserved
00006  * 
00007  * Date:        2004/01
00008  * Author:      Lukasz Dembinski
00009  * Info:        alloc.c core file
00010  * Contact:     mailto: <dembol@nasa.com.pl>
00011  *
00012  */
00013  
00014 #include <agnix/init.h>
00015 #include <asm/types.h>
00016 #include <asm/bitops.h>
00017 #include <asm/memory.h>
00018 #include <asm/paging.h>
00019 
00020 #include <agnix/memory.h>
00021 #include <agnix/bugs.h>
00022 #include <agnix/console.h>
00023 
00024 #define MOD_NAME        "MEM: "
00025 #define NO_PAGE         0
00026 
00027 extern char _end;
00028 extern struct main_memory_s main_memory;
00029 
00030 void (*put_free_pages_fn)(u32 addr, u8 order);
00031 u32  (*get_free_pages_fn)(u8 order);
00032 void (*put_free_dma_pages_fn)(u32 addr, u8 order);
00033 u32  (*get_free_dma_pages_fn)(u8 order);
00034 
00035 struct allocator_s main_alloc;
00036 
00037 void put_free_pages(u32 addr, u8 order)
00038 {
00039     return (*put_free_pages_fn)(addr, order);
00040 }
00041 
00042 u32 get_free_pages(u8 order)
00043 {
00044     return (*get_free_pages_fn)(order);
00045 }
00046 
00047 void put_free_dma_pages(u32 addr, u8 order)
00048 {
00049     return (*put_free_dma_pages_fn)(addr, order);
00050 }
00051 
00052 u32 get_free_dma_pages(u8 order)
00053 {
00054     return (*get_free_dma_pages_fn)(order);
00055 }
00056 
00057 int __init memalloc_init(void)
00058 {
00059     bootmem_init_bh();
00060     bin_alloc_init((u32 *)&_end, 0, main_memory.mem_size);
00061     bootmem_init_dh();
00062     buddy_alloc_init();
00063     
00064     return 0;
00065 }
Dokumentacje wygenerowano programem Doxygen 1.4.2 dla projektu Agnix