36 lines
715 B
C
36 lines
715 B
C
#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);
|
|
}
|