#define __LUNAIX_PMM_H
// Physical memory manager
-#include <lunaix/process.h>
+#include <lunaix/types.h>
#include <stddef.h>
#include <stdint.h>
struct pp_struct
{
- pid_t owner;
u32_t ref_counts;
pp_attr_t attr;
};
* @param ppn
*/
void
-pmm_mark_page_occupied(pid_t owner, ptr_t ppn, pp_attr_t attr);
+pmm_mark_page_occupied(ptr_t ppn, pp_attr_t attr);
/**
* @brief 标注多个连续的物理页为可用
* @param page_count 数量
*/
void
-pmm_mark_chunk_occupied(pid_t owner,
- u32_t start_ppn,
+pmm_mark_chunk_occupied(u32_t start_ppn,
size_t page_count,
pp_attr_t attr);
* @return void* 可用的页地址,否则为 NULL
*/
ptr_t
-pmm_alloc_page(pid_t owner, pp_attr_t attr);
+pmm_alloc_page(pp_attr_t attr);
/**
* @brief 分配一个连续的物理内存区域
* @return ptr_t
*/
ptr_t
-pmm_alloc_cpage(pid_t owner, size_t num_pages, pp_attr_t attr);
+pmm_alloc_cpage(size_t num_pages, pp_attr_t attr);
/**
* @brief 初始化物理内存管理器
* @return 是否成功
*/
int
-pmm_free_page(pid_t owner, ptr_t page);
+pmm_free_page(ptr_t page);
int
-pmm_ref_page(pid_t owner, ptr_t page);
+pmm_ref_page(ptr_t page);
#endif /* __LUNAIX_PMM_H */