My Kernel v0.1.0
memory.h File Reference
#include <kernel/arch/i686/memory.h>
#include <utils/compiler.h>
#include <utils/math.h>
#include <kernel/types.h>
Include dependency graph for memory.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define KERNEL_STACK_SIZE   0x4000U
 
#define USER_STACK_SIZE   0x10000U
 
#define KERNEL_PHYSICAL_START   0x00100000UL
 Physical address our kernel is loaded at.
 
#define KERNEL_HIGHER_HALF_OFFSET   0xC0000000UL
 Offset used fo relocation when linking our kernel.
 
#define KERNEL_HIGHER_HALF_PHYSICAL(_virtual)    ((u32)(_virtual) - KERNEL_HIGHER_HALF_OFFSET)
 Compute the physical equivalent of a higher half relocated virtual address.
 
#define KERNEL_HIGHER_HALF_VIRTUAL(_physical)    ((u32)(_physical) + KERNEL_HIGHER_HALF_OFFSET)
 Compute the higher half virtual equivalent of a physical address.
 
#define VMM_RESERVED_END   0x100000UL
 Size of the area reserved for allocating memory management structures. More...
 
#define NULL_PAGE_SIZE   PAGE_SIZE
 A single page of memory reserved to detect NULL references.
 
#define KERNEL_VMM_RESERVED_END   (PAGE_TABLES_START)
 Location of the reserved range for the kernel's VMM structure kernel_vmm.
 
#define KERNEL_VMM_RESERVED_START   (KERNEL_VMM_RESERVED_END - VMM_RESERVED_SIZE)
 Location of the reserved range for the kernel's VMM structure kernel_vmm.
 

Variables

u32 _kernel_code_start
 Address of the byte located just before the end of the kernel's code. More...
 
u32 _kernel_code_end
 Address of the byte located just after the end of the kernel's code. More...