feature: fork() (to be tested)

This commit is contained in:
0x35c
2025-11-30 13:32:24 +01:00
parent 6ff044c07a
commit cde3702132
16 changed files with 113 additions and 36 deletions

View File

@@ -75,10 +75,10 @@ int new_vzone(block_type_t type, size_t size);
int new_kzone(block_type_t type, size_t size);
/*----------------------------*/
void *vmalloc(size_t size);
void vfree(void *ptr);
void *umalloc(size_t size);
void ufree(void *ptr);
void *vrealloc(void *ptr, size_t size);
void show_valloc_mem(void);
void show_ualloc_mem(void);
size_t vsize(void *virt_addr);
void *kmalloc(size_t size);
void kfree(void *ptr);

View File

@@ -29,7 +29,8 @@
#define PDE_MULTIBOOT 1020
#define GET_PTE(pd_index, pt_index) \
((uint32_t *)(VIRT_PT_BASE + ((uint32_t) pd_index) * 4096 + ((uint32_t) pt_index) * 4))
((uint32_t *)(VIRT_PT_BASE + ((uint32_t)pd_index) * 4096 + \
((uint32_t)pt_index) * 4))
#define PTE2VA(pd_index, pt_index) \
((uint32_t *)((((uint32_t)pd_index * 1024) + (uint32_t)pt_index) * \
@@ -74,6 +75,6 @@ void init_memory(void);
void *alloc_frame(void);
int free_frame(void *frame_ptr);
void *kalloc_pages(size_t nb_pages);
void *valloc_pages(size_t nb_pages);
int kfree_pages(void *page_ptr, size_t size);
int vfree_pages(void *page_ptr, size_t size);
void *ualloc_pages(size_t nb_pages);
int kfree_pages(void *page_ptr, size_t nb_pages);
int ufree_pages(void *page_ptr, size_t nb_pages);

View File

@@ -28,5 +28,5 @@ struct pcb {
void switch_process(struct pcb *next_pcb);
struct pcb *create_process(uid_t uid);
// int8_t create_kernel_process(void);
void remove_process(struct pcb *pcb);
pid_t fork(void);