summaryrefslogblamecommitdiff
path: root/src/kernel/mem/mem.h
blob: 085d9ce81cda4d0410f5978491919f3f7fe75fa9 (plain) (tree)
1
2
3
4
5
6
7
8


                 


                                                                     
                  
                      


                                 

                             

                                    


                        
 
                           
                                
                                                                       
 
                                                                                                     


                                                                                          

      
#ifndef DEF_MEM_H
#define DEF_MEM_H

/*	mem.c provides the kernel's allocation and freeing functions.
	kmalloc_page and kfree_page are used mostly for paging. */

#include <types.h>
#include "_dlmalloc.h"

void* kmalloc_page(size_t *phys);
void kfree_page(void* page);

// Internal, used by dlmalloc
extern "C" void* ksbrk(size_t size);
extern "C" void kbrk(void* ptr);

#define kmalloc dlmalloc
#define kfree dlfree

extern bool _no_more_ksbrk;
extern size_t mem_placementAddr;
extern "C" size_t end;	//Symbol defined by linker : end of kernel code

extern "C" size_t k_highhalf_addr;	// Symbol defined by linker : high half position of the kerne
								// Should be at 0xC0000000
#define K_HIGHHALF_ADDR ((size_t)(&k_highhalf_addr))

#endif