Added copyright information

This commit is contained in:
2026-03-21 17:37:43 +01:00
parent 3a15342a29
commit 7d41473a8b
16 changed files with 752 additions and 864 deletions

View File

@@ -22,8 +22,8 @@
/* Includes */
#include <errno.h>
#include <stdint.h>
#include <stddef.h>
#include <stdint.h>
/**
* Pointer to the current high watermark of the heap usage
@@ -51,24 +51,21 @@ static uint8_t *__sbrk_heap_end = NULL;
* @param incr Memory size
* @return Pointer to allocated memory
*/
void *_sbrk(ptrdiff_t incr)
{
extern uint8_t _end; /* Symbol defined in the linker script */
extern uint8_t _estack; /* Symbol defined in the linker script */
void *_sbrk(ptrdiff_t incr) {
extern uint8_t _end; /* Symbol defined in the linker script */
extern uint8_t _estack; /* Symbol defined in the linker script */
extern uint32_t _Min_Stack_Size; /* Symbol defined in the linker script */
const uint32_t stack_limit = (uint32_t)&_estack - (uint32_t)&_Min_Stack_Size;
const uint8_t *max_heap = (uint8_t *)stack_limit;
uint8_t *prev_heap_end;
/* Initialize heap end at first call */
if (NULL == __sbrk_heap_end)
{
if (NULL == __sbrk_heap_end) {
__sbrk_heap_end = &_end;
}
/* Protect heap from growing into the reserved MSP stack */
if (__sbrk_heap_end + incr > max_heap)
{
if (__sbrk_heap_end + incr > max_heap) {
errno = ENOMEM;
return (void *)-1;
}
@@ -80,8 +77,8 @@ void *_sbrk(ptrdiff_t incr)
}
#if defined(__PICOLIBC__)
// Picolibc expects syscalls without the leading underscore.
// This creates a strong alias so that
// calls to `sbrk()` are resolved to our `_sbrk()` implementation.
__strong_reference(_sbrk, sbrk);
// Picolibc expects syscalls without the leading underscore.
// This creates a strong alias so that
// calls to `sbrk()` are resolved to our `_sbrk()` implementation.
__strong_reference(_sbrk, sbrk);
#endif