diff options
author | Josh Rahm <joshuarahm@gmail.com> | 2020-11-24 15:59:23 -0700 |
---|---|---|
committer | Josh Rahm <joshuarahm@gmail.com> | 2020-11-24 15:59:23 -0700 |
commit | 0c0f5c3d8397ba5168f0cd01b25ba70c238b36e0 (patch) | |
tree | d986372cf7266cd1e090b7974e744c77c1871bdc /include | |
parent | ecbcb2509f4b811bce0a56e07de9737d14815251 (diff) | |
download | stm32l4-0c0f5c3d8397ba5168f0cd01b25ba70c238b36e0.tar.gz stm32l4-0c0f5c3d8397ba5168f0cd01b25ba70c238b36e0.tar.bz2 stm32l4-0c0f5c3d8397ba5168f0cd01b25ba70c238b36e0.zip |
Fix kalloc. Now the HEAP START and HEAP END globals are defined by the linker script.
Diffstat (limited to 'include')
-rw-r--r-- | include/arch/arm/arch.h | 3 | ||||
-rw-r--r-- | include/arch/x86_64/arch.h | 7 | ||||
-rw-r--r-- | include/kern/mem.h | 6 |
3 files changed, 7 insertions, 9 deletions
diff --git a/include/arch/arm/arch.h b/include/arch/arm/arch.h index 22d0987..8bd47c2 100644 --- a/include/arch/arm/arch.h +++ b/include/arch/arm/arch.h @@ -40,4 +40,7 @@ _Static_assert(sizeof(void*) == sizeof(uint32_t), "Pointers must be 32 bits"); extern uint32_t DATA_SEGMENT_START; extern uint32_t DATA_SEGMENT_STOP; +extern unsigned char HEAP_START; +extern unsigned char HEAP_STOP; + #endif /* ARCH_H_ */ diff --git a/include/arch/x86_64/arch.h b/include/arch/x86_64/arch.h index c17721d..a7ba776 100644 --- a/include/arch/x86_64/arch.h +++ b/include/arch/x86_64/arch.h @@ -1,6 +1,7 @@ #ifndef ARCH_H_ #define ARCH_H_ +#include <stdint.h> #include "fake_env.h" #define ARCH_PC @@ -30,8 +31,8 @@ // Pretend there's a data segement at the start of SRAM1 for more accurate // testing. -#define GHOST_DATA_SEGMENT_SIZE 1234 -#define DATA_SEGMENT_START (*((uint8_t*)SRAM1_BASE)) -#define DATA_SEGMENT_STOP (*(((uint8_t*)SRAM1_BASE) + GHOST_DATA_SEGMENT_SIZE)) +#define GHOST_DATA_SEGMENT_SIZE 1200 +#define HEAP_START (*(((unsigned char*)SRAM1_BASE) + GHOST_DATA_SEGMENT_SIZE)) +#define HEAP_STOP (*(&HEAP_START + 16384 - GHOST_DATA_SEGMENT_SIZE)) #endif /* ARCH_H_ */ diff --git a/include/kern/mem.h b/include/kern/mem.h index 832d31d..2af49cb 100644 --- a/include/kern/mem.h +++ b/include/kern/mem.h @@ -4,12 +4,6 @@ #include "arch.h" #include <stddef.h> -#define DATA_SEGMENT_STOP_ADDR ((uint8_t*) &DATA_SEGMENT_STOP) -#define DATA_SEGMENT_START_ADDR ((uint8_t*) &DATA_SEGMENT_START) - -#define MAX_HEAP_SIZE \ - ((16384 - (DATA_SEGMENT_STOP_ADDR - DATA_SEGMENT_START_ADDR)) / 4 * 4) - /* allocates memory on the head, which is stored in sram2 */ void* kalloc(size_t n); |