#include "PL0_utils.h" // entry point - must remain the only function in the file! void PL0_main(void) { // If loading program to userspace and handling of svc are // implemented correctly, this shall get printed puts("Hello userspace!"); // if we're indeed in PL0, we should trigger the abort handler now, // when trying to access memory we're not allowed to puts("Attempting to meddle with kernel memory from userspace :d"); char first_kernel_byte[2]; first_kernel_byte[0] = *(char*) 0x0; first_kernel_byte[1] = '\0'; puts(first_kernel_byte); while (1) { char c = getchar(); if (c == '\r') putchar('\n'); putchar(c); } }