tape-kernel 1.0
a modular modern independent kernel
Loading...
Searching...
No Matches
mem.c
Go to the documentation of this file.
1//src/mem/mem.c - general memory funcs
2#include "../lib/types.h"
3#include "mem.h"
4
5/**
6 * @brief fetches memory size and returns it
7 *
8 * when using memsize it needs to be passed the multiboot info parameter inside kmain
9 * using memsize is done with:
10 * @code{.c}
11 * #include "../mem/mem.h" //or just mem.h
12 * uint32_t memory_size = memsize(mb_info); //or your multiboot info var
13 * @endcode
14 *
15 * @see kmain(), boot.s
16*/
17uint32_t __memsize(void *mb_info) {
18 if (mb_info == NULL) return 0;
19
20 uint32_t mem_lower = *(uint32_t*)((uint8_t*)mb_info + 4);
21 uint32_t mem_upper = *(uint32_t*)((uint8_t*)mb_info + 8);
22
23 return mem_lower + mem_upper;
24}
25
uint32_t __memsize(void *mb_info)
fetches memory size and returns it
Definition mem.c:17
#define NULL
Definition types.h:38
unsigned int uint32_t
Definition types.h:30
unsigned char uint8_t
Definition types.h:28