#ifndef _JOVE_HAL_MEMORY_H #define _JOVE_HAL_MEMORY_H 1 #include "obj.h" #include "api/syscall.h" typedef struct jove_obj_untyped { size_t limit; } jove_untyped_t; #define JOVE_UNTYPED_MINSIZE 0x10 void mem_setup_untyped(void); void *phys_tovirt(uintptr_t phys); uintptr_t untyped_address(jove_owned_obj_t *tgt); size_t untyped_size(jove_owned_obj_t *tgt); int untyped_split(jove_owned_obj_t *tgt, jove_owned_obj_t *dst, size_t bytes); int untyped_merge(jove_owned_obj_t *a, jove_owned_obj_t *b); int untyped_retype(jove_owned_obj_t *tgt, uint8_t newtype); int pagedir_map_frame( jove_owned_obj_t *tgt, jove_owned_obj_t *untyped_obj, uintptr_t vptr, struct syscall_pagedir_flags flg); int pagedir_map_table( jove_owned_obj_t *tgt, jove_owned_obj_t *untyped_obj, uintptr_t vptr, struct syscall_pagedir_flags flg); #endif