summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXavier Del Campo Romero <xavi.dcr@tutanota.com>2021-10-24 02:17:02 +0200
committerXavier Del Campo Romero <xavi.dcr@tutanota.com>2021-10-24 02:17:02 +0200
commit17832b2bed76c4b5e6efd2b7d548d09a3be8783c (patch)
tree0fc2bc3cefb96102c31543fde127df169f534600
parent15e2ff6bb683138878c376a84882b1a6da63cb94 (diff)
Clear BSS space using memset(3)
-rw-r--r--libpsx/src/setup.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/libpsx/src/setup.c b/libpsx/src/setup.c
index 1a28685..2c7790d 100644
--- a/libpsx/src/setup.c
+++ b/libpsx/src/setup.c
@@ -1,5 +1,7 @@
#include <psx.h>
#include <stdio.h>
+#include <stddef.h>
+#include <string.h>
extern int __bss_start[];
extern int __bss_end[];
@@ -26,15 +28,14 @@ static void call_ctors(void)
void psxsdk_setup()
{
- unsigned int x;
+
printf("Initializing PSXSDK... \n");
dprintf("Clearing BSS space...\n");
-
-// Clear BSS space
- for(x = (unsigned int)__bss_start; x < (unsigned int)__bss_end; x++)
- *((unsigned char*)x) = 0;
+
+// Clear BSS space
+ memset(__bss_start, 0, (ptrdiff_t)__bss_end - (ptrdiff_t)__bss_start);
dprintf("BSS space cleared.\n");