#include "kernel/types.h" #include "kernel/stat.h" #include "kernel/riscv.h" // to get PGSIZE #include "user/user.h" #define KIBIBYTES 1024 #define MEBIBYTES (1024 * 1024) void display_memory(void) { uint64 free_ram, npages, nm, nk; free_ram = freeram(); npages = free_ram / PGSIZE; nm = free_ram / MEBIBYTES; nk = free_ram / KIBIBYTES; printf("%ld bytes (%ld MiB or %ld KiB), %ld pages ", free_ram, nm, nk, npages); } int main(int argc, char *argv[]) { void *mem; display_memory(); printf("free memory at the start\n"); mem = malloc(PGSIZE * 1000); display_memory(); printf("after 1000*PGSIZE mem alloc\n"); free(mem); display_memory(); printf("after dealloc\n"); exit(0); }