#include #include "systemCalls.h" #include "memManager.h" void exitProcess(); // void setFn(uint64_t, uint64_t, uint64_t); char * processes(); void enqueueProcess(uint64_t, uint64_t, uint64_t, uint64_t); uint64_t systemCallsDispatcher(uint64_t rdi, uint64_t rsi, uint64_t rdx, uint64_t rcx, uint64_t r8) { switch (rdi) { case 0: return write(rsi, rdx, rcx); case 1: return read(rsi, rdx, rcx); case 2: return getTime(rsi, rdx, rcx); case 3: // createProcess(rsi); enqueueProcess(rsi, rdx, rcx, r8); break; case 4: exitProcess(); break; case 5: // setFn(rsi, rdx, rcx); break; case 6: return (uint64_t) processes(); case 7: return (uint64_t) getSems(); case 8: return pvPortMalloc(rsi); case 9: vPortFree(rsi); break; default: return -1; } return 1; }