Handle IRQs inside the kernel
All checks were successful
Build documentation / build-and-deploy (push) Successful in 2m42s
All checks were successful
Build documentation / build-and-deploy (push) Successful in 2m42s
This commit is contained in:
@@ -1,4 +1,3 @@
|
||||
#include <liballoc.h>
|
||||
#include <stdint.h>
|
||||
#include <system.h>
|
||||
|
||||
@@ -7,21 +6,22 @@ extern volatile uint8_t __bss_end[];
|
||||
|
||||
extern void app_main (void);
|
||||
|
||||
static size_t premain_memset (void* dst, uint8_t b, size_t n) {
|
||||
uint8_t* dst1 = dst;
|
||||
size_t i;
|
||||
for (i = 0; i < n; i++)
|
||||
dst1[i] = b;
|
||||
return i;
|
||||
}
|
||||
|
||||
static void clear_bss (void) {
|
||||
uint8_t* p = (uint8_t*)__bss_start;
|
||||
while (p < __bss_end) {
|
||||
*p++ = 0;
|
||||
}
|
||||
premain_memset ((void*)__bss_start, 0, (uintptr_t)__bss_end - (uintptr_t)__bss_end);
|
||||
}
|
||||
|
||||
void __premain (void) {
|
||||
clear_bss ();
|
||||
|
||||
liballoc_init ();
|
||||
|
||||
app_main ();
|
||||
|
||||
liballoc_deinit ();
|
||||
|
||||
quit ();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user