Fix showMemInfo issue
This commit is contained in:
parent
7c2b3d10b5
commit
861795f8bd
|
@ -33,9 +33,6 @@ Modification:
|
||||||
#include "actracer.h"
|
#include "actracer.h"
|
||||||
#include "buddy.h"
|
#include "buddy.h"
|
||||||
|
|
||||||
#ifndef V2P_LINK
|
|
||||||
#define V2P_LINK V2P
|
|
||||||
#endif
|
|
||||||
|
|
||||||
struct KBuddy kern_virtmem_buddy;
|
struct KBuddy kern_virtmem_buddy;
|
||||||
struct KBuddy user_phy_freemem_buddy;
|
struct KBuddy user_phy_freemem_buddy;
|
||||||
|
@ -43,7 +40,11 @@ struct KBuddy user_phy_freemem_buddy;
|
||||||
extern uintptr_t kernel_data_end[];
|
extern uintptr_t kernel_data_end[];
|
||||||
bool module_phymem_init()
|
bool module_phymem_init()
|
||||||
{
|
{
|
||||||
|
#ifndef __riscv
|
||||||
|
uintptr_t kern_freemem_start = V2P(kernel_data_end);
|
||||||
|
#else
|
||||||
uintptr_t kern_freemem_start = V2P_LINK(kernel_data_end);
|
uintptr_t kern_freemem_start = V2P_LINK(kernel_data_end);
|
||||||
|
#endif
|
||||||
uintptr_t kern_freemem_end = PHY_USER_FREEMEM_BASE;
|
uintptr_t kern_freemem_end = PHY_USER_FREEMEM_BASE;
|
||||||
uintptr_t user_freemem_start = PHY_USER_FREEMEM_BASE;
|
uintptr_t user_freemem_start = PHY_USER_FREEMEM_BASE;
|
||||||
uintptr_t user_freemem_end = PHY_MEM_STOP;
|
uintptr_t user_freemem_end = PHY_MEM_STOP;
|
||||||
|
@ -59,7 +60,11 @@ char* kalloc(uintptr_t size)
|
||||||
if (mem_alloc == NULL) {
|
if (mem_alloc == NULL) {
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
#ifndef __riscv
|
||||||
|
assert((uintptr_t)mem_alloc >= V2P(&kernel_data_end) && (uintptr_t)mem_alloc < PHY_USER_FREEMEM_BASE);
|
||||||
|
#else
|
||||||
assert((uintptr_t)mem_alloc >= V2P_LINK(&kernel_data_end) && (uintptr_t)mem_alloc < PHY_USER_FREEMEM_BASE);
|
assert((uintptr_t)mem_alloc >= V2P_LINK(&kernel_data_end) && (uintptr_t)mem_alloc < PHY_USER_FREEMEM_BASE);
|
||||||
|
#endif
|
||||||
mem_alloc = P2V(mem_alloc);
|
mem_alloc = P2V(mem_alloc);
|
||||||
if ((uintptr_t)mem_alloc < KERN_MEM_BASE) {
|
if ((uintptr_t)mem_alloc < KERN_MEM_BASE) {
|
||||||
DEBUG("Error Alloc: %x by size: %d (Caused by double free)\n", mem_alloc, size);
|
DEBUG("Error Alloc: %x by size: %d (Caused by double free)\n", mem_alloc, size);
|
||||||
|
|
|
@ -113,7 +113,11 @@ void show_mem(void)
|
||||||
{
|
{
|
||||||
SHOWINFO_BORDER_LINE();
|
SHOWINFO_BORDER_LINE();
|
||||||
|
|
||||||
|
#ifndef __riscv
|
||||||
uint64_t total = (PHY_MEM_STOP - V2P(kernel_data_end));
|
uint64_t total = (PHY_MEM_STOP - V2P(kernel_data_end));
|
||||||
|
#else
|
||||||
|
uint64_t total = (PHY_MEM_STOP - V2P_LINK(kernel_data_end));
|
||||||
|
#endif
|
||||||
uint64_t user_dynamic_free = 0;
|
uint64_t user_dynamic_free = 0;
|
||||||
uint64_t kernel_free = 0;
|
uint64_t kernel_free = 0;
|
||||||
for (int j = 0; j < MAX_BUDDY_ORDER; j++) {
|
for (int j = 0; j < MAX_BUDDY_ORDER; j++) {
|
||||||
|
|
Loading…
Reference in New Issue