32 lines
1.2 KiB
C
32 lines
1.2 KiB
C
#ifndef __MEMORY_H
|
|
#define __MEMORY_H
|
|
|
|
#include "multiboot.h"
|
|
#include "schedule.h"
|
|
|
|
struct mem_info {
|
|
unsigned int used;
|
|
unsigned int total;
|
|
};
|
|
extern char *mem_alloc_pages(int count);
|
|
extern void init_mem(multiboot_info_t *mbd);
|
|
extern void init_paging();
|
|
extern unsigned int mem_usr_sbrk(int amount);
|
|
extern int mem_map_krnl_page(unsigned int virt);
|
|
extern int mem_map_user_page(unsigned int virt);
|
|
extern unsigned int *mem_new_pagedirectory(struct task_t *task);
|
|
extern void *malloc(unsigned int size);
|
|
extern void free(void *ptr);
|
|
extern void *realloc(void *ptr, unsigned int size);
|
|
extern unsigned char *mem_map_framebuffer(unsigned int phys, unsigned int fb_length);
|
|
extern char *mem_alloc(void);
|
|
extern void mem_free(char *blk, char *caller);
|
|
extern unsigned char *mem_map_page(unsigned int phys, unsigned int virt, int flags);
|
|
extern unsigned char *mem_map_page_in(unsigned int phys, unsigned int virt, unsigned int cr3, int flags);
|
|
extern void mem_clear_user_pages();
|
|
extern int mem_cpy_pages(struct task_t *old_task, struct task_t *new_task);
|
|
extern void mem_free_page_dir(unsigned int *user_page_directory);
|
|
extern unsigned int mem_pci_sbrk(unsigned int amount);
|
|
extern unsigned int mem_get_info(struct mem_info *info);
|
|
#endif
|