git://scm.lunaixsky.com
/
lunaix-os.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
refactor: one more step towards arch-agnostic design
[lunaix-os.git]
/
lunaix-os
/
includes
/
lunaix
/
mm
/
pmm.h
diff --git
a/lunaix-os/includes/lunaix/mm/pmm.h
b/lunaix-os/includes/lunaix/mm/pmm.h
index 44aa99d7b0f2e8120b970ecc1343aedd45031320..e0eab12e449391d6acc8e47de4a19dd3f27cbc56 100644
(file)
--- a/
lunaix-os/includes/lunaix/mm/pmm.h
+++ b/
lunaix-os/includes/lunaix/mm/pmm.h
@@
-2,7
+2,7
@@
#define __LUNAIX_PMM_H
// Physical memory manager
#define __LUNAIX_PMM_H
// Physical memory manager
-#include <lunaix/
proces
s.h>
+#include <lunaix/
type
s.h>
#include <stddef.h>
#include <stdint.h>
#include <stddef.h>
#include <stdint.h>
@@
-21,12
+21,12
@@
*/
#define PP_FGLOCKED 0x2
*/
#define PP_FGLOCKED 0x2
-typedef u
int
32_t pp_attr_t;
+typedef u32_t pp_attr_t;
struct pp_struct
{
pid_t owner;
struct pp_struct
{
pid_t owner;
- u
int
32_t ref_counts;
+ u32_t ref_counts;
pp_attr_t attr;
};
pp_attr_t attr;
};
@@
-36,7
+36,7
@@
struct pp_struct
* @param ppn page number
*/
void
* @param ppn page number
*/
void
-pmm_mark_page_free(
uint
ptr_t ppn);
+pmm_mark_page_free(ptr_t ppn);
/**
* @brief 标注物理页为已占用
/**
* @brief 标注物理页为已占用
@@
-44,7
+44,7
@@
pmm_mark_page_free(uintptr_t ppn);
* @param ppn
*/
void
* @param ppn
*/
void
-pmm_mark_page_occupied(pid_t owner,
uint
ptr_t ppn, pp_attr_t attr);
+pmm_mark_page_occupied(pid_t owner, ptr_t ppn, pp_attr_t attr);
/**
* @brief 标注多个连续的物理页为可用
/**
* @brief 标注多个连续的物理页为可用
@@
-53,7
+53,7
@@
pmm_mark_page_occupied(pid_t owner, uintptr_t ppn, pp_attr_t attr);
* @param page_count 数量
*/
void
* @param page_count 数量
*/
void
-pmm_mark_chunk_free(
uint
ptr_t start_ppn, size_t page_count);
+pmm_mark_chunk_free(ptr_t start_ppn, size_t page_count);
/**
* @brief 标注多个连续的物理页为已占用
/**
* @brief 标注多个连续的物理页为已占用
@@
-63,7
+63,7
@@
pmm_mark_chunk_free(uintptr_t start_ppn, size_t page_count);
*/
void
pmm_mark_chunk_occupied(pid_t owner,
*/
void
pmm_mark_chunk_occupied(pid_t owner,
- u
intptr
_t start_ppn,
+ u
32
_t start_ppn,
size_t page_count,
pp_attr_t attr);
size_t page_count,
pp_attr_t attr);
@@
-72,7
+72,7
@@
pmm_mark_chunk_occupied(pid_t owner,
*
* @return void* 可用的页地址,否则为 NULL
*/
*
* @return void* 可用的页地址,否则为 NULL
*/
-void*
+ptr_t
pmm_alloc_page(pid_t owner, pp_attr_t attr);
/**
pmm_alloc_page(pid_t owner, pp_attr_t attr);
/**
@@
-81,9
+81,9
@@
pmm_alloc_page(pid_t owner, pp_attr_t attr);
* @param owner
* @param num_pages 区域大小,单位为页
* @param attr
* @param owner
* @param num_pages 区域大小,单位为页
* @param attr
- * @return
void*
+ * @return
ptr_t
*/
*/
-void*
+ptr_t
pmm_alloc_cpage(pid_t owner, size_t num_pages, pp_attr_t attr);
/**
pmm_alloc_cpage(pid_t owner, size_t num_pages, pp_attr_t attr);
/**
@@
-92,10
+92,10
@@
pmm_alloc_cpage(pid_t owner, size_t num_pages, pp_attr_t attr);
* @param mem_upper_lim 最大可用内存地址
*/
void
* @param mem_upper_lim 最大可用内存地址
*/
void
-pmm_init(
uint
ptr_t mem_upper_lim);
+pmm_init(ptr_t mem_upper_lim);
struct pp_struct*
struct pp_struct*
-pmm_query(
void*
pa);
+pmm_query(
ptr_t
pa);
/**
* @brief 释放一个已分配的物理页,假若页地址不存在,则无操作。
/**
* @brief 释放一个已分配的物理页,假若页地址不存在,则无操作。
@@
-104,9
+104,9
@@
pmm_query(void* pa);
* @return 是否成功
*/
int
* @return 是否成功
*/
int
-pmm_free_page(pid_t owner,
void*
page);
+pmm_free_page(pid_t owner,
ptr_t
page);
int
int
-pmm_ref_page(pid_t owner,
void*
page);
+pmm_ref_page(pid_t owner,
ptr_t
page);
#endif /* __LUNAIX_PMM_H */
#endif /* __LUNAIX_PMM_H */