feat: added reaper and suicide support

This commit is contained in:
2021-08-06 22:00:00 +02:00
parent ee4338fedd
commit be71f9a7e9
7 changed files with 87 additions and 18 deletions

View File

@@ -23,6 +23,7 @@
#include <myke/debug/debug.h>
#include <myke/util/slingurl.h>
#include <myke/libk/syscall.h>
#endif
@@ -53,6 +54,8 @@ void shutdown(const char *args);
void explode(const char *args);
void kill_self(const char* args);
void exec_self_test(const char *args);
void smash(const char *args);
@@ -67,8 +70,9 @@ cmd_handler cmd_handlers[] = {
{"print", print},
{"ide", ide},
{"shutdown", shutdown},
{"slingurl", slingurl},
#ifdef ENABLE_SELF_TEST
{"slingurl", slingurl},
{"kill-self", kill_self},
{"self-test", exec_self_test},
{"smash", smash},
{"explode", explode},
@@ -76,24 +80,27 @@ cmd_handler cmd_handlers[] = {
{NULL, NULL},
};
#ifdef ENABLE_SELF_TEST
void slingurl(const char *args) {
slingurl_decompose(args);
}
#ifdef ENABLE_SELF_TEST
void smash(const char *args) {
// smash the stack, should trigger the stack protector
char data[16];
memset(data, 'A', 32);
}
void kill_self(const char* args) {
syscall_kill_self();
}
void exec_self_test(const char *args) {
// unit tests
self_test();
}
void explode(const char *args) {
// trigger a divide by zero exception
uint32_t x = 0;